I’ve got problems to isolate the problem into a very big project with many linked sources. After hours inspecting and commenting lines of code trying to figure out the reason why flex gave me an “internal error” I found the problem.
This very simple script was crashing the flex
compiler if using the
3.5.0 sdk ( revision 3.5.0.12683 ).
Fortunately the 4.0.0 compiler works fine. At the end it seems to be the combination of “+” and “-” and the ternary operator.
package
{
import flash.display.Sprite;
public class ternary_test extends Sprite
{
public function ternary_test()
{
var n: Number = 0;
var d: int = 3;
var k: int = 5;
var j: int = 10;
n = 1 + ( -( d == 0 ? k : j ) );
trace( "n=" + n );
}
}
}
will cause the compiler to crash with the following stack trace:
compile:
[mxmlc] Loading configuration file /Applications/Adobe Flash Builder 4 Plug-in/sdks/3.5.0/frameworks/flex-config.xml
[mxmlc] Error: null
[mxmlc] java.lang.NullPointerException
[mxmlc] at macromedia.asc.semantics.ConstantEvaluator.evaluate(ConstantEvaluator.java:1290)
[mxmlc] at macromedia.asc.parser.UnaryExpressionNode.evaluate(UnaryExpressionNode.java:51)
[mxmlc] at macromedia.asc.semantics.ConstantEvaluator.evaluate(ConstantEvaluator.java:2153)
[mxmlc] at macromedia.asc.parser.ListNode.evaluate(ListNode.java:44)
[mxmlc] at macromedia.asc.semantics.ConstantEvaluator.evaluate(ConstantEvaluator.java:1497)
[mxmlc] at macromedia.asc.parser.BinaryExpressionNode.evaluate(BinaryExpressionNode.java:56)
[mxmlc] at macromedia.asc.semantics.ConstantEvaluator.evaluate(ConstantEvaluator.java:2124)
[mxmlc] at macromedia.asc.parser.ArgumentListNode.evaluate(ArgumentListNode.java:45)...