perf: optimize recursion, avoid stackoverflow on larger scripts (#2672)

This commit is contained in:
Jindra Petřík
2026-03-20 07:56:39 +01:00
parent cd8a9dbdad
commit 2bc1c4e012
24 changed files with 31249 additions and 623 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,7 @@
@echo off
set COMPILERKIND=air
set SWFNAME=as3_long
call c:\air\bin\mxmlc.bat -debug=true -output bin/%SWFNAME%.%COMPILERKIND%.swf src/Main.as 1> buildlog.%COMPILERKIND%.txt 2>&1
rem set COMPILERKIND=air.optimize
rem call c:\air\bin\mxmlc.bat -compiler.optimize -output bin/%SWFNAME%.%COMPILERKIND%.swf src/Main.as 1> buildlog.%COMPILERKIND%.txt 2>&1
rem -warnings=false

View File

@@ -0,0 +1,3 @@
@echo off
call build_flex_debug.bat
call build_air_debug.bat

View File

@@ -0,0 +1,7 @@
@echo off
set COMPILERKIND=flex
set SWFNAME=as3_long
call c:\flex\bin\mxmlc.bat -debug=true -output bin/%SWFNAME%.%COMPILERKIND%.swf src/Main.as 1> buildlog.%COMPILERKIND%.txt 2>&1
rem set COMPILERKIND=flex.optimize
rem call c:\flex\bin\mxmlc.bat -compiler.optimize -output bin/%SWFNAME%.%COMPILERKIND%.swf src/Main.as 1> buildlog.%COMPILERKIND%.txt 2>&1
rem -warnings=false

View File

@@ -0,0 +1,28 @@
package
{
import flash.display.Sprite;
import flash.events.Event;
import tests.*;
/**
* ...
* @author JPEXS
*/
public class Main extends Sprite
{
TestLongScript;
public function Main()
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
}
}
}

File diff suppressed because it is too large Load Diff