This one will delete the smart objects:
#target photoshop
var firstSnpStart = 1 // 1= first snapshot other than opening of file. 0 = open file snapshot
var doc = activeDocument;
var hsObj = doc.historyStates;
var hsLength = hsObj.length;
var snpNum = 0
var firstSnp, lastSnp
getFirstSnapshot ();
getLastSnapshot ();
if(firstSnp != lastSnp){
doc.activeHistoryState = firstSnp;
var useListFirst = [];
var layerSets = 0
try{doc.backgroundLayer}
catch(e){layerSets=1}
var layerListFirst = getLayerSetsData();
for (var i=0;i<layerListFirst.length;i++){
if(layerListFirst.type != 13){useListFirst.push(layerListFirst[i].id)};
} //end for loop to get original layers
doc.activeHistoryState = lastSnp;
var useListLast = [];
layerSets = 0
try{doc.backgroundLayer}
catch(e){layerSets=1}
var layerListLast = getLayerSetsData();
for (var i=0;i<layerListLast.length;i++){
if(layerListLast[i].type != 13&&layerListLast[i].type != 5){
var layerOk = true;
for(var j=0;j<useListFirst.length;j++){
if(layerListLast[i].id == useListFirst[j]){
layerOk = false;
}
}//enf j loop
if(layerOk){useListLast.push(layerListLast[i].id)}
}//end if for layer type
} //end i loop
multiSelectByIDs (useListLast)
}//end if to run script
else{alert('There are not two snapshots')}
function getLastSnapshot()
{
for (var i=hsLength - 1;i>-1;i--)
{
if(hsObj[i].snapshot) {
lastSnp = hsObj[i]
break;
}
}
}
function getFirstSnapshot()
{
for (var i=firstSnpStart;i<hsLength;i++)
{
if(hsObj[i].snapshot) {
firstSnp = hsObj[i];
break;
}
}
}
function doesIdExists( id ){// function to check if the id exists
var res = true;
var ref = new ActionReference();
ref.putIdentifier(charIDToTypeID('Lyr '), id);
try{var desc = executeActionGet(ref)}catch(err){res = false};
return res;
}
function multiSelectByIDs(ids) {
if( ids.constructor != Array ) ids = [ ids ];
var layers = new Array();
var id54 = charIDToTypeID( "slct" );
var desc12 = new ActionDescriptor();
var id55 = charIDToTypeID( "null" );
var ref9 = new ActionReference();
for (var i = 0; i < ids.length; i++) {
if(doesIdExists(ids[i]) == true){// a check to see if the id stil exists
layers[i] = charIDToTypeID( "Lyr " );
ref9.putIdentifier(layers[i], ids[i]);
}
}
desc12.putReference( id55, ref9 );
var id58 = charIDToTypeID( "MkVs" );
desc12.putBoolean( id58, false );
executeAction( id54, desc12, DialogModes.NO );
}
function getLayerSetsData()
{
//var count = 0;//set counter for multi-dimensional array
var lyrSets = [];
while (true)
{
ref = new ActionReference();
ref.putIndex(charIDToTypeID('Lyr '), layerSets);
try
{var d1 = executeActionGet(ref)}
catch (err){
break;
};
var c2t = function (s){return app.charIDToTypeID(s);};
var s2t = function (s){return app.stringIDToTypeID(s);};
var lyrSet = {};
lyrSet.type = d1.getInteger(s2t("layerKind"));
lyrSet.name = d1.getString(c2t("Nm "));
lyrSet.id = d1.getInteger(s2t("layerID"));
lyrSets.push(lyrSet);
layerSets++;
};
return lyrSets;
};