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

Reply via email to