Class ForEachIndexCallNode

java.lang.Object
com.oracle.truffle.api.nodes.Node
com.oracle.truffle.js.nodes.JavaScriptBaseNode
com.oracle.truffle.js.nodes.access.ForEachIndexCallNode
All Implemented Interfaces:
com.oracle.truffle.api.nodes.NodeInterface, Cloneable
Direct Known Subclasses:
ForEachIndexCallNode.BackwardForEachIndexCallNode, ForEachIndexCallNode.ForwardForEachIndexCallNode

public abstract class ForEachIndexCallNode extends JavaScriptBaseNode
  • Field Details

    • targetClassProfile

      protected final JSClassProfile targetClassProfile
    • loopCond

      protected final com.oracle.truffle.api.profiles.LoopConditionProfile loopCond
    • outOfBoundsBranch

      protected final com.oracle.truffle.api.profiles.BranchProfile outOfBoundsBranch
    • maybeResultNode

      protected ForEachIndexCallNode.MaybeResultNode maybeResultNode
    • context

      protected final JSContext context
    • checkHasProperty

      protected final boolean checkHasProperty
  • Constructor Details

  • Method Details

    • create

      public static ForEachIndexCallNode create(JSContext context, ForEachIndexCallNode.CallbackNode callbackArgumentsNode, ForEachIndexCallNode.MaybeResultNode maybeResultNode, boolean forward, boolean checkHasProperty)
    • executeForEachIndex

      public final Object executeForEachIndex(Object target, Object callback, Object callbackThisArg, long fromIndex, long length, Object initialResult)
    • executeForEachIndexFast

      protected abstract Object executeForEachIndexFast(JSDynamicObject target, Object callback, Object callbackThisArg, long fromIndex, long length, Object initialResult)
    • executeForEachIndexSlow

      protected abstract Object executeForEachIndexSlow(Object target, Object callback, Object callbackThisArg, long fromIndex, long length, Object initialResult)
    • firstElementIndex

      protected final long firstElementIndex(JSDynamicObject target, long length)
    • lastElementIndex

      protected final long lastElementIndex(JSDynamicObject target, long length)
    • getInterop

      protected final com.oracle.truffle.api.interop.InteropLibrary getInterop()
    • foreignRead

      protected Object foreignRead(Object target, long index, boolean isForeignArray)
    • getElement

      protected Object getElement(Object target, long index, boolean isForeign, boolean isForeignArray)
    • isOutOfBounds

      protected final boolean isOutOfBounds(Object view)
    • callback

      protected final Object callback(long index, Object value, Object target, Object callback, Object callbackThisArg, Object currentResult)
    • readElementInBounds

      protected final Object readElementInBounds(JSDynamicObject target, long index)
    • hasProperty

      protected final boolean hasProperty(Object target, long index)