Curious!
The alternative to DOM code is Action Manager (AM):
transformLayer(10, 10, true);
function transformLayer(width, height, linked) {
function s2t(s) {
return app.stringIDToTypeID(s);
}
var descriptor = new ActionDescriptor();
var descriptor2 = new ActionDescriptor();
var reference = new ActionReference();
reference.putEnumerated( s2t( "layer" ), s2t( "ordinal" ), s2t( "targetEnum" ));
descriptor.putReference( s2t( "null" ), reference );
descriptor.putEnumerated( s2t( "freeTransformCenterState" ), s2t( "quadCenterState" ), s2t( "QCSCorner0" )); // 0 = upper left
descriptor2.putUnitDouble( s2t( "horizontal" ), s2t( "pixelsUnit" ), 0 ); // horizontal
descriptor2.putUnitDouble( s2t( "vertical" ), s2t( "pixelsUnit" ), 0 ); // vertical
descriptor.putObject( s2t( "offset" ), s2t( "offset" ), descriptor2 );
descriptor.putUnitDouble( s2t( "width" ), s2t( "percentUnit" ), width ); // % value
descriptor.putUnitDouble( s2t( "height" ), s2t( "percentUnit" ), height ); // % value
descriptor.putBoolean( s2t( "linked" ), linked ); // boolean
descriptor.putEnumerated( s2t( "interfaceIconFrameDimmed" ), s2t( "interpolationType" ), s2t( "bicubic" )); // "nearestNeighbor"
executeAction(s2t("transform"), descriptor, DialogModes.NO);
// QCSCorner:
//
// 0 - - - - - - - - - - - - - - - - 1
// | |
// | |
// | 4 |
// | |
// | |
// 3 - - - - - - - - - - - - - - - - 2
}