Class JSMaterializedInvokeTargetableNode

java.lang.Object
com.oracle.truffle.api.nodes.Node
All Implemented Interfaces:
com.oracle.truffle.api.instrumentation.InstrumentableNode, com.oracle.truffle.api.nodes.NodeInterface, Cloneable

public abstract class JSMaterializedInvokeTargetableNode extends JSTargetableNode
Materialized nodes used by MaterializedInvokeNode to report JS function values to the instrumentation framework. By default, InvokeNode evaluates its target node in two separate steps: first, the node is evaluated to retrieve the target value. Then, the same node is evaluated via executeWithTarget() to retrieve the JS function instance to be called. The second evaluation via executeWithTarget() causes a read event (e.g., property read) that will be detected by the instrumentation framework. Since the target is already evaluated, such read event will however miss its target value, resulting in a wrong series of instrumentation events. The materialized nodes in this class internally re-evaluate the target value provided via executeWithTarget() using the internal EchoTargetValueNode . In this way, the instrumentation framework is able to trace target and report it correctly as an onInput value.
  • Constructor Details

    • JSMaterializedInvokeTargetableNode

      public JSMaterializedInvokeTargetableNode()
  • Method Details