hg: jdk9/dev/nashorn: 8012518: Reengineer Parser.java to make it play well with the copy-on-write IR.

marcus.lagergren at oracle.com marcus.lagergren at oracle.com
Tue Oct 14 13:31:24 UTC 2014


Changeset: ca67ae7c46cb
Author:    lagergren
Date:      2014-10-14 15:28 +0200
URL:       http://hg.openjdk.java.net/jdk9/dev/nashorn/rev/ca67ae7c46cb

8012518: Reengineer Parser.java to make it play well with the copy-on-write IR.
Summary: Remove the kludges introduced to make the parser work with the copy on write IR. Now everything is done bottom up, finshing node children completely before node parents. The repeated non-functional pattern 'node = node.setSomething(something);' is gone. Resulting code is much more readable, and extensible for future work. The parser is now also consistent with the rest of the stateless copy-on-write world in code generation.
Reviewed-by: lagergren, attila, hannesw, shade
Contributed-by: andreas.gabrielsson at oracle.com

! .hgignore
+ bin/runopt.sh
! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/ScriptUtils.java
! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/Block.java
! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/ForNode.java
! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/FunctionNode.java
! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/LoopNode.java
! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/Node.java
! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/WhileNode.java
! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/WithNode.java
! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/Global.java
! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeError.java
! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeJava.java
! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/Parser.java
+ src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/ParserContext.java
+ src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/ParserContextBaseNode.java
+ src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/ParserContextBlockNode.java
+ src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/ParserContextBreakableNode.java
+ src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/ParserContextFunctionNode.java
+ src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/ParserContextLabelNode.java
+ src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/ParserContextLoopNode.java
+ src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/ParserContextNode.java
+ src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/ParserContextSwitchNode.java
! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/Context.java



More information about the jdk9-dev-changes mailing list