[I posted this to the newsgroup a couple of days ago, but it didn't seem to reach the mailing list, so I'm sending it again.]
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
