@awayfl/avm2
Version:
Virtual machine for executing AS3 code
31 lines (29 loc) • 863 B
text/typescript
import { TraitInfo } from './TraitInfo';
import { ABCFile } from './ABCFile';
import { TRAIT } from './TRAIT';
import { Multiname } from './Multiname';
import { CONSTANT } from './CONSTANT';
import { typeDefaultValues } from './typeDefaultValues';
export class SlotTraitInfo extends TraitInfo {
constructor(
abc: ABCFile,
kind: TRAIT,
multiname: Multiname,
public slot: number,
public typeName: Multiname,
public defaultValueKind: CONSTANT,
public defaultValueIndex: number
) {
super(abc, kind, multiname);
}
getDefaultValue(): any {
if (<number> this.defaultValueKind === -1) {
if (this.typeName === null) {
return undefined;
}
const value = typeDefaultValues[this.typeName.getMangledName()];
return value === undefined ? null : value;
}
return this.abc.getConstant(this.defaultValueKind, this.defaultValueIndex);
}
}