< prev index next >

src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/AssignSymbols.java

Print this page




 786             args.add(LiteralNode.newInstance(unaryNode, property));
 787             args.add(strictFlagNode);
 788 
 789         } else if (rhs instanceof IndexNode) {
 790             final IndexNode indexNode = (IndexNode)rhs;
 791             final Expression base  = indexNode.getBase();
 792             final Expression index = indexNode.getIndex();
 793 
 794             args.add(base);
 795             args.add(index);
 796             args.add(strictFlagNode);
 797 
 798         } else {
 799             return LiteralNode.newInstance(unaryNode, true);
 800         }
 801         return new RuntimeNode(unaryNode, request, args);
 802     }
 803 
 804     @Override
 805     public Node leaveForNode(final ForNode forNode) {
 806         if (forNode.isForIn()) {
 807             return forNode.setIterator(lc, newObjectInternal(ITERATOR_PREFIX)); //NASHORN-73
 808         }
 809 
 810         return end(forNode);
 811     }
 812 
 813     @Override
 814     public Node leaveFunctionNode(final FunctionNode functionNode) {
 815         final FunctionNode finalizedFunction;
 816         if (isUnparsedFunction(functionNode)) {
 817             finalizedFunction = functionNode;
 818         } else {
 819             finalizedFunction =
 820                markProgramBlock(
 821                removeUnusedSlots(
 822                createSyntheticInitializers(
 823                finalizeParameters(
 824                        lc.applyTopFlags(functionNode))))
 825                        .setThisProperties(lc, thisProperties.pop().size()));
 826         }




 786             args.add(LiteralNode.newInstance(unaryNode, property));
 787             args.add(strictFlagNode);
 788 
 789         } else if (rhs instanceof IndexNode) {
 790             final IndexNode indexNode = (IndexNode)rhs;
 791             final Expression base  = indexNode.getBase();
 792             final Expression index = indexNode.getIndex();
 793 
 794             args.add(base);
 795             args.add(index);
 796             args.add(strictFlagNode);
 797 
 798         } else {
 799             return LiteralNode.newInstance(unaryNode, true);
 800         }
 801         return new RuntimeNode(unaryNode, request, args);
 802     }
 803 
 804     @Override
 805     public Node leaveForNode(final ForNode forNode) {
 806         if (forNode.isForIn() || forNode.isForOf()) {
 807             return forNode.setIterator(lc, newObjectInternal(ITERATOR_PREFIX)); //NASHORN-73
 808         }
 809 
 810         return end(forNode);
 811     }
 812 
 813     @Override
 814     public Node leaveFunctionNode(final FunctionNode functionNode) {
 815         final FunctionNode finalizedFunction;
 816         if (isUnparsedFunction(functionNode)) {
 817             finalizedFunction = functionNode;
 818         } else {
 819             finalizedFunction =
 820                markProgramBlock(
 821                removeUnusedSlots(
 822                createSyntheticInitializers(
 823                finalizeParameters(
 824                        lc.applyTopFlags(functionNode))))
 825                        .setThisProperties(lc, thisProperties.pop().size()));
 826         }


< prev index next >