This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public function compileErrorTest():void { | |
var timer:Timer = new Timer(1000); | |
timer.addEventListener(TimerEvent.TIMER, function onTick(event:Event):void { | |
var httpService:HTTPService = new HTTPService(); | |
httpService.addEventListener(ResultEvent.RESULT, | |
function http(event:ResultEvent):void { | |
httpService.removeEventListener(ResultEvent.RESULT, http); | |
}); | |
}); | |
} |
原因としては、名前付きのfunctionをネストしたのがダメっぽいです。
ActionScript Compiler (ASC)のバグシステムにも上がってました。→Compiler crash with nested named functions
どんな現象がでるのか...ですが、
エラーは、以下2つのものがコンパイルの度に交互にでたりして、これまた混乱させます。
/Users/ogawahideko/workspace/ws_aslimtimer/test/Test.mxml(2): エラー: クラスをネストすることはできません。
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" title="Test" layout="absolute">
エラー: Index: 18, Size: 18
java.lang.IndexOutOfBoundsException: Index: 18, Size: 18
at java.util.ArrayList.RangeCheck(ArrayList.java:546)
at java.util.ArrayList.get(ArrayList.java:321)
at macromedia.asc.semantics.ReferenceValue.getSlot(ReferenceValue.java:253)
at macromedia.asc.embedding.LintEvaluator.evaluate(LintEvaluator.java:659)
at macromedia.asc.parser.GetExpressionNode.evaluate(GetExpressionNode.java:55)
at macromedia.asc.embedding.LintEvaluator.evaluate(LintEvaluator.java:1025)
at macromedia.asc.parser.MemberExpressionNode.evaluate(MemberExpressionNode.java:57)
at macromedia.asc.embedding.LintEvaluator.evaluate(LintEvaluator.java:1268)
at macromedia.asc.parser.ArgumentListNode.evaluate(ArgumentListNode.java:45)
at macromedia.asc.embedding.LintEvaluator.evaluateGenericCallExpression(LintEvaluator.java:269)
at macromedia.asc.embedding.LintEvaluator.evaluate(LintEvaluator.java:454)
at macromedia.asc.parser.CallExpressionNode.evaluate(CallExpressionNode.java:46)
at macromedia.asc.embedding.LintEvaluator.evaluate(LintEvaluator.java:1025)
at macromedia.asc.parser.MemberExpressionNode.evaluate(MemberExpressionNode.java:57)
at macromedia.asc.embedding.LintEvaluator.evaluate(LintEvaluator.java:1324)
at macromedia.asc.parser.ListNode.evaluate(ListNode.java:44)
at macromedia.asc.embedding.LintEvaluator.evaluate(LintEvaluator.java:1398)
at macromedia.asc.parser.ExpressionStatementNode.evaluate(ExpressionStatementNode.java:50)
at macromedia.asc.embedding.LintEvaluator.evaluate(LintEvaluator.java:1346)
at macromedia.asc.parser.StatementListNode.evaluate(StatementListNode.java:60)
at macromedia.asc.embedding.LintEvaluator.evaluate(LintEvaluator.java:1867)
at macromedia.asc.parser.FunctionCommonNode.evaluate(FunctionCommonNode.java:104)
at macromedia.asc.embedding.LintEvaluator.evaluate(LintEvaluator.java:1848)
at macromedia.asc.parser.FunctionCommonNode.evaluate(FunctionCommonNode.java:104)
at macromedia.asc.embedding.LintEvaluator.evaluate(LintEvaluator.java:1848)
at macromedia.asc.parser.FunctionCommonNode.evaluate(FunctionCommonNode.java:104)
at macromedia.asc.embedding.LintEvaluator.evaluate(LintEvaluator.java:2321)
at macromedia.asc.parser.ClassDefinitionNode.evaluate(ClassDefinitionNode.java:106)
at macromedia.asc.embedding.LintEvaluator.evaluate(LintEvaluator.java:2042)
at macromedia.asc.parser.ProgramNode.evaluate(ProgramNode.java:80)
at flex2.compiler.as3.Compiler.analyze4(Compiler.java:611)
at flex2.compiler.mxml.ImplementationCompiler.analyze4(ImplementationCompiler.java:279)
at flex2.compiler.mxml.Compiler.analyze4(Compiler.java:153)
at flex2.compiler.API.analyze(API.java:2542)
at flex2.compiler.API.analyze(API.java:2432)
at flex2.compiler.API.batch2(API.java:411)
at flex2.compiler.API.batch(API.java:1117)
at flex2.compiler.API.compile(API.java:1290)
at flex2.tools.SimpleShell.compile_mxmlc(SimpleShell.java:600)
at flex2.tools.SimpleShell.compile(SimpleShell.java:349)
at flex2.tools.SimpleShell.process(SimpleShell.java:179)
at flex2.tools.SimpleShell.main(SimpleShell.java:75)
マイルストーンはFlex 4になっているので、なおるんだとは思いますが...