src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/Parser.java
changeset 47262 bbbf1b1e36e9
parent 47216 71c04702a3d5
child 47287 8eb5e3ccee56
equal deleted inserted replaced
47261:ae970828ec0c 47262:bbbf1b1e36e9
  2051                 appendStatement(new ForNode(forLine, forToken, body.getFinish(), body, (forNode.getFlags() | flags), init, test, modify));
  2051                 appendStatement(new ForNode(forLine, forToken, body.getFinish(), body, (forNode.getFlags() | flags), init, test, modify));
  2052             }
  2052             }
  2053             if (outer != null) {
  2053             if (outer != null) {
  2054                 restoreBlock(outer);
  2054                 restoreBlock(outer);
  2055                 if (body != null) {
  2055                 if (body != null) {
       
  2056                     List<Statement> statements = new ArrayList<>();
       
  2057                     for (final Statement var : outer.getStatements()) {
       
  2058                         if(var instanceof VarNode && !((VarNode)var).isBlockScoped()) {
       
  2059                             appendStatement(var);
       
  2060                         }else {
       
  2061                             statements.add(var);
       
  2062                         }
       
  2063                     }
  2056                     appendStatement(new BlockStatement(forLine, new Block(
  2064                     appendStatement(new BlockStatement(forLine, new Block(
  2057                                     outer.getToken(),
  2065                                     outer.getToken(),
  2058                                     body.getFinish(),
  2066                                     body.getFinish(),
  2059                                     outer.getStatements())));
  2067                                     statements)));
  2060                 }
  2068                 }
  2061             }
  2069             }
  2062         }
  2070         }
  2063     }
  2071     }
  2064 
  2072