Class JSForInIteratorObject

All Implemented Interfaces:
com.oracle.truffle.api.interop.TruffleObject

public final class JSForInIteratorObject extends JSNonProxyObject
Internal iterator object used by for-in loop statement.
  • Field Details

    • object

      public JSDynamicObject object
    • objectShape

      public com.oracle.truffle.api.object.Shape objectShape
    • objectWasVisited

      public boolean objectWasVisited
    • visitedKeys

      public org.graalvm.collections.EconomicSet<Object> visitedKeys
    • remainingKeys

      public List<?> remainingKeys
    • remainingKeysSize

      public int remainingKeysSize
    • remainingKeysIndex

      public int remainingKeysIndex
    • visitedShapes

      public com.oracle.truffle.api.object.Shape[] visitedShapes
    • visitedShapesSize

      public int visitedShapesSize
    • fastOwnKeys

      public boolean fastOwnKeys
    • protoDepth

      public int protoDepth
    • iterateValues

      public final boolean iterateValues
  • Constructor Details

    • JSForInIteratorObject

      protected JSForInIteratorObject(com.oracle.truffle.api.object.Shape shape, JSDynamicObject proto, JSDynamicObject obj, boolean iterateValues)
  • Method Details

    • addVisitedShape

      public void addVisitedShape(com.oracle.truffle.api.object.Shape shape, com.oracle.truffle.api.nodes.Node node, com.oracle.truffle.api.profiles.InlinedBranchProfile growBranch)
    • addVisitedKey

      public boolean addVisitedKey(Object key)
    • isVisitedKey

      public boolean isVisitedKey(Object key)