Class WriteElementNode
java.lang.Object
com.oracle.truffle.api.nodes.Node
com.oracle.truffle.js.nodes.JavaScriptBaseNode
com.oracle.truffle.js.nodes.JavaScriptNode
com.oracle.truffle.js.nodes.access.JSTargetableNode
com.oracle.truffle.js.nodes.access.WriteElementNode
- All Implemented Interfaces:
com.oracle.truffle.api.instrumentation.InstrumentableNode,com.oracle.truffle.api.nodes.NodeInterface,Cloneable
- Direct Known Subclasses:
CompoundWriteElementNode
-
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.ChildrenNested classes/interfaces inherited from interface com.oracle.truffle.api.instrumentation.InstrumentableNode
com.oracle.truffle.api.instrumentation.InstrumentableNode.WrapperNode -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected JavaScriptNodeprotected JavaScriptNodeprotected JavaScriptNodeFields inherited from class com.oracle.truffle.js.nodes.JavaScriptNode
INTERMEDIATE_VALUE -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedWriteElementNode(JavaScriptNode targetNode, JavaScriptNode indexNode, JavaScriptNode valueNode, JSContext context, boolean isStrict, boolean writeOwn) -
Method Summary
Modifier and TypeMethodDescriptionprotected JavaScriptNodecopyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) static WriteElementNodecreate(JavaScriptNode targetNode, JavaScriptNode indexNode, JavaScriptNode valueNode, JSContext context, boolean isStrict) static WriteElementNodestatic WriteElementNodestatic WriteElementNodeprotected WriteElementNodecreateMaterialized(JavaScriptNode newTarget, JavaScriptNode newIndex, JavaScriptNode newValue) evaluateTarget(com.oracle.truffle.api.frame.VirtualFrame frame) execute(com.oracle.truffle.api.frame.VirtualFrame frame) Executes this node using the specified context and frame and returns the result value.doubleexecuteDouble(com.oracle.truffle.api.frame.VirtualFrame frame) LikeJavaScriptNode.execute(VirtualFrame)except that it tries to convert the result value to a double.intexecuteInt(com.oracle.truffle.api.frame.VirtualFrame frame) LikeJavaScriptNode.execute(VirtualFrame)except that it tries to convert the result value to an int.executeWithTarget(com.oracle.truffle.api.frame.VirtualFrame frame, Object target) executeWithTarget(com.oracle.truffle.api.frame.VirtualFrame frame, Object target, Object receiver) protected ObjectexecuteWithTargetAndIndex(com.oracle.truffle.api.frame.VirtualFrame frame, Object target, int index, Object receiver) protected ObjectexecuteWithTargetAndIndex(com.oracle.truffle.api.frame.VirtualFrame frame, Object target, Object index, Object receiver) final voidexecuteWithTargetAndIndexAndValue(Object target, int index, Object value) final voidexecuteWithTargetAndIndexAndValue(Object target, int index, Object value, Object receiver) final voidexecuteWithTargetAndIndexAndValue(Object target, long index, Object value) final voidexecuteWithTargetAndIndexAndValue(Object target, long index, Object value, Object receiver) final voidexecuteWithTargetAndIndexAndValue(Object target, Object index, Object value) final voidexecuteWithTargetAndIndexAndValue(Object target, Object index, Object value, Object receiver) protected doubleexecuteWithTargetAndIndexDouble(com.oracle.truffle.api.frame.VirtualFrame frame, Object target, int index, Object receiver) protected doubleexecuteWithTargetAndIndexDouble(com.oracle.truffle.api.frame.VirtualFrame frame, Object target, Object index, Object receiver) protected intexecuteWithTargetAndIndexInt(com.oracle.truffle.api.frame.VirtualFrame frame, Object target, int index, Object receiver) protected intexecuteWithTargetAndIndexInt(com.oracle.truffle.api.frame.VirtualFrame frame, Object target, Object index, Object receiver) doubleexecuteWithTargetDouble(com.oracle.truffle.api.frame.VirtualFrame frame, Object target, Object receiver) intexecuteWithTargetInt(com.oracle.truffle.api.frame.VirtualFrame frame, Object target, Object receiver) getValue()booleanbooleanisResultAlwaysOfType(Class<?> clazz) booleanisStrict()com.oracle.truffle.api.instrumentation.InstrumentableNodematerializeInstrumentableNodes(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) booleanwriteOwn()Methods inherited from class com.oracle.truffle.js.nodes.access.JSTargetableNode
createWrapper, evaluateReceiver, executeDoubleWithTarget, executeIntWithTarget, expressionToStringMethods inherited from class com.oracle.truffle.js.nodes.JavaScriptNode
addCallTag, addExpressionTag, addRootBodyTag, addStatementTag, cloneUninitialized, cloneUninitialized, copy, executeBoolean, executeVoid, findBlockScopeNode, getSourceSection, hasSourceSection, isInstrumentable, onReplace, setSourceSection, setSourceSection, toString, transferSourceSection, transferSourceSectionAddExpressionTag, transferSourceSectionAndTagsMethods inherited from class com.oracle.truffle.js.nodes.JavaScriptBaseNode
getJSContext, getLanguage, getLanguageOptions, getRealm, hasOverloadedOperators, reportLoopCount, reportLoopCountMethods inherited from class com.oracle.truffle.api.nodes.Node
accept, adoptChildren, atomic, atomic, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, insert, insert, isAdoptable, isSafelyReplaceableBy, notifyInserted, replace, replace, reportPolymorphicSpecialize, reportReplaceMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface com.oracle.truffle.api.instrumentation.InstrumentableNode
createProbe, findNearestNodeAt, findNearestNodeAt, findProbe, getNodeObject
-
Field Details
-
targetNode
-
indexNode
-
valueNode
-
-
Constructor Details
-
WriteElementNode
protected WriteElementNode(JavaScriptNode targetNode, JavaScriptNode indexNode, JavaScriptNode valueNode, JSContext context, boolean isStrict, boolean writeOwn)
-
-
Method Details
-
create
-
create
-
create
public static WriteElementNode create(JavaScriptNode targetNode, JavaScriptNode indexNode, JavaScriptNode valueNode, JSContext context, boolean isStrict) -
hasTag
- Specified by:
hasTagin interfacecom.oracle.truffle.api.instrumentation.InstrumentableNode- Overrides:
hasTagin classJavaScriptNode
-
materializeInstrumentableNodes
-
createMaterialized
protected WriteElementNode createMaterialized(JavaScriptNode newTarget, JavaScriptNode newIndex, JavaScriptNode newValue) -
evaluateTarget
- Overrides:
evaluateTargetin classJSTargetableNode
-
execute
Description copied from class:JavaScriptNodeExecutes this node using the specified context and frame and returns the result value.- Specified by:
executein classJavaScriptNode- Parameters:
frame- the frame of the currently executing guest language method- Returns:
- the value of the execution
-
executeInt
public int executeInt(com.oracle.truffle.api.frame.VirtualFrame frame) throws com.oracle.truffle.api.nodes.UnexpectedResultException Description copied from class:JavaScriptNodeLikeJavaScriptNode.execute(VirtualFrame)except that it tries to convert the result value to an int. A node can override this method if it has a better way to producing a value of type int.- Overrides:
executeIntin classJavaScriptNode- Parameters:
frame- the frame of the currently executing guest language method- Returns:
- the value of the execution as an int
- Throws:
com.oracle.truffle.api.nodes.UnexpectedResultException- if a loss-free conversion of the result to int is not possible
-
executeDouble
public double executeDouble(com.oracle.truffle.api.frame.VirtualFrame frame) throws com.oracle.truffle.api.nodes.UnexpectedResultException Description copied from class:JavaScriptNodeLikeJavaScriptNode.execute(VirtualFrame)except that it tries to convert the result value to a double. A node can override this method if it has a better way to producing a value of type double.- Overrides:
executeDoublein classJavaScriptNode- Parameters:
frame- the frame of the currently executing guest language method- Returns:
- the value of the execution as a double
- Throws:
com.oracle.truffle.api.nodes.UnexpectedResultException- if a loss-free conversion of the result to double is not possible
-
executeWithTarget
- Specified by:
executeWithTargetin classJSTargetableNode
-
executeWithTarget
-
executeWithTargetInt
-
executeWithTargetDouble
-
executeWithTargetAndIndex
-
executeWithTargetAndIndex
-
executeWithTargetAndIndexInt
-
executeWithTargetAndIndexInt
-
executeWithTargetAndIndexDouble
-
executeWithTargetAndIndexDouble
-
executeWithTargetAndIndexAndValue
-
executeWithTargetAndIndexAndValue
-
executeWithTargetAndIndexAndValue
-
executeWithTargetAndIndexAndValue
-
executeWithTargetAndIndexAndValue
-
executeWithTargetAndIndexAndValue
-
getTarget
- Overrides:
getTargetin classJSTargetableNode
-
getElement
-
getValue
-
getContext
-
isStrict
public boolean isStrict() -
writeOwn
public boolean writeOwn() -
copyUninitialized
protected JavaScriptNode copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) - Overrides:
copyUninitializedin classJavaScriptNode
-
isResultAlwaysOfType
- Overrides:
isResultAlwaysOfTypein classJavaScriptNode
-
createCachedInterop
-