@awayfl/avm2
Version:
Virtual machine for executing AS3 code
25 lines (24 loc) • 752 B
JavaScript
import { release } from '@awayfl/swf-loader';
import { assert, isNullOrUndefined } from '@awayjs/graphics';
/**
* Transforms a JS value into an AS value.
*/
export function transformJSValueToAS(sec, value, deep) {
release || assert(typeof value !== 'function');
if (typeof value !== 'object') {
return value;
}
if (isNullOrUndefined(value)) {
return value;
}
if (Array.isArray(value)) {
var list = [];
for (var i = 0; i < value.length; i++) {
var entry = value[i];
var axValue = deep ? transformJSValueToAS(sec, entry, true) : entry;
list.push(axValue);
}
return sec.createArray(list);
}
return sec.createObjectFromJS(value, deep);
}