Class DeletePropertyNode

All Implemented Interfaces:
com.oracle.truffle.api.instrumentation.InstrumentableNode, com.oracle.truffle.api.nodes.NodeInterface, Cloneable

public abstract class DeletePropertyNode extends JSTargetableNode
11.4.1 The delete Operator (delete object[property]).
  • Field Details

    • strict

      protected final boolean strict
    • targetNode

      protected JavaScriptNode targetNode
    • propertyNode

      protected JavaScriptNode propertyNode
  • Constructor Details

  • Method Details

    • create

      public static DeletePropertyNode create(boolean strict)
    • create

      public static DeletePropertyNode create(JavaScriptNode object, JavaScriptNode property, boolean strict)
    • hasTag

      public boolean hasTag(Class<? extends com.oracle.truffle.api.instrumentation.Tag> tag)
      Specified by:
      hasTag in interface com.oracle.truffle.api.instrumentation.InstrumentableNode
      Overrides:
      hasTag in class JavaScriptNode
    • getNodeObject

      public Object getNodeObject()
    • materializeInstrumentableNodes

      public com.oracle.truffle.api.instrumentation.InstrumentableNode materializeInstrumentableNodes(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
    • getTarget

      public final JavaScriptNode getTarget()
      Overrides:
      getTarget in class JSTargetableNode
    • execute

      public final Object execute(com.oracle.truffle.api.frame.VirtualFrame frame)
      Description copied from class: JavaScriptNode
      Executes this node using the specified context and frame and returns the result value.
      Specified by:
      execute in class JavaScriptNode
      Parameters:
      frame - the frame of the currently executing guest language method
      Returns:
      the value of the execution
    • evaluateTarget

      public final Object evaluateTarget(com.oracle.truffle.api.frame.VirtualFrame frame)
      Overrides:
      evaluateTarget in class JSTargetableNode
    • executeEvaluated

      public abstract boolean executeEvaluated(Object objectResult, Object propertyResult)
    • doJSOrdinaryObject

      protected final boolean doJSOrdinaryObject(JSDynamicObject targetObject, Object key, JSToPropertyKeyNode toPropertyKeyNode, com.oracle.truffle.api.object.DynamicObjectLibrary dynamicObjectLib)
    • doJSGlobalObject

      protected final boolean doJSGlobalObject(JSGlobalObject targetObject, Object key, JSToPropertyKeyNode toPropertyKeyNode, com.oracle.truffle.api.object.DynamicObjectLibrary dynamicObjectLib)
    • doJSObject

      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)
    • doSymbol

      protected static boolean doSymbol(Symbol target, Object property, JSToPropertyKeyNode toPropertyKeyNode)
    • doSafeInteger

      protected static boolean doSafeInteger(SafeInteger target, Object property, JSToPropertyKeyNode toPropertyKeyNode)
    • doBigInt

      protected static boolean doBigInt(BigInt target, Object property, JSToPropertyKeyNode toPropertyKeyNode)
    • doString

      protected boolean doString(com.oracle.truffle.api.strings.TruffleString target, Object property, ToArrayIndexNode toArrayIndexNode, com.oracle.truffle.api.strings.TruffleString.EqualNode equalsNode)
    • member

      protected boolean member(Object target, com.oracle.truffle.api.strings.TruffleString name, com.oracle.truffle.api.interop.InteropLibrary interop)
    • arrayElementInt

      protected boolean arrayElementInt(Object target, int index, com.oracle.truffle.api.interop.InteropLibrary interop)
    • foreignObject

      protected boolean foreignObject(Object target, Object key, com.oracle.truffle.api.interop.InteropLibrary interop, ToArrayIndexNode toArrayIndexNode, JSToPropertyKeyNode toPropertyKeyNode)
    • doOther

      public boolean doOther(Object target, Object property, JSToPropertyKeyNode toPropertyKeyNode)
    • copyUninitialized

      protected JavaScriptNode copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
      Overrides:
      copyUninitialized in class JavaScriptNode
    • isResultAlwaysOfType

      public boolean isResultAlwaysOfType(Class<?> clazz)
      Overrides:
      isResultAlwaysOfType in class JavaScriptNode