public class WriteElementNode extends JSTargetableNode
| Modifier and Type | Field and Description |
|---|---|
protected JavaScriptNode |
indexNode |
protected JavaScriptNode |
targetNode |
protected JavaScriptNode |
valueNode |
INTERMEDIATE_VALUE| Modifier | Constructor and Description |
|---|---|
protected |
WriteElementNode(JavaScriptNode targetNode,
JavaScriptNode indexNode,
JavaScriptNode valueNode,
JSContext context,
boolean isStrict,
boolean writeOwn) |
| Modifier and Type | Method and Description |
|---|---|
protected JavaScriptNode |
copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) |
static WriteElementNode |
create(JavaScriptNode targetNode,
JavaScriptNode indexNode,
JavaScriptNode valueNode,
JSContext context,
boolean isStrict) |
static WriteElementNode |
create(JSContext context,
boolean isStrict) |
static WriteElementNode |
create(JSContext context,
boolean isStrict,
boolean writeOwn) |
static WriteElementNode |
createCachedInterop(com.oracle.truffle.api.TruffleLanguage.LanguageReference<JavaScriptLanguage> languageRef) |
protected WriteElementNode |
createMaterialized(JavaScriptNode newTarget,
JavaScriptNode newIndex,
JavaScriptNode newValue) |
Object |
evaluateTarget(com.oracle.truffle.api.frame.VirtualFrame frame) |
Object |
execute(com.oracle.truffle.api.frame.VirtualFrame frame)
Executes this node using the specified context and frame and returns the result value.
|
double |
executeDouble(com.oracle.truffle.api.frame.VirtualFrame frame)
Like
JavaScriptNode.execute(VirtualFrame) except that it tries to convert the result value to a
double. |
int |
executeInt(com.oracle.truffle.api.frame.VirtualFrame frame)
Like
JavaScriptNode.execute(VirtualFrame) except that it tries to convert the result value to an
int. |
Object |
executeWithTarget(com.oracle.truffle.api.frame.VirtualFrame frame,
Object target) |
Object |
executeWithTarget(com.oracle.truffle.api.frame.VirtualFrame frame,
Object target,
Object receiver) |
protected Object |
executeWithTargetAndIndex(com.oracle.truffle.api.frame.VirtualFrame frame,
Object target,
int index,
Object receiver) |
protected Object |
executeWithTargetAndIndex(com.oracle.truffle.api.frame.VirtualFrame frame,
Object target,
Object index,
Object receiver) |
void |
executeWithTargetAndIndexAndValue(Object target,
int index,
Object value) |
void |
executeWithTargetAndIndexAndValue(Object target,
int index,
Object value,
Object receiver) |
void |
executeWithTargetAndIndexAndValue(Object target,
Object index,
Object value) |
void |
executeWithTargetAndIndexAndValue(Object target,
Object index,
Object value,
Object receiver) |
protected double |
executeWithTargetAndIndexDouble(com.oracle.truffle.api.frame.VirtualFrame frame,
Object target,
int index,
Object receiver) |
protected double |
executeWithTargetAndIndexDouble(com.oracle.truffle.api.frame.VirtualFrame frame,
Object target,
Object index,
Object receiver) |
protected int |
executeWithTargetAndIndexInt(com.oracle.truffle.api.frame.VirtualFrame frame,
Object target,
int index,
Object receiver) |
protected int |
executeWithTargetAndIndexInt(com.oracle.truffle.api.frame.VirtualFrame frame,
Object target,
Object index,
Object receiver) |
double |
executeWithTargetDouble(com.oracle.truffle.api.frame.VirtualFrame frame,
Object target,
Object receiver) |
int |
executeWithTargetInt(com.oracle.truffle.api.frame.VirtualFrame frame,
Object target,
Object receiver) |
JSContext |
getContext() |
JavaScriptNode |
getElement() |
JavaScriptNode |
getTarget() |
JavaScriptNode |
getValue() |
boolean |
hasTag(Class<? extends com.oracle.truffle.api.instrumentation.Tag> tag) |
boolean |
isResultAlwaysOfType(Class<?> clazz) |
boolean |
isStrict() |
com.oracle.truffle.api.instrumentation.InstrumentableNode |
materializeInstrumentableNodes(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) |
protected void |
requireObjectCoercible(Object target,
int index) |
protected void |
requireObjectCoercible(Object target,
Object index) |
protected ToArrayIndexNode |
toArrayIndexNode() |
boolean |
writeOwn() |
createWrapper, evaluateReceiver, executeDoubleWithTarget, executeIntWithTargetaddCallTag, addExpressionTag, addRootBodyTag, addStatementTag, cloneUninitialized, cloneUninitialized, copy, executeBoolean, executeLong, executeSafeInteger, executeString, executeVoid, expressionToString, findBlockScopeNode, getSourceSection, hasSourceSection, isInstrumentable, onReplace, removeSourceSection, setSourceSection, setSourceSection, toString, transferSourceSection, transferSourceSectionAddExpressionTag, transferSourceSectionAndTagsaccept, adoptChildren, atomic, atomic, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, insert, insert, isAdoptable, isSafelyReplaceableBy, lookupContextReference, lookupLanguageReference, notifyInserted, replace, replace, reportPolymorphicSpecializeprotected JavaScriptNode targetNode
protected JavaScriptNode indexNode
protected JavaScriptNode valueNode
protected WriteElementNode(JavaScriptNode targetNode, JavaScriptNode indexNode, JavaScriptNode valueNode, JSContext context, boolean isStrict, boolean writeOwn)
public static WriteElementNode create(JSContext context, boolean isStrict)
public static WriteElementNode create(JSContext context, boolean isStrict, boolean writeOwn)
public static WriteElementNode create(JavaScriptNode targetNode, JavaScriptNode indexNode, JavaScriptNode valueNode, JSContext context, boolean isStrict)
protected final ToArrayIndexNode toArrayIndexNode()
protected final void requireObjectCoercible(Object target, int index)
public boolean hasTag(Class<? extends com.oracle.truffle.api.instrumentation.Tag> tag)
hasTag in interface com.oracle.truffle.api.instrumentation.InstrumentableNodehasTag in class JavaScriptNodepublic com.oracle.truffle.api.instrumentation.InstrumentableNode materializeInstrumentableNodes(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
protected WriteElementNode createMaterialized(JavaScriptNode newTarget, JavaScriptNode newIndex, JavaScriptNode newValue)
public Object evaluateTarget(com.oracle.truffle.api.frame.VirtualFrame frame)
evaluateTarget in class JSTargetableNodepublic Object execute(com.oracle.truffle.api.frame.VirtualFrame frame)
JavaScriptNodeexecute in class JavaScriptNodeframe - the frame of the currently executing guest language methodpublic int executeInt(com.oracle.truffle.api.frame.VirtualFrame frame)
throws com.oracle.truffle.api.nodes.UnexpectedResultException
JavaScriptNodeJavaScriptNode.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.executeInt in class JavaScriptNodeframe - the frame of the currently executing guest language methodcom.oracle.truffle.api.nodes.UnexpectedResultException - if a loss-free conversion of the result to int is not
possiblepublic double executeDouble(com.oracle.truffle.api.frame.VirtualFrame frame)
throws com.oracle.truffle.api.nodes.UnexpectedResultException
JavaScriptNodeJavaScriptNode.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.executeDouble in class JavaScriptNodeframe - the frame of the currently executing guest language methodcom.oracle.truffle.api.nodes.UnexpectedResultException - if a loss-free conversion of the result to double is not
possiblepublic Object executeWithTarget(com.oracle.truffle.api.frame.VirtualFrame frame, Object target)
executeWithTarget in class JSTargetableNodepublic Object executeWithTarget(com.oracle.truffle.api.frame.VirtualFrame frame, Object target, Object receiver)
public int executeWithTargetInt(com.oracle.truffle.api.frame.VirtualFrame frame,
Object target,
Object receiver)
throws com.oracle.truffle.api.nodes.UnexpectedResultException
com.oracle.truffle.api.nodes.UnexpectedResultExceptionpublic double executeWithTargetDouble(com.oracle.truffle.api.frame.VirtualFrame frame,
Object target,
Object receiver)
throws com.oracle.truffle.api.nodes.UnexpectedResultException
com.oracle.truffle.api.nodes.UnexpectedResultExceptionprotected Object executeWithTargetAndIndex(com.oracle.truffle.api.frame.VirtualFrame frame, Object target, Object index, Object receiver)
protected Object executeWithTargetAndIndex(com.oracle.truffle.api.frame.VirtualFrame frame, Object target, int index, Object receiver)
protected int executeWithTargetAndIndexInt(com.oracle.truffle.api.frame.VirtualFrame frame,
Object target,
Object index,
Object receiver)
throws com.oracle.truffle.api.nodes.UnexpectedResultException
com.oracle.truffle.api.nodes.UnexpectedResultExceptionprotected int executeWithTargetAndIndexInt(com.oracle.truffle.api.frame.VirtualFrame frame,
Object target,
int index,
Object receiver)
throws com.oracle.truffle.api.nodes.UnexpectedResultException
com.oracle.truffle.api.nodes.UnexpectedResultExceptionprotected double executeWithTargetAndIndexDouble(com.oracle.truffle.api.frame.VirtualFrame frame,
Object target,
Object index,
Object receiver)
throws com.oracle.truffle.api.nodes.UnexpectedResultException
com.oracle.truffle.api.nodes.UnexpectedResultExceptionprotected double executeWithTargetAndIndexDouble(com.oracle.truffle.api.frame.VirtualFrame frame,
Object target,
int index,
Object receiver)
throws com.oracle.truffle.api.nodes.UnexpectedResultException
com.oracle.truffle.api.nodes.UnexpectedResultExceptionpublic final void executeWithTargetAndIndexAndValue(Object target, Object index, Object value)
public final void executeWithTargetAndIndexAndValue(Object target, int index, Object value)
public final void executeWithTargetAndIndexAndValue(Object target, Object index, Object value, Object receiver)
public final void executeWithTargetAndIndexAndValue(Object target, int index, Object value, Object receiver)
public JavaScriptNode getTarget()
getTarget in class JSTargetableNodepublic JavaScriptNode getElement()
public JavaScriptNode getValue()
public JSContext getContext()
public boolean isStrict()
public boolean writeOwn()
protected JavaScriptNode copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
copyUninitialized in class JavaScriptNodepublic boolean isResultAlwaysOfType(Class<?> clazz)
isResultAlwaysOfType in class JavaScriptNodepublic static WriteElementNode createCachedInterop(com.oracle.truffle.api.TruffleLanguage.LanguageReference<JavaScriptLanguage> languageRef)