Class IteratorGetNextValueNode

java.lang.Object
com.oracle.truffle.api.nodes.Node
com.oracle.truffle.js.nodes.JavaScriptBaseNode
com.oracle.truffle.js.nodes.JavaScriptNode
com.oracle.truffle.js.nodes.access.IteratorGetNextValueNode
All Implemented Interfaces:
com.oracle.truffle.api.instrumentation.InstrumentableNode, com.oracle.truffle.api.nodes.NodeInterface, Cloneable

public abstract class IteratorGetNextValueNode extends JavaScriptNode
Combines IteratorStep and IteratorValue in one node. Equivalent to the following steps:
  1. Let next be IteratorStep(iteratorRecord).
  2. (opt) If next is an abrupt completion, set iteratorRecord.[[Done]] to true.
  3. ReturnIfAbrupt(next).
  4. If next is false,
    1. (opt) Set iteratorRecord.[[Done]] to true.
    2. Return doneResult.
  5. Else,
    1. Let value be IteratorValue(next).
    2. (opt) If value is an abrupt completion, set iteratorRecord.[[Done]] to true.
    3. Return value.