Class EnumerateNode

java.lang.Object
com.oracle.truffle.api.nodes.Node
All Implemented Interfaces:
com.oracle.truffle.api.instrumentation.InstrumentableNode, com.oracle.truffle.api.nodes.NodeInterface, Cloneable

public abstract class EnumerateNode extends JavaScriptNode
Returns an Iterator object iterating over the enumerable properties of an object.
  • Field Details

  • Constructor Details

    • EnumerateNode

      protected EnumerateNode(JSContext context, boolean values, boolean requireIterable, JavaScriptNode targetNode)
  • Method Details

    • create

      public static EnumerateNode create(JSContext context, JavaScriptNode target, boolean values)
    • create

      public static EnumerateNode create(JSContext context, boolean values, boolean requireIterable)
    • execute

      public abstract JSObject execute(com.oracle.truffle.api.frame.VirtualFrame frame)
      Description copied from class: JavaScriptNode
      Executes this node using the specified context and frame and returns the result value.
      Specified by:
      execute in class JavaScriptNode
      Parameters:
      frame - the frame of the currently executing guest language method
      Returns:
      the value of the execution
    • execute

      public abstract JSObject execute(Object iteratedObject)
    • copyUninitialized

      protected JavaScriptNode copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
      Overrides:
      copyUninitialized in class JavaScriptNode
    • doEnumerateObject

      protected JSObject doEnumerateObject(JSObject iteratedObject)
    • doEnumerateNullOrUndefined

      protected JSObject doEnumerateNullOrUndefined(Object iteratedObject)
    • doEnumerateJSAdapter

      protected JSObject doEnumerateJSAdapter(JSObject iteratedObject, EnumerateNode enumerateCallbackResultNode)
    • doEnumerateTruffleObject

      protected JSObject doEnumerateTruffleObject(Object iteratedObject, com.oracle.truffle.api.nodes.Node node, com.oracle.truffle.api.interop.InteropLibrary interop, com.oracle.truffle.api.interop.InteropLibrary keysInterop, com.oracle.truffle.api.profiles.InlinedBranchProfile notIterable, com.oracle.truffle.api.strings.TruffleString.SwitchEncodingNode switchEncoding)
    • doNonObject

      protected JSObject doNonObject(Object iteratedObject, JSToObjectNode toObjectNode, EnumerateNode enumerateNode)