better try..catch..finally detection

This commit is contained in:
Jindra Petřík
2021-01-31 09:13:36 +01:00
parent b2b9b51301
commit a1bb35ba1c
49 changed files with 1481 additions and 452 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,40 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>asc2</title>
<meta name="description" content="" />
<script src="js/swfobject.js"></script>
<script>
var flashvars = {
};
var params = {
menu: "false",
scale: "noScale",
allowFullscreen: "true",
allowScriptAccess: "always",
bgcolor: "",
wmode: "direct" // can cause issues with FP settings & webcam
};
var attributes = {
id:"asc2"
};
swfobject.embedSWF(
"asc2.swf",
"altContent", "100%", "100%", "10.0.0",
"expressInstall.swf",
flashvars, params, attributes);
</script>
<style>
html, body { height:100%; overflow:hidden; }
body { margin:0; }
</style>
</head>
<body>
<div id="altContent">
<h1>asc2</h1>
<p><a href="http://www.adobe.com/go/getflashplayer">Get Adobe Flash player</a></p>
</div>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

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

View File

@@ -0,0 +1,6 @@
@echo off
call build_air_debug.bat
call build_flex_debug.bat
call build_flex_apache_debug.bat
call build_swftools_debug.bat
pause

View File

@@ -0,0 +1,3 @@
@echo off
set COMPILERKIND=flex_apache
call c:\flex_apache\bin\mxmlc.bat -warnings=false -debug=true -output bin/Main.%COMPILERKIND%.swf src/Main.as 1> buildlog.%COMPILERKIND%.txt 2>&1

View File

@@ -0,0 +1,3 @@
@echo off
set COMPILERKIND=flex
c:\flex\bin\mxmlc.exe -warnings=false -debug=true -output bin/Main.%COMPILERKIND%.swf src/Main.as 1> buildlog.%COMPILERKIND%.txt 2>&1

View File

@@ -0,0 +1,19 @@
@echo off
set ISDEBUG=false
if "%1" == "debug" goto blockset
goto block2
:blockset
set ISDEBUG=true
:block2
set COMPILERPATH=%2
set COMPILERKIND=%3
rem if not exist %COMPILERPATH% goto notex
%COMPILERPATH% -warnings=false -debug=%ISDEBUG% -output bin/Main.%COMPILERKIND%.swf src/Main.as > buildlog.%COMPILERKIND%.txt
if errorlevel==1 goto failed
goto end
:notex
echo Flex/AIR SDK not found. Download and unpack Flex/AIR SDK into some directory and add it to PATH variable
goto end
:failed
pause
:end

View File

@@ -0,0 +1,4 @@
@echo off
set COMPILERKIND=swftools
cd src
c:\swftools\as3compile.exe Main.as -o ..\bin\Main.%COMPILERKIND%.swf 1> ../buildlog.%COMPILERKIND%.txt 2>&1

View File

@@ -0,0 +1,3 @@
Loading configuration: c:\air\frameworks\flex-config.xml
2753 bytes written to C:\Dropbox\Programovani\JavaSE\FFDec\libsrc\ffdec_lib\testdata\cross_compile\bin\Main.air.swf in 0,459 seconds

View File

@@ -0,0 +1,2 @@
Loading configuration file C:\flex\frameworks\flex-config.xml
C:\Dropbox\Programovani\JavaSE\FFDec\libsrc\ffdec_lib\testdata\asc2\bin\Main.flex.swf (1083 bytes)

View File

@@ -0,0 +1,2 @@
Loading configuration file C:\flex_apache\frameworks\flex-config.xml
C:\Dropbox\Programovani\JavaSE\FFDec\libsrc\ffdec_lib\testdata\cross_compile\bin\Main.flex_apache.swf (3617 bytes)

View File

@@ -0,0 +1,4 @@
Stack mismatch at pos 61
Should be: 1:1, is: 0:1
Stack mismatch at pos 61
Should be: 1:1, is: 0:1

View File

@@ -0,0 +1,95 @@
<?xml version="1.0" encoding="utf-8"?>
<project version="2">
<!-- Output SWF options -->
<output>
<movie outputType="Application" />
<movie input="" />
<movie path="bin\Main.flex.swf" />
<movie fps="30" />
<movie width="800" />
<movie height="600" />
<movie version="25" />
<movie minorVersion="0" />
<movie platform="Flash Player" />
<movie background="#FFFFFF" />
</output>
<!-- Other classes to be compiled into your SWF -->
<classpaths>
<class path="src" />
</classpaths>
<!-- Build options -->
<build>
<option accessible="False" />
<option advancedTelemetry="False" />
<option allowSourcePathOverlap="False" />
<option benchmark="False" />
<option es="False" />
<option inline="False" />
<option locale="" />
<option loadConfig="" />
<option optimize="True" />
<option omitTraces="True" />
<option showActionScriptWarnings="True" />
<option showBindingWarnings="True" />
<option showInvalidCSS="True" />
<option showDeprecationWarnings="True" />
<option showUnusedTypeSelectorWarnings="True" />
<option strict="True" />
<option useNetwork="True" />
<option useResourceBundleMetadata="True" />
<option warnings="True" />
<option verboseStackTraces="False" />
<option linkReport="" />
<option loadExterns="" />
<option staticLinkRSL="True" />
<option additional="" />
<option compilerConstants="" />
<option minorVersion="" />
</build>
<!-- SWC Include Libraries -->
<includeLibraries>
<!-- example: <element path="..." /> -->
</includeLibraries>
<!-- SWC Libraries -->
<libraryPaths>
<!-- example: <element path="..." /> -->
</libraryPaths>
<!-- External Libraries -->
<externalLibraryPaths>
<!-- example: <element path="..." /> -->
</externalLibraryPaths>
<!-- Runtime Shared Libraries -->
<rslPaths>
<!-- example: <element path="..." /> -->
</rslPaths>
<!-- Intrinsic Libraries -->
<intrinsics>
<!-- example: <element path="..." /> -->
</intrinsics>
<!-- Assets to embed into the output SWF -->
<library>
<!-- example: <asset path="..." id="..." update="..." glyphs="..." mode="..." place="..." sharepoint="..." /> -->
</library>
<!-- Class files to compile (other referenced classes will automatically be included) -->
<compileTargets>
<compile path="src\Main.as" />
</compileTargets>
<!-- Paths to exclude from the Project Explorer tree -->
<hiddenPaths>
<hidden path="obj" />
</hiddenPaths>
<!-- Executed before build -->
<preBuildCommand />
<!-- Executed after build -->
<postBuildCommand alwaysRun="False">build_air_debug.bat
build_flex_apache_debug.bat
build_swftools_debug.bat</postBuildCommand>
<!-- Other project options -->
<options>
<option showHiddenPaths="False" />
<option testMovie="Default" />
<option testMovieCommand="" />
</options>
<!-- Plugin storage -->
<storage />
</project>

View File

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<!--This Adobe Flex compiler configuration file was generated by a tool.-->
<!--Any modifications you make may be lost.-->
<flex-config>
<target-player>25.0</target-player>
<benchmark>false</benchmark>
<static-link-runtime-shared-libraries>true</static-link-runtime-shared-libraries>
<compiler>
<define append="true">
<name>CONFIG::debug</name>
<value>true</value>
</define>
<define append="true">
<name>CONFIG::release</name>
<value>false</value>
</define>
<define append="true">
<name>CONFIG::timeStamp</name>
<value>'31.01.2021'</value>
</define>
<define append="true">
<name>CONFIG::air</name>
<value>false</value>
</define>
<define append="true">
<name>CONFIG::mobile</name>
<value>false</value>
</define>
<define append="true">
<name>CONFIG::desktop</name>
<value>false</value>
</define>
<verbose-stacktraces>true</verbose-stacktraces>
<source-path append="true">
<path-element>C:\Dropbox\Programovani\JavaSE\FFDec\libsrc\ffdec_lib\testdata\cross_compile\src</path-element>
<path-element>C:\Program Files (x86)\FlashDevelop\Library\AS3\classes</path-element>
</source-path>
</compiler>
<file-specs>
<path-element>C:\Dropbox\Programovani\JavaSE\FFDec\libsrc\ffdec_lib\testdata\cross_compile\src\Main.as</path-element>
</file-specs>
<default-background-color>#FFFFFF</default-background-color>
<default-frame-rate>30</default-frame-rate>
<default-size>
<width>800</width>
<height>600</height>
</default-size>
</flex-config>

View File

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<!--This Adobe Flex compiler configuration file was generated by a tool.-->
<!--Any modifications you make may be lost.-->
<flex-config>
<target-player>25.0</target-player>
<benchmark>false</benchmark>
<static-link-runtime-shared-libraries>true</static-link-runtime-shared-libraries>
<compiler>
<define append="true">
<name>CONFIG::debug</name>
<value>true</value>
</define>
<define append="true">
<name>CONFIG::release</name>
<value>false</value>
</define>
<define append="true">
<name>CONFIG::timeStamp</name>
<value>'31.01.2021'</value>
</define>
<define append="true">
<name>CONFIG::air</name>
<value>false</value>
</define>
<define append="true">
<name>CONFIG::mobile</name>
<value>false</value>
</define>
<define append="true">
<name>CONFIG::desktop</name>
<value>false</value>
</define>
<verbose-stacktraces>true</verbose-stacktraces>
<source-path append="true">
<path-element>C:\Dropbox\Programovani\JavaSE\FFDec\libsrc\ffdec_lib\testdata\cross_compile\src</path-element>
<path-element>C:\Program Files (x86)\FlashDevelop\Library\AS3\classes</path-element>
</source-path>
</compiler>
<file-specs>
<path-element>C:\Dropbox\Programovani\JavaSE\FFDec\libsrc\ffdec_lib\testdata\cross_compile\src\Main.as</path-element>
</file-specs>
<default-background-color>#FFFFFF</default-background-color>
<default-frame-rate>30</default-frame-rate>
<default-size>
<width>800</width>
<height>600</height>
</default-size>
</flex-config>

View File

@@ -0,0 +1,34 @@
package
{
import flash.display.MovieClip;
import flash.events.Event;
import tests.*;
/**
* ...
* @author JPEXS
*/
public class Main extends MovieClip
{
TestTryCatch;
TestTryCatchIfInTry;
TestTryCatchLoop;
TestTryCatchExceptionUsage
TestTryFinally;
TestTryFinallyDirectReturnInFinally;
TestTryFinallyLoop;
TestTryFinallyLoopInFinally;
TestTryFinallyMultipleCatch;
TestTryFinallyReturn;
TestTryFinallyReturnInFinally;
TestTryFinallyReturnNested;
TestTryFinallyReturnVoid;
public function Main()
{
}
}
}

View File

@@ -0,0 +1,26 @@
package tests
{
/**
* ...
* @author JPEXS
*/
public class TestTryCatch
{
public function run() : void
{
trace("before try");
try
{
trace("in try");
}
catch (e:Error)
{
trace("in catch");
}
trace("after");
}
}
}

View File

@@ -0,0 +1,26 @@
package tests
{
/**
* ...
* @author JPEXS
*/
public class TestTryCatchExceptionUsage
{
public function run() : void
{
trace("before try");
try
{
trace("in try");
}
catch (e:Error)
{
trace("catched exception: "+e.message);
}
trace("after");
}
}
}

View File

@@ -0,0 +1,32 @@
package tests
{
/**
* ...
* @author JPEXS
*/
public class TestTryCatchIfInTry
{
public function run() : void
{
var a:Boolean = true;
trace("before");
try
{
if (a)
{
trace("ret");
return;
}
trace("in try");
}
catch (e:Error)
{
trace("in catch");
}
trace("after");
}
}
}

View File

@@ -0,0 +1,39 @@
package tests
{
import flash.errors.EOFError;
/**
* ...
* @author JPEXS
*/
public class TestTryCatchLoop
{
public function run() : void
{
var j:* = undefined;
for (var i:* = 0; i < 100; i++)
{
try
{
for (j = 0; j < 20; j++)
{
trace("a");
}
}
catch (e:EOFError)
{
continue;
}
catch (e:Error)
{
continue;
}
trace("after_try");
}
trace("end");
}
}
}

View File

@@ -0,0 +1,30 @@
package tests
{
/**
* ...
* @author JPEXS
*/
public class TestTryFinally
{
public function run() : void
{
trace("before try");
try
{
trace("in try");
}
catch (e:Error)
{
trace("in catch");
}
finally
{
trace("in finally");
}
trace("after");
}
}
}

View File

@@ -0,0 +1,34 @@
package tests
{
/**
* ...
* @author JPEXS
*/
public class TestTryFinallyDirectReturnInFinally
{
public function run() : String
{
var str:String = "xxx";
try
{
}
catch (e:Error)
{
trace("error");
}
finally
{
trace("hi ");
if (5 == 4)
{
return str;
}
return "hu" + str;
}
}
}
}

View File

@@ -0,0 +1,38 @@
package tests
{
/**
* ...
* @author JPEXS
*/
public class TestTryFinallyLoop
{
public function run() : void
{
for (var i:int = 0; i < 10; i++)
{
trace("before try");
try
{
trace("in try");
if (i == 5)
{
trace("continue for");
continue;
}
}
catch (e:Error)
{
trace("in catch");
}
finally
{
trace("in finally");
}
trace("after");
}
}
}
}

View File

@@ -0,0 +1,38 @@
package tests
{
/**
* ...
* @author JPEXS
*/
public class TestTryFinallyLoopInFinally
{
public function run() : void
{
for (var i:int = 0; i < 10; i++)
{
trace("before try");
try
{
trace("in try");
}
catch (e:Error)
{
trace("in catch");
}
finally
{
if (i == 5)
{
trace("continue for");
continue;
}
trace("in finally");
}
trace("after");
}
}
}
}

View File

@@ -0,0 +1,35 @@
package tests
{
import flash.errors.EOFError;
/**
* ...
* @author JPEXS
*/
public class TestTryFinallyMultipleCatch
{
public function run() : void
{
trace("before try");
try
{
trace("in try");
}
catch (e:Error)
{
trace("in catch Error");
}
catch (e:EOFError)
{
trace("in catch EOFError");
}
finally
{
trace("in finally");
}
trace("after");
}
}
}

View File

@@ -0,0 +1,42 @@
package tests
{
/**
* ...
* @author JPEXS
*/
public class TestTryFinallyReturn
{
public function run() : String
{
trace("before try");
try
{
trace("in try");
var a:int = 5;
if (a > 4)
{
return "RET";
}
trace("between");
if (a < 3)
{
return "RE2";
}
trace("in try2");
}
catch (e:Error)
{
trace("in catch");
}
finally
{
trace("in finally");
}
trace("after");
return "RETFINAL";
}
}
}

View File

@@ -0,0 +1,44 @@
package tests
{
/**
* ...
* @author JPEXS
*/
public class TestTryFinallyReturnInFinally
{
public function run() : String
{
trace("before try");
try
{
trace("in try");
var a:int = 5;
if (a > 4)
{
return "RET";
}
}
catch (e:Error)
{
trace("in catch");
}
finally
{
trace("in finally");
if (a > 6){
return "FINRET1";
}
trace("xx");
if (a > 5){
return "FINRET2";
}
trace("nofinret");
}
trace("after");
return "RETEXIT";
}
}
}

View File

@@ -0,0 +1,43 @@
package tests
{
/**
* ...
* @author JPEXS
*/
public class TestTryFinallyReturnNested
{
public function run() : String
{
try
{
trace("before try2");
try
{
trace("in try2");
var a:int = 5;
if (a > 4)
{
return "RET";
}
}
catch (e:Error)
{
trace("in catch");
}
finally
{
trace("in finally2");
}
trace("after");
}
finally
{
trace("in finally1");
}
return "RETFINAL";
}
}
}

View File

@@ -0,0 +1,36 @@
package tests
{
/**
* ...
* @author JPEXS
*/
public class TestTryFinallyReturnVoid
{
public function run() : void
{
trace("before try");
try
{
trace("in try");
var a:int = 5;
if (a > 4)
{
return;
}
trace("in try2");
}
catch (e:Error)
{
trace("in catch");
}
finally
{
trace("in finally");
}
trace("after");
}
}
}