Class HasPropertyCacheNode
java.lang.Object
com.oracle.truffle.api.nodes.Node
com.oracle.truffle.js.nodes.JavaScriptBaseNode
com.oracle.truffle.js.nodes.access.PropertyCacheNode<HasPropertyCacheNode.HasCacheNode>
com.oracle.truffle.js.nodes.access.HasPropertyCacheNode
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classFor use when a property is undefined.static final classstatic final classstatic classstatic final classstatic final classstatic classstatic final classstatic final classstatic 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
FieldsFields inherited from class com.oracle.truffle.js.nodes.access.PropertyCacheNode
context, key -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedHasPropertyCacheNode(Object key, JSContext context, boolean hasOwnProperty) -
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 HasPropertyCacheNodestatic HasPropertyCacheNodeprotected HasPropertyCacheNode.HasCacheNodecreateCachedPropertyNode(com.oracle.truffle.api.object.Property property, Object thisObj, JSDynamicObject proto, int depth, Object value, HasPropertyCacheNode.HasCacheNode currentHead) Make a cache for a JSObject with this property map and requested property.protected HasPropertyCacheNode.HasCacheNodecreateCombinedIcPropertyNode(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 HasPropertyCacheNode.HasCacheNodeMake a generic-case node, for when polymorphism becomes too high.protected HasPropertyCacheNode.HasCacheNodecreateJavaPropertyNodeMaybe(Object thisObj, JSDynamicObject proto, int depth) protected HasPropertyCacheNode.HasCacheNodeprotected HasPropertyCacheNode.HasCacheNodecreateUndefinedPropertyNode(Object thisObj, Object store, JSDynamicObject proto, int depth, Object value) protected HasPropertyCacheNode.HasCacheNodebooleanhasProperty(Object thisObj) protected booleanisGlobal()protected booleanprotected booleanprotected 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
-
cacheNode
-
-
Constructor Details
-
HasPropertyCacheNode
-
-
Method Details
-
create
-
create
-
hasProperty
-
getCacheNode
- Specified by:
getCacheNodein classPropertyCacheNode<HasPropertyCacheNode.HasCacheNode>
-
setCacheNode
- Specified by:
setCacheNodein classPropertyCacheNode<HasPropertyCacheNode.HasCacheNode>
-
createCachedPropertyNode
protected HasPropertyCacheNode.HasCacheNode createCachedPropertyNode(com.oracle.truffle.api.object.Property property, Object thisObj, JSDynamicObject proto, int depth, Object value, HasPropertyCacheNode.HasCacheNode currentHead) Make a cache for a JSObject with this property map and requested property.- Specified by:
createCachedPropertyNodein classPropertyCacheNode<HasPropertyCacheNode.HasCacheNode>- Parameters:
property- The particular entry of the property being accessed.
-
createUndefinedPropertyNode
protected HasPropertyCacheNode.HasCacheNode createUndefinedPropertyNode(Object thisObj, Object store, JSDynamicObject proto, int depth, Object value) - Specified by:
createUndefinedPropertyNodein classPropertyCacheNode<HasPropertyCacheNode.HasCacheNode>
-
createJavaPropertyNodeMaybe
protected HasPropertyCacheNode.HasCacheNode createJavaPropertyNodeMaybe(Object thisObj, JSDynamicObject proto, int depth) - Specified by:
createJavaPropertyNodeMaybein classPropertyCacheNode<HasPropertyCacheNode.HasCacheNode>
-
createGenericPropertyNode
Make a generic-case node, for when polymorphism becomes too high.- Specified by:
createGenericPropertyNodein classPropertyCacheNode<HasPropertyCacheNode.HasCacheNode>
-
isPropertyAssumptionCheckEnabled
protected boolean isPropertyAssumptionCheckEnabled()- Specified by:
isPropertyAssumptionCheckEnabledin classPropertyCacheNode<HasPropertyCacheNode.HasCacheNode>
-
setPropertyAssumptionCheckEnabled
protected void setPropertyAssumptionCheckEnabled(boolean value) - Specified by:
setPropertyAssumptionCheckEnabledin classPropertyCacheNode<HasPropertyCacheNode.HasCacheNode>
-
isGlobal
protected boolean isGlobal()- Specified by:
isGlobalin classPropertyCacheNode<HasPropertyCacheNode.HasCacheNode>
-
isOwnProperty
protected boolean isOwnProperty()- Specified by:
isOwnPropertyin classPropertyCacheNode<HasPropertyCacheNode.HasCacheNode>
-
createTruffleObjectPropertyNode
- Specified by:
createTruffleObjectPropertyNodein classPropertyCacheNode<HasPropertyCacheNode.HasCacheNode>
-
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<HasPropertyCacheNode.HasCacheNode>
-
createCombinedIcPropertyNode
protected HasPropertyCacheNode.HasCacheNode 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<HasPropertyCacheNode.HasCacheNode>
-