I found one answer but it was just bounds (x,y,w,h) in px.
There's a problem when using move tool, which cause the width and height of smart object become different. Which I want to fix (% of width and height must be equal)
I was trying to get the % width and height of the smart object when using free transform, using alert(). So this is my thinking, base on the previous forum link.
if (layer.kind == LayerKind.SMARTOBJECT)
var layer0 = activeDocument.activeLayer;
activeDocument.activeLayer = layer;
var r = new ActionReference();
r.putEnumerated( charIDToTypeID( "Lyr " ), charIDToTypeID( "Ordn" ), charIDToTypeID( "Trgt" ) );
var d = executeActionGet(r).getObjectValue(stringIDToTypeID("smartObjectMore")).getList(stringIDToTypeID("transform")); //active free transform action
var tmp = d.getDouble(stringIDToTypeID("width"))); //get width
var docRef = app.activeDocument;
get_layer_width(docRef.layers); //layer must be smart object