UNPKG

@awayfl/avm2

Version:

Virtual machine for executing AS3 code

20 lines (18 loc) 818 B
import { ClassInfo } from '../abc/lazy/ClassInfo'; import { AXCallable } from '../run/AXCallable'; import { ASClass } from './ASClass'; import { builtinNativeClasses , nativeClasses } from './builtinNativeClasses'; export function getNativeInitializer(classInfo: ClassInfo): AXCallable { const methodInfo = classInfo.instanceInfo.methodInfo; const className = classInfo.instanceInfo.getClassName(); const asClass = builtinNativeClasses[className] || nativeClasses[className]; if (methodInfo.isNative() || (<typeof ASClass> asClass)?.forceNativeConstructor) { // Use TS constructor as the initializer function. return <any>asClass; } //// TODO: Assert eagerly. //return function () { // release || assert (!methodInfo.isNative(), "Must supply a constructor for " + classInfo + // "."); } return null; }