Class PropertyGetNode
java.lang.Object
com.oracle.truffle.api.nodes.Node
com.oracle.truffle.js.nodes.JavaScriptBaseNode
com.oracle.truffle.js.nodes.access.PropertyCacheNode<PropertyGetNode.GetCacheNode>
com.oracle.truffle.js.nodes.access.PropertyGetNode
- All Implemented Interfaces:
com.oracle.truffle.api.nodes.NodeInterface,Cloneable
ES6 9.1.8 [[Get]] (P, Receiver).
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classstatic final classstatic final classstatic final classstatic final classFor use when a property is undefined and __noSuchProperty__/__noSuchMethod__ had been set.static final classstatic final classstatic final classstatic final classstatic final classstatic final classstatic final classstatic final classstatic final classstatic final classstatic final classstatic classstatic final classstatic final classstatic final classstatic final classstatic final classstatic final classstatic final classstatic final classstatic classstatic final classstatic final classstatic final classstatic final classstatic final classstatic final classIf object is undefined or null, throw TypeError.static final classFor use when a global property is undefined.static final classFor use when a property is undefined.static final classNested classes/interfaces inherited from class com.oracle.truffle.js.nodes.access.PropertyCacheNode
PropertyCacheNode.AbstractFinalPrototypeShapeCheckNode, PropertyCacheNode.AbstractShapeCheckNode, PropertyCacheNode.AbstractSingleRealmShapeCheckNode, PropertyCacheNode.CacheNode<T extends PropertyCacheNode.CacheNode<T>>, PropertyCacheNode.CombinedShapeCheckNode, PropertyCacheNode.ConstantObjectAssumptionShapeCheckNode, PropertyCacheNode.ConstantObjectPrototypeChainShapeCheckNode, PropertyCacheNode.ForeignLanguageCheckNode, PropertyCacheNode.InstanceofCheckNode, PropertyCacheNode.NullCheckNode, PropertyCacheNode.PrototypeChainShapeCheckNode, PropertyCacheNode.PrototypeShapeCheckNode, PropertyCacheNode.ReceiverCheckNode, PropertyCacheNode.ShapeCheckNode, PropertyCacheNode.TraversePrototypeChainShapeCheckNode, PropertyCacheNode.TraversePrototypeShapeCheckNode, PropertyCacheNode.TraverseValuePrototypeChainCheckNode, PropertyCacheNode.ValuePrototypeChainCheckNodeNested classes/interfaces inherited from class com.oracle.truffle.api.nodes.Node
com.oracle.truffle.api.nodes.Node.Child, com.oracle.truffle.api.nodes.Node.Children -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected PropertyGetNode.GetCacheNodeprotected final booleanprotected final booleanprotected booleanFields inherited from class com.oracle.truffle.js.nodes.access.PropertyCacheNode
context, key -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedPropertyGetNode(Object key, JSContext context, boolean isGlobal, boolean getOwnProperty, boolean isMethod) -
Method Summary
Modifier and TypeMethodDescriptionprotected booleancanCombineShapeCheck(com.oracle.truffle.api.object.Shape parentShape, com.oracle.truffle.api.object.Shape cacheShape, Object thisObj, int depth, Object value, com.oracle.truffle.api.object.Property property) static PropertyGetNodestatic PropertyGetNodestatic PropertyGetNodeprotected PropertyGetNode.GetCacheNodecreateCachedPropertyNode(com.oracle.truffle.api.object.Property property, Object thisObj, JSDynamicObject proto, int depth, Object value, PropertyGetNode.GetCacheNode currentHead) Make a cache for a JSObject with this property map and requested property.protected PropertyGetNode.GetCacheNodecreateCombinedIcPropertyNode(com.oracle.truffle.api.object.Shape parentShape, com.oracle.truffle.api.object.Shape cacheShape, Object thisObj, int depth, Object value, com.oracle.truffle.api.object.Property property) protected PropertyGetNode.GetCacheNodeMake a generic-case node, for when polymorphism becomes too high.static PropertyGetNodecreateGetHidden(com.oracle.truffle.api.object.HiddenKey key, JSContext context) static PropertyGetNodecreateGetMethod(Object key, JSContext context) static PropertyGetNodecreateGetOwn(Object key, JSContext context) protected PropertyGetNode.GetCacheNodecreateJavaPropertyNodeMaybe(Object thisObj, JSDynamicObject proto, int depth) protected PropertyGetNode.GetCacheNodecreateJSProxyCache(PropertyCacheNode.ReceiverCheckNode receiverCheck) protected PropertyGetNode.GetCacheNodeprotected PropertyGetNode.GetCacheNodeprotected PropertyGetNode.GetCacheNodecreateUndefinedPropertyNode(Object thisObj, Object store, JSDynamicObject proto, int depth, Object value) protected PropertyGetNode.GetCacheNodestatic PropertyGetNodefinal Objectfinal booleangetValueBoolean(Object obj) protected booleangetValueBoolean(Object thisObj, Object receiver) final doublegetValueDouble(Object obj) protected doublegetValueDouble(Object thisObj, Object receiver) final intgetValueInt(Object obj) protected intgetValueInt(Object thisObj, Object receiver) final ObjectgetValueOrDefault(Object obj, Object defaultValue) protected ObjectgetValueOrDefault(Object thisObj, Object receiver, Object defaultValue) final ObjectgetValueOrUndefined(Object thisObj, Object receiver) protected final booleanisGlobal()protected booleanisMethod()protected final booleanprotected booleanprotected final booleanprotected voidprotected voidprotected voidsetPropertyAssumptionCheckEnabled(boolean value) Methods inherited from class com.oracle.truffle.js.nodes.access.PropertyCacheNode
alwaysUseStore, castDynamicObject, checkForUnstableAssumption, createJSClassCheck, createPrimitiveReceiverCheck, createShapeCheckNode, createSpecialization, deoptimize, filterValid, getAccessorKey, getAccessorKey, getContext, getKey, getPrototypeAtDepth, insertCached, invalidateCache, isArrayLengthProperty, isClassPrototypeProperty, isDynamicObject, isFunctionLengthProperty, isFunctionNameProperty, isLazyNamedCaptureGroupProperty, isLazyRegexResultIndexProperty, isStringLengthProperty, propertyAssumptionsValid, prototypesInShape, retryCache, rewriteCached, rewriteToGeneric, shapesHaveCommonLayoutForKey, specialize, specialize, traceRewriteEvictFinal, tryMergeShapes, wrapPrimitiveMethods inherited from class com.oracle.truffle.js.nodes.JavaScriptBaseNode
copy, getJSContext, getLanguage, getLanguageOptions, getRealm, hasOverloadedOperators, onReplaceMethods inherited from class com.oracle.truffle.api.nodes.Node
accept, adoptChildren, atomic, atomic, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, getSourceSection, insert, insert, isAdoptable, isSafelyReplaceableBy, notifyInserted, replace, replace, reportPolymorphicSpecialize, toString
-
Field Details
-
isGlobal
protected final boolean isGlobal -
getOwnProperty
protected final boolean getOwnProperty -
isMethod
protected boolean isMethod -
cacheNode
-
-
Constructor Details
-
PropertyGetNode
-
-
Method Details
-
create
-
create
-
create
public static PropertyGetNode create(Object key, boolean isGlobal, JSContext context, boolean getOwnProperty, boolean isMethod) -
createGetOwn
-
createGetHidden
public static PropertyGetNode createGetHidden(com.oracle.truffle.api.object.HiddenKey key, JSContext context) -
createGetMethod
-
getValue
-
getValueInt
public final int getValueInt(Object obj) throws com.oracle.truffle.api.nodes.UnexpectedResultException - Throws:
com.oracle.truffle.api.nodes.UnexpectedResultException
-
getValueDouble
public final double getValueDouble(Object obj) throws com.oracle.truffle.api.nodes.UnexpectedResultException - Throws:
com.oracle.truffle.api.nodes.UnexpectedResultException
-
getValueBoolean
public final boolean getValueBoolean(Object obj) throws com.oracle.truffle.api.nodes.UnexpectedResultException - Throws:
com.oracle.truffle.api.nodes.UnexpectedResultException
-
getValueOrDefault
-
getValueOrUndefined
-
getValueInt
-
getValueDouble
-
getValueBoolean
-
getValueOrDefault
-
getCacheNode
- Specified by:
getCacheNodein classPropertyCacheNode<PropertyGetNode.GetCacheNode>
-
setCacheNode
- Specified by:
setCacheNodein classPropertyCacheNode<PropertyGetNode.GetCacheNode>
-
createCachedPropertyNode
protected PropertyGetNode.GetCacheNode createCachedPropertyNode(com.oracle.truffle.api.object.Property property, Object thisObj, JSDynamicObject proto, int depth, Object value, PropertyGetNode.GetCacheNode currentHead) Make a cache for a JSObject with this property map and requested property.- Specified by:
createCachedPropertyNodein classPropertyCacheNode<PropertyGetNode.GetCacheNode>- Parameters:
property- The particular entry of the property being accessed.
-
createJavaPropertyNodeMaybe
protected PropertyGetNode.GetCacheNode createJavaPropertyNodeMaybe(Object thisObj, JSDynamicObject proto, int depth) - Specified by:
createJavaPropertyNodeMaybein classPropertyCacheNode<PropertyGetNode.GetCacheNode>
-
createUndefinedPropertyNode
protected PropertyGetNode.GetCacheNode createUndefinedPropertyNode(Object thisObj, Object store, JSDynamicObject proto, int depth, Object value) - Specified by:
createUndefinedPropertyNodein classPropertyCacheNode<PropertyGetNode.GetCacheNode>
-
createJSProxyCache
protected PropertyGetNode.GetCacheNode createJSProxyCache(PropertyCacheNode.ReceiverCheckNode receiverCheck) -
createUndefinedOrErrorPropertyNode
protected PropertyGetNode.GetCacheNode createUndefinedOrErrorPropertyNode(PropertyCacheNode.ReceiverCheckNode receiverCheck) -
createGenericPropertyNode
Make a generic-case node, for when polymorphism becomes too high.- Specified by:
createGenericPropertyNodein classPropertyCacheNode<PropertyGetNode.GetCacheNode>
-
isRequired
protected final boolean isRequired() -
isGlobal
protected final boolean isGlobal()- Specified by:
isGlobalin classPropertyCacheNode<PropertyGetNode.GetCacheNode>
-
isOwnProperty
protected final boolean isOwnProperty()- Specified by:
isOwnPropertyin classPropertyCacheNode<PropertyGetNode.GetCacheNode>
-
isMethod
protected boolean isMethod() -
setMethod
protected void setMethod() -
isPropertyAssumptionCheckEnabled
protected boolean isPropertyAssumptionCheckEnabled()- Specified by:
isPropertyAssumptionCheckEnabledin classPropertyCacheNode<PropertyGetNode.GetCacheNode>
-
setPropertyAssumptionCheckEnabled
protected void setPropertyAssumptionCheckEnabled(boolean value) - Specified by:
setPropertyAssumptionCheckEnabledin classPropertyCacheNode<PropertyGetNode.GetCacheNode>
-
createTruffleObjectPropertyNode
- Specified by:
createTruffleObjectPropertyNodein classPropertyCacheNode<PropertyGetNode.GetCacheNode>
-
canCombineShapeCheck
protected boolean canCombineShapeCheck(com.oracle.truffle.api.object.Shape parentShape, com.oracle.truffle.api.object.Shape cacheShape, Object thisObj, int depth, Object value, com.oracle.truffle.api.object.Property property) - Specified by:
canCombineShapeCheckin classPropertyCacheNode<PropertyGetNode.GetCacheNode>
-
createCombinedIcPropertyNode
protected PropertyGetNode.GetCacheNode createCombinedIcPropertyNode(com.oracle.truffle.api.object.Shape parentShape, com.oracle.truffle.api.object.Shape cacheShape, Object thisObj, int depth, Object value, com.oracle.truffle.api.object.Property property) - Specified by:
createCombinedIcPropertyNodein classPropertyCacheNode<PropertyGetNode.GetCacheNode>
-
getNullNode
-