Hi group,
I've run into a problem with E4X filters on namespaced elements. The
following example demonstrates the problem:
var xml = <atom:feed xmlns:atom="http://www.w3.org/2005/Atom">
<atom:entry>
<atom:title>One</atom:title>
</atom:entry>
<atom:entry>
<atom:title>Two</atom:title>
</atom:entry>
</atom:feed>;
if (1) {
var atom = new Namespace("http://www.w3.org/2005/Atom");
print(xml.atom::entry.(atom::title == "One"));
}
else {
default xml namespace = "http://www.w3.org/2005/Atom";
print(xml.entry.(title == "One"));
default xml namespace = "";
}
The first part of the if () statement results in the following stack
trace when optimization is turned on (tested with rhino1_7R2-RC3.zip).
The second part works. Should I file a bug somewhere?
Exception in thread "main" java.lang.RuntimeException: Bad tree in codegen
at
org.mozilla.javascript.optimizer.Codegen.badTree(Codegen.java:1273)
at
org.mozilla.javascript.optimizer.BodyCodegen.visitIfJumpEqOp(Codegen.java:4429)
at
org.mozilla.javascript.optimizer.BodyCodegen.generateExpression(Codegen.java:2589)
at
org.mozilla.javascript.optimizer.BodyCodegen.visitDotQuery(Codegen.java:4758)
at
org.mozilla.javascript.optimizer.BodyCodegen.generateExpression(Codegen.java:2805)
at
org.mozilla.javascript.optimizer.BodyCodegen.generateCallArgArray(Codegen.java:3551)
at
org.mozilla.javascript.optimizer.BodyCodegen.visitStandardCall(Codegen.java:3314)
at
org.mozilla.javascript.optimizer.BodyCodegen.generateExpression(Codegen.java:2271)
at
org.mozilla.javascript.optimizer.BodyCodegen.generateStatement(Codegen.java:2118)
at
org.mozilla.javascript.optimizer.BodyCodegen.generateStatement(Codegen.java:1937)
at
org.mozilla.javascript.optimizer.BodyCodegen.generateStatement(Codegen.java:1937)
at
org.mozilla.javascript.optimizer.BodyCodegen.generateBodyCode(Codegen.java:1363)
at
org.mozilla.javascript.optimizer.Codegen.generateCode(Codegen.java:327)
at
org.mozilla.javascript.optimizer.Codegen.compileToClassFile(Codegen.java:182)
at
org.mozilla.javascript.optimizer.Codegen.compile(Codegen.java:91)
at org.mozilla.javascript.Context.compileImpl(Context.java:2391)
at org.mozilla.javascript.Context.compileString(Context.java:1359)
at org.mozilla.javascript.Context.compileString(Context.java:1348)
at
org.mozilla.javascript.tools.shell.Main.loadScriptFromSource(Main.java:495)
at
org.mozilla.javascript.tools.shell.Main.processFileSecure(Main.java:483)
at
org.mozilla.javascript.tools.shell.Main.processFile(Main.java:452)
at
org.mozilla.javascript.tools.shell.Main.processSource(Main.java:443)
at
org.mozilla.javascript.tools.shell.Main.processFiles(Main.java:196)
at
org.mozilla.javascript.tools.shell.Main$IProxy.run(Main.java:117)
at org.mozilla.javascript.Context.call(Context.java:515)
at
org.mozilla.javascript.ContextFactory.call(ContextFactory.java:507)
at org.mozilla.javascript.tools.shell.Main.exec(Main.java:179)
at org.mozilla.javascript.tools.shell.Main.main(Main.java:157)
_______________________________________________
dev-tech-js-engine-rhino mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-rhino