Class JSHasPropertyNode

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

public abstract class JSHasPropertyNode extends JavaScriptBaseNode
This node wraps part of the [[HasProperty]] function of ECMAScript. Its purpose is to specialize on features of the object and/or the property sought.
  • Constructor Details

    • JSHasPropertyNode

      protected JSHasPropertyNode(boolean hasOwnProperty)
  • Method Details

    • create

      public static JSHasPropertyNode create()
    • create

      public static JSHasPropertyNode create(boolean hasOwnProperty)
    • executeBoolean

      public abstract boolean executeBoolean(Object object, Object propertyName)
    • executeBoolean

      public abstract boolean executeBoolean(Object object, long index)
    • arrayLongCached

      public boolean arrayLongCached(JSDynamicObject object, long index, com.oracle.truffle.api.nodes.Node node, ScriptArray cachedArrayType, com.oracle.truffle.api.profiles.InlinedConditionProfile hasElementProfile)
    • arrayLong

      public boolean arrayLong(JSDynamicObject object, long index, com.oracle.truffle.api.profiles.InlinedConditionProfile hasElementProfile)
    • typedArray

      public boolean typedArray(JSTypedArrayObject object, long index, TypedArrayLengthNode typedArrayLengthNode)
    • objectStringCached

      public boolean objectStringCached(JSDynamicObject object, com.oracle.truffle.api.strings.TruffleString propertyName, JSClass cachedObjectType, com.oracle.truffle.api.strings.TruffleString cachedName, HasPropertyCacheNode hasPropertyNode, com.oracle.truffle.api.strings.TruffleString.EqualNode equalNode)
    • arrayStringCached

      public boolean arrayStringCached(JSDynamicObject object, com.oracle.truffle.api.strings.TruffleString propertyName, com.oracle.truffle.api.strings.TruffleString cachedName, HasPropertyCacheNode hasPropertyNode, com.oracle.truffle.api.strings.TruffleString.EqualNode equalNode)
    • objectString

      public boolean objectString(JSDynamicObject object, com.oracle.truffle.api.strings.TruffleString propertyName)
    • objectSymbol

      public boolean objectSymbol(JSDynamicObject object, Symbol propertyName)
    • objectLong

      public boolean objectLong(JSDynamicObject object, long propertyIdx)
    • foreignObject

      public boolean foreignObject(Object object, Object propertyName, com.oracle.truffle.api.interop.InteropLibrary interop, JSToStringNode toStringNode, ForeignObjectPrototypeNode foreignObjectPrototypeNode, JSHasPropertyNode hasInPrototype)
    • objectObject

      public boolean objectObject(JSDynamicObject object, Object propertyName, JSToPropertyKeyNode toPropertyKeyNode)
    • isCacheableObjectType

      protected static boolean isCacheableObjectType(JSDynamicObject obj)
    • getCacheableObjectType

      protected static JSClass getCacheableObjectType(JSDynamicObject obj)
    • getArrayType

      protected static ScriptArray getArrayType(JSDynamicObject object)
    • getCachedPropertyGetter

      protected HasPropertyCacheNode getCachedPropertyGetter(JSDynamicObject object, Object key)