var file = new File('path/to/file.psd'),
docRef = open(file),
i,
len,
duplicateLayer,
dimens,
newDoc,
newLayer,
layers = [];
for (var i = 0, len = docRef.artLayers.length; i < len; i += 1) {
layers[i] = docRef.artLayers[i];
}
for (var i = 0, len = layers.length; i < len; i += 1) {
app.activeDocument = docRef;
duplicateLayer = layers[i].duplicate();
duplicateLayer.rasterize(RasterizeType.ENTIRELAYER);
dimens = duplicateLayer.bounds;
duplicateLayer.cut();
newDoc = documents.add(dimens[2] - dimens[0], dimens[3] - dimens[1], 300,
'exportedLayer' + i, NewDocumentMode.RGB,
DocumentFill.TRANSPARENT);
newLayer = newDoc.artLayers.add();
app.activeDocument = newDoc;
newDoc.paste();
}
First, note I set the focus to your original document for every layer I create. Second, I kept a reference to all the layers, as playing around with new layers may mess up your cycling through the original layers. Third, I used cut rather than copy, to delete the newly added layers. And... voila.