Class PropertyCacheNode.ConstantObjectPrototypeChainShapeCheckNode
java.lang.Object
com.oracle.truffle.api.nodes.Node
com.oracle.truffle.js.nodes.JavaScriptBaseNode
com.oracle.truffle.js.nodes.access.PropertyCacheNode.ReceiverCheckNode
com.oracle.truffle.js.nodes.access.PropertyCacheNode.AbstractShapeCheckNode
com.oracle.truffle.js.nodes.access.PropertyCacheNode.AbstractSingleRealmShapeCheckNode
com.oracle.truffle.js.nodes.access.PropertyCacheNode.ConstantObjectPrototypeChainShapeCheckNode
- All Implemented Interfaces:
com.oracle.truffle.api.nodes.NodeInterface,Cloneable
- Enclosing class:
PropertyCacheNode<T extends PropertyCacheNode.CacheNode<T>>
protected static final class PropertyCacheNode.ConstantObjectPrototypeChainShapeCheckNode
extends PropertyCacheNode.AbstractSingleRealmShapeCheckNode
Checks that the given shape and all prototype shapes up to depth are valid, that the property
is unchanged in these shapes, and that all prototypes are stable, all using assumptions only.
- See Also:
-
Nested Class Summary
Nested 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
Fields inherited from class com.oracle.truffle.js.nodes.access.PropertyCacheNode.AbstractSingleRealmShapeCheckNode
assumptionsFields inherited from class com.oracle.truffle.js.nodes.access.PropertyCacheNode.ReceiverCheckNode
shape -
Method Summary
Modifier and TypeMethodDescriptionbooleanCheck receiver shape, class, or instance.intgetDepth()Returns a constant reference to the resolved prototype.protected booleanMethods inherited from class com.oracle.truffle.js.nodes.access.PropertyCacheNode.AbstractSingleRealmShapeCheckNode
isValidMethods inherited from class com.oracle.truffle.js.nodes.access.PropertyCacheNode.ReceiverCheckNode
getShapeMethods inherited from class com.oracle.truffle.js.nodes.JavaScriptBaseNode
copy, getJSContext, getLanguage, getLanguageOptions, getRealm, hasOverloadedOperators, onReplace, reportLoopCount, reportLoopCountMethods 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, reportReplace, toString
-
Method Details
-
accept
Description copied from class:PropertyCacheNode.ReceiverCheckNodeCheck receiver shape, class, or instance.- Overrides:
acceptin classPropertyCacheNode.AbstractShapeCheckNode- Returns:
- whether the object is supported by the associated property cache node.
-
getStore
Returns a constant reference to the resolved prototype. The prototype is held in as a weak reference that is guaranteed to be non-null if the associated constant object specialization matches the expected object.- Specified by:
getStorein classPropertyCacheNode.AbstractShapeCheckNode- Returns:
- the
JSDynamicObjectthat contains the property.
-
getDepth
public int getDepth()- Overrides:
getDepthin classPropertyCacheNode.AbstractShapeCheckNode
-
isUnstable
protected boolean isUnstable()- Overrides:
isUnstablein classPropertyCacheNode.ReceiverCheckNode- Returns:
- true if a stable property assumption failed.
-