1.1 --- a/src/jdk/nashorn/internal/codegen/AssignSymbols.java Fri Oct 17 14:24:26 2014 +0200 1.2 +++ b/src/jdk/nashorn/internal/codegen/AssignSymbols.java Mon Oct 20 12:06:36 2014 +0200 1.3 @@ -76,7 +76,6 @@ 1.4 import jdk.nashorn.internal.ir.Node; 1.5 import jdk.nashorn.internal.ir.RuntimeNode; 1.6 import jdk.nashorn.internal.ir.RuntimeNode.Request; 1.7 -import jdk.nashorn.internal.ir.SplitNode; 1.8 import jdk.nashorn.internal.ir.Statement; 1.9 import jdk.nashorn.internal.ir.SwitchNode; 1.10 import jdk.nashorn.internal.ir.Symbol; 1.11 @@ -135,9 +134,6 @@ 1.12 if (!(functionNode.hasScopeBlock() || functionNode.needsParentScope())) { 1.13 functionNode.compilerConstant(SCOPE).setNeedsSlot(false); 1.14 } 1.15 - if (!functionNode.usesReturnSymbol()) { 1.16 - functionNode.compilerConstant(RETURN).setNeedsSlot(false); 1.17 - } 1.18 // Named function expressions that end up not referencing themselves won't need a local slot for the self symbol. 1.19 if(!functionNode.isDeclared() && !functionNode.usesSelfSymbol() && !functionNode.isAnonymous()) { 1.20 final Symbol selfSymbol = functionNode.getBody().getExistingSymbol(functionNode.getIdent().getName()); 1.21 @@ -1014,7 +1010,7 @@ 1.22 boolean previousWasBlock = false; 1.23 for (final Iterator<LexicalContextNode> it = lc.getAllNodes(); it.hasNext();) { 1.24 final LexicalContextNode node = it.next(); 1.25 - if (node instanceof FunctionNode || node instanceof SplitNode || isSplitArray(node)) { 1.26 + if (node instanceof FunctionNode || isSplitArray(node)) { 1.27 // We reached the function boundary or a splitting boundary without seeing a definition for the symbol. 1.28 // It needs to be in scope. 1.29 return true;