public void BuildMainScript() { var instance = _generator.MainInstance; if (instance == null) { return; } instance.IsApp = true; var script = new AbcScript { IsMain = true }; Abc.Scripts.Add(script); script.DefineClassTraits(instance); script.Initializer = DefineMainScriptInit(script, instance); }
private void DefineScript(AbcInstance instance) { var script = new AbcScript(); Abc.Scripts.Add(script); script.DefineClassTraits(instance); script.Initializer = Abc.DefineMethod( Sig.@void(), code => { code.PushThisScope(); if (IsSwc && instance.Type.Is(SystemTypeCode.Object)) { code.AddRange(_generator.NewApi); } var list = GetBaseTypesWithCctors(instance); const int arr = 1; code.Add(InstructionCode.Newarray, 0); code.SetLocal(arr); _generator.StaticCtors.DelayCalls(code, list, arr); code.InitClassProperties(script); _generator.StaticCtors.UndelayCalls(code, list, arr); //code.Trace("Initialization of " + instance.FullName); _generator.StaticCtors.Call(code, instance); _generator.StaticCtors.CallRange(code, list); code.ReturnVoid(); } ); }