Class WhileNode

All Implemented Interfaces:
com.oracle.truffle.api.instrumentation.InstrumentableNode, com.oracle.truffle.api.nodes.NodeInterface, Cloneable

public final class WhileNode extends StatementNode
12.6.2 The while Statement.
  • Method Details

    • createWhileDoRepeatingNode

      public static com.oracle.truffle.api.nodes.RepeatingNode createWhileDoRepeatingNode(JavaScriptNode condition, JavaScriptNode body)
    • createWhileDo

      public static JavaScriptNode createWhileDo(com.oracle.truffle.api.nodes.LoopNode loopNode)
    • createDesugaredFor

      public static JavaScriptNode createDesugaredFor(com.oracle.truffle.api.nodes.LoopNode loopNode)
    • createDesugaredForOf

      public static JavaScriptNode createDesugaredForOf(com.oracle.truffle.api.nodes.LoopNode loopNode)
    • createDesugaredForIn

      public static JavaScriptNode createDesugaredForIn(com.oracle.truffle.api.nodes.LoopNode loopNode)
    • createDesugaredForAwaitOf

      public static JavaScriptNode createDesugaredForAwaitOf(com.oracle.truffle.api.nodes.LoopNode loopNode)
    • createDoWhileRepeatingNode

      public static com.oracle.truffle.api.nodes.RepeatingNode createDoWhileRepeatingNode(JavaScriptNode condition, JavaScriptNode body)
    • createDoWhile

      public static JavaScriptNode createDoWhile(com.oracle.truffle.api.nodes.LoopNode loopNode)
    • hasTag

      public boolean hasTag(Class<? extends com.oracle.truffle.api.instrumentation.Tag> tag)
      Specified by:
      hasTag in interface com.oracle.truffle.api.instrumentation.InstrumentableNode
      Overrides:
      hasTag in class JavaScriptNode
    • getNodeObject

      public Object getNodeObject()
    • materializeInstrumentableNodes

      public com.oracle.truffle.api.instrumentation.InstrumentableNode materializeInstrumentableNodes(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
    • copyUninitialized

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

      public Object 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
    • executeVoid

      public void executeVoid(com.oracle.truffle.api.frame.VirtualFrame frame)
      Description copied from class: JavaScriptNode
      Like JavaScriptNode.execute(VirtualFrame) except that it throws away the result. A node can override this method if it has a better way to execute without producing a value.
      Overrides:
      executeVoid in class JavaScriptNode
      Parameters:
      frame - the frame of the currently executing guest language method
    • isResultAlwaysOfType

      public boolean isResultAlwaysOfType(Class<?> clazz)
      Overrides:
      isResultAlwaysOfType in class JavaScriptNode
    • getLoopNode

      public com.oracle.truffle.api.nodes.LoopNode getLoopNode()