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 |
arrayElement(Object target,
Number index,
com.oracle.truffle.api.interop.InteropLibrary interop) |
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 |
doJSObject(com.oracle.truffle.api.object.DynamicObject targetObject,
Object key,
IsArrayNode isArrayNode,
com.oracle.truffle.api.profiles.ConditionProfile arrayProfile,
ToArrayIndexNode toArrayIndexNode,
com.oracle.truffle.api.profiles.ConditionProfile arrayIndexProfile,
JSArrayDeleteIndexNode deleteArrayIndexNode,
JSClassProfile jsclassProfile,
JSToPropertyKeyNode toPropertyKeyNode) |
boolean |
doOther(Object target,
Object property,
JSToPropertyKeyNode toPropertyKeyNode) |
protected static boolean |
doSafeInteger(SafeInteger target,
Object property,
JSToPropertyKeyNode toPropertyKeyNode) |
protected boolean |
doString(String target,
Object property,
ToArrayIndexNode toArrayIndexNode) |
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 Object |
foreignObject(Object target,
Object key,
com.oracle.truffle.api.interop.InteropLibrary interop,
ToArrayIndexNode toArrayIndexNode) |
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,
String name,
com.oracle.truffle.api.interop.InteropLibrary interop) |
createWrapper, evaluateReceiver, executeDoubleWithTarget, executeIntWithTarget, executeWithTargetaddCallTag, addExpressionTag, addRootBodyTag, addStatementTag, cloneUninitialized, cloneUninitialized, copy, executeBoolean, executeDouble, executeInt, 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 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 doJSObject(com.oracle.truffle.api.object.DynamicObject targetObject,
Object key,
IsArrayNode isArrayNode,
com.oracle.truffle.api.profiles.ConditionProfile arrayProfile,
ToArrayIndexNode toArrayIndexNode,
com.oracle.truffle.api.profiles.ConditionProfile 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(String target, Object property, ToArrayIndexNode toArrayIndexNode)
protected boolean member(Object target, String name, com.oracle.truffle.api.interop.InteropLibrary interop)
protected boolean arrayElementInt(Object target, int index, com.oracle.truffle.api.interop.InteropLibrary interop)
protected boolean arrayElement(Object target, Number index, com.oracle.truffle.api.interop.InteropLibrary interop)
protected Object foreignObject(Object target, Object key, com.oracle.truffle.api.interop.InteropLibrary interop, ToArrayIndexNode toArrayIndexNode)
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