private AbcInstance BuildAssetInstance(AbcMultiname name, AbcMultiname superName) { var superType = FindAssetSuperType(superName); if (superType == null) { throw Errors.Type.UnableToFind.CreateException(superName.FullName); } //TODO: Check existance of instance var instance = new AbcInstance(true) { Name = name, BaseTypeName = superName, Flags = (AbcClassFlags.Sealed | AbcClassFlags.ProtectedNamespace), ProtectedNamespace = Abc.DefineProtectedNamespace(name.NameString), Initializer = Abc.DefineMethod( Sig.@void(), code => { code.PushThisScope(); code.ConstructSuper(); code.ReturnVoid(); }), BaseInstance = superType, Class = { Initializer = Abc.DefineMethod( Sig.global(null), code => { if (true) { code.PushThisScope(); } code.ReturnVoid(); }) } }; Abc.AddInstance(instance); return(instance); }