@awayfl/avm2
Version:
Virtual machine for executing AS3 code
45 lines (35 loc) • 1.37 kB
text/typescript
import { Multiname } from '../abc/lazy/Multiname';
import { Scope } from './Scope';
import { Bytecode } from '../abc/ops';
/**
* MetaobjectProtocol interface.
*/
export interface IMetaobjectProtocol {
axResolveMultiname(mn: Multiname): any;
axHasProperty(mn: Multiname): boolean;
axDeleteProperty(mn: Multiname): boolean;
axCallProperty(mn: Multiname, argArray: any [], isLex: boolean): any;
axCallSuper(mn: Multiname, scope: Scope, argArray: any []): any;
axConstructProperty(mn: Multiname, args: any []): any;
axHasPropertyInternal(mn: Multiname): boolean;
axHasOwnProperty(mn: Multiname): boolean;
axSetProperty(mn: Multiname, value: any, bc: Bytecode);
axGetProperty(mn: Multiname): any;
axGetSuper(mn: Multiname, scope: Scope): any;
axSetSuper(mn: Multiname, scope: Scope, value: any);
axNextNameIndex(index: number): any;
axNextName(index: number): any;
axNextValue(index: number): any;
axEnumerableKeys: any [];
axGetEnumerableKeys(): any [];
axHasPublicProperty(nm: any): boolean;
axSetPublicProperty(nm: any, value: any);
axGetPublicProperty(nm: any): any;
axCallPublicProperty(nm: any, argArray: any []): any;
axDeletePublicProperty(nm: any): boolean;
axSetNumericProperty(nm: number, value: any);
axGetNumericProperty(nm: number): any;
axGetSlot(i: number): any;
axSetSlot(i: number, value: any);
getPrototypeOf(): any;
}