This is random, but probably worth trying...putting the function inside of an object?
$.p1 = {
_openAsLayer : function (name, path) {
var result = '';
var doc = app.activeDocument;
var layer = doc.layers.add();
layer.name = name;
var placedItem = layer.placedItems.add();
try {
placedItem.file = new File(path);
placedItem.embed();
} catch (e) {
layer.remove();
result = e;
}
return result;
}
}