src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/debug/JSONWriter.java

Print this page

        

@@ -36,10 +36,11 @@
 import jdk.nashorn.internal.ir.BreakNode;
 import jdk.nashorn.internal.ir.CallNode;
 import jdk.nashorn.internal.ir.CaseNode;
 import jdk.nashorn.internal.ir.CatchNode;
 import jdk.nashorn.internal.ir.ContinueNode;
+import jdk.nashorn.internal.ir.DebuggerNode;
 import jdk.nashorn.internal.ir.EmptyNode;
 import jdk.nashorn.internal.ir.Expression;
 import jdk.nashorn.internal.ir.ExpressionStatement;
 import jdk.nashorn.internal.ir.ForNode;
 import jdk.nashorn.internal.ir.FunctionNode;

@@ -287,10 +288,17 @@
 
         return leave();
     }
 
     @Override
+    public boolean enterDebuggerNode(final DebuggerNode debuggerNode) {
+        enterDefault(debuggerNode);
+        type("DebuggerStatement");
+        return leave();
+    }
+
+    @Override
     public boolean enterEmptyNode(final EmptyNode emptyNode) {
         enterDefault(emptyNode);
 
         type("EmptyStatement");
 

@@ -300,11 +308,11 @@
     @Override
     public boolean enterExpressionStatement(final ExpressionStatement expressionStatement) {
         // handle debugger statement
         final Node expression = expressionStatement.getExpression();
         if (expression instanceof RuntimeNode) {
-            expression.accept(this);
+            assert false : "should not reach here: RuntimeNode";
             return false;
         }
 
         enterDefault(expressionStatement);
 

@@ -317,18 +325,22 @@
         return leave();
     }
 
     @Override
     public boolean enterBlockStatement(final BlockStatement blockStatement) {
+        if (blockStatement.isSynthetic()) {
+            final Block blk = blockStatement.getBlock();
+            blk.getStatements().get(0).accept(this);
+            return false;
+        }
+
         enterDefault(blockStatement);
 
         type("BlockStatement");
         comma();
 
-        property("block");
-        blockStatement.getBlock().accept(this);
-
+        array("body", blockStatement.getBlock().getStatements());
         return leave();
     }
 
     @Override
     public boolean enterForNode(final ForNode forNode) {

@@ -675,23 +687,17 @@
         return leave();
     }
 
     @Override
     public boolean enterRuntimeNode(final RuntimeNode runtimeNode) {
-        final RuntimeNode.Request req = runtimeNode.getRequest();
-
-        if (req == RuntimeNode.Request.DEBUGGER) {
-            enterDefault(runtimeNode);
-            type("DebuggerStatement");
-            return leave();
-        }
-
+        assert false : "should not reach here: RuntimeNode";
         return false;
     }
 
     @Override
     public boolean enterSplitNode(final SplitNode splitNode) {
+        assert false : "should reach here: SplitNode";
         return false;
     }
 
     @Override
     public boolean enterSwitchNode(final SwitchNode switchNode) {