@awayfl/avm2
Version:
Virtual machine for executing AS3 code
21 lines (18 loc) • 584 B
text/typescript
import { AXSecurityDomain } from '../../run/AXSecurityDomain';
export function createGlobalNative(native: Function, sec: AXSecurityDomain) {
return function() {
switch (arguments.length) {
case 0: return native(sec);
case 1: return native(sec, arguments[0]);
case 2: return native(sec, arguments[0], arguments[1]);
case 3: return native(sec, arguments[0], arguments[1], arguments[2]);
default: {
const args: any[] = [sec];
for (let i = 0; i < arguments.length; i++) {
args.push(arguments[i]);
}
return native.apply(this, args);
}
}
};
}