public abstract class DeletePropertyNode extends JSTargetableNode
delete object[property]).| Modifier and Type | Field and Description |
|---|---|
protected JSContext |
context |
protected JavaScriptNode |
propertyNode |
protected boolean |
strict |
protected JavaScriptNode |
targetNode |
INTERMEDIATE_VALUE| Modifier | Constructor and Description |
|---|---|
protected |
DeletePropertyNode(boolean strict,
JSContext context,
JavaScriptNode targetNode,
JavaScriptNode propertyNode) |
| Modifier and Type | Method and Description |
|---|---|
protected boolean |
arrayElementInt(Object target,
int index,
com.oracle.truffle.api.interop.InteropLibrary interop) |
protected JavaScriptNode |
copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) |
static DeletePropertyNode |
create(boolean strict,
JSContext context) |
static DeletePropertyNode |
create(JavaScriptNode object,
JavaScriptNode property,
boolean strict,
JSContext context) |
static DeletePropertyNode |
createNonStrict(JSContext context) |
protected static boolean |
doBigInt(BigInt target,
Object property,
JSToPropertyKeyNode toPropertyKeyNode) |
protected boolean |
doJSGlobalObject(JSGlobalObject targetObject,
Object key,
JSToPropertyKeyNode toPropertyKeyNode,
com.oracle.truffle.api.object.DynamicObjectLibrary dynamicObjectLib) |
protected boolean |
doJSObject(JSDynamicObject targetObject,
Object key,
com.oracle.truffle.api.nodes.Node node,
IsArrayNode isArrayNode,
com.oracle.truffle.api.profiles.InlinedConditionProfile arrayProfile,
ToArrayIndexNode toArrayIndexNode,
com.oracle.truffle.api.profiles.InlinedConditionProfile arrayIndexProfile,
JSArrayDeleteIndexNode deleteArrayIndexNode,
JSClassProfile jsclassProfile,
JSToPropertyKeyNode toPropertyKeyNode) |
protected boolean |
doJSOrdinaryObject(JSDynamicObject targetObject,
Object key,
JSToPropertyKeyNode toPropertyKeyNode,
com.oracle.truffle.api.object.DynamicObjectLibrary dynamicObjectLib) |
boolean |
doOther(Object target,
Object property,
JSToPropertyKeyNode toPropertyKeyNode) |
protected static boolean |
doSafeInteger(SafeInteger target,
Object property,
JSToPropertyKeyNode toPropertyKeyNode) |
protected boolean |
doString(com.oracle.truffle.api.strings.TruffleString target,
Object property,
ToArrayIndexNode toArrayIndexNode,
com.oracle.truffle.api.strings.TruffleString.EqualNode equalsNode) |
protected static boolean |
doSymbol(Symbol target,
Object property,
JSToPropertyKeyNode toPropertyKeyNode) |
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.
|
abstract boolean |
executeEvaluated(Object objectResult,
Object propertyResult) |
protected boolean |
foreignObject(Object target,
Object key,
com.oracle.truffle.api.interop.InteropLibrary interop,
ToArrayIndexNode toArrayIndexNode,
JSToPropertyKeyNode toPropertyKeyNode) |
Object |
getNodeObject() |
JavaScriptNode |
getTarget() |
boolean |
hasTag(Class<? extends com.oracle.truffle.api.instrumentation.Tag> tag) |
boolean |
isResultAlwaysOfType(Class<?> clazz) |
com.oracle.truffle.api.instrumentation.InstrumentableNode |
materializeInstrumentableNodes(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) |
protected boolean |
member(Object target,
com.oracle.truffle.api.strings.TruffleString name,
com.oracle.truffle.api.interop.InteropLibrary interop) |
createWrapper, evaluateReceiver, executeDoubleWithTarget, executeIntWithTarget, executeWithTargetaddCallTag, addExpressionTag, addRootBodyTag, addStatementTag, cloneUninitialized, cloneUninitialized, copy, executeBoolean, executeDouble, executeInt, executeLong, executeVoid, expressionToString, findBlockScopeNode, getSourceSection, hasSourceSection, isInstrumentable, onReplace, removeSourceSection, setSourceSection, setSourceSection, toString, transferSourceSection, transferSourceSectionAddExpressionTag, transferSourceSectionAndTagsgetLanguage, getRealm, hasOverloadedOperatorsaccept, adoptChildren, atomic, atomic, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, insert, insert, isAdoptable, isSafelyReplaceableBy, notifyInserted, replace, replace, reportPolymorphicSpecializeprotected final boolean strict
protected final JSContext context
protected JavaScriptNode targetNode
protected JavaScriptNode propertyNode
protected DeletePropertyNode(boolean strict,
JSContext context,
JavaScriptNode targetNode,
JavaScriptNode propertyNode)
public static DeletePropertyNode create(boolean strict, JSContext context)
public static DeletePropertyNode createNonStrict(JSContext context)
public static DeletePropertyNode create(JavaScriptNode object, JavaScriptNode property, boolean strict, JSContext context)
public boolean hasTag(Class<? extends com.oracle.truffle.api.instrumentation.Tag> tag)
hasTag in interface com.oracle.truffle.api.instrumentation.InstrumentableNodehasTag in class JavaScriptNodepublic Object getNodeObject()
public com.oracle.truffle.api.instrumentation.InstrumentableNode materializeInstrumentableNodes(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
public final JavaScriptNode getTarget()
getTarget in class JSTargetableNodepublic final Object execute(com.oracle.truffle.api.frame.VirtualFrame frame)
JavaScriptNodeexecute in class JavaScriptNodeframe - the frame of the currently executing guest language methodpublic final Object evaluateTarget(com.oracle.truffle.api.frame.VirtualFrame frame)
evaluateTarget in class JSTargetableNodepublic abstract boolean executeEvaluated(Object objectResult, Object propertyResult)
protected final boolean doJSOrdinaryObject(JSDynamicObject targetObject, Object key, JSToPropertyKeyNode toPropertyKeyNode, com.oracle.truffle.api.object.DynamicObjectLibrary dynamicObjectLib)
protected final boolean doJSGlobalObject(JSGlobalObject targetObject, Object key, JSToPropertyKeyNode toPropertyKeyNode, com.oracle.truffle.api.object.DynamicObjectLibrary dynamicObjectLib)
protected final boolean doJSObject(JSDynamicObject targetObject, Object key, com.oracle.truffle.api.nodes.Node node, IsArrayNode isArrayNode, com.oracle.truffle.api.profiles.InlinedConditionProfile arrayProfile, ToArrayIndexNode toArrayIndexNode, com.oracle.truffle.api.profiles.InlinedConditionProfile arrayIndexProfile, JSArrayDeleteIndexNode deleteArrayIndexNode, JSClassProfile jsclassProfile, JSToPropertyKeyNode toPropertyKeyNode)
protected static boolean doSymbol(Symbol target, Object property, JSToPropertyKeyNode toPropertyKeyNode)
protected static boolean doSafeInteger(SafeInteger target, Object property, JSToPropertyKeyNode toPropertyKeyNode)
protected static boolean doBigInt(BigInt target, Object property, JSToPropertyKeyNode toPropertyKeyNode)
protected boolean doString(com.oracle.truffle.api.strings.TruffleString target,
Object property,
ToArrayIndexNode toArrayIndexNode,
com.oracle.truffle.api.strings.TruffleString.EqualNode equalsNode)
protected boolean member(Object target, com.oracle.truffle.api.strings.TruffleString name, com.oracle.truffle.api.interop.InteropLibrary interop)
protected boolean arrayElementInt(Object target, int index, com.oracle.truffle.api.interop.InteropLibrary interop)
protected boolean foreignObject(Object target, Object key, com.oracle.truffle.api.interop.InteropLibrary interop, ToArrayIndexNode toArrayIndexNode, JSToPropertyKeyNode toPropertyKeyNode)
public boolean doOther(Object target, Object property, JSToPropertyKeyNode toPropertyKeyNode)
protected JavaScriptNode copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
copyUninitialized in class JavaScriptNodepublic boolean isResultAlwaysOfType(Class<?> clazz)
isResultAlwaysOfType in class JavaScriptNode