For some reason, my first code worked, now, today, it doesn't, so here it is with AM code for the fill opacity:
#target photoshop
var doc = activeDocument;
var curLay = doc.activeLayer
var layPar = curLay.parent
doc.activeLayer = layPar;
var isArt = isArtBoard ();
doc.activeLayer = curLay;
if(layPar.typename=='LayerSet' && isArt == false){
doc.activeLayer= layPar
layPar.opacity = curLay.opacity;
fillOp (curLay.fillOpacity)
//ayPar.fillOpacity = curLay.fillOpacity;
layPar.blendMode = curLay.blendMode;
curLay.opacity = 100;
curLay.fillOpacity = 100;
curLay.blendMode = BlendMode.NORMAL
}
function isArtBoard(){
var ref = new ActionReference();
ref.putEnumerated(charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt"));
return executeActionGet(ref).getBoolean(stringIDToTypeID("artboardEnabled"));
};
function fillOp(fOp){
var idsetd = charIDToTypeID( "setd" );
var desc18 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref1 = new ActionReference();
var idLyr = charIDToTypeID( "Lyr " );
var idOrdn = charIDToTypeID( "Ordn" );
var idTrgt = charIDToTypeID( "Trgt" );
ref1.putEnumerated( idLyr, idOrdn, idTrgt );
desc18.putReference( idnull, ref1 );
var idT = charIDToTypeID( "T " );
var desc19 = new ActionDescriptor();
var idfillOpacity = stringIDToTypeID( "fillOpacity" );
var idPrc = charIDToTypeID( "#Prc" );
desc19.putUnitDouble( idfillOpacity, idPrc, fOp );
var idLyr = charIDToTypeID( "Lyr " );
desc18.putObject( idT, idLyr, desc19 );
executeAction( idsetd, desc18, DialogModes.NO );
}