Skip to content

Commit

Permalink
Load resumption call target when materializing async/generator functi…
Browse files Browse the repository at this point in the history
…on expressions.
  • Loading branch information
woess committed May 9, 2023
1 parent 65817f2 commit 41510ec
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@
import com.oracle.truffle.api.frame.Frame;
import com.oracle.truffle.api.frame.MaterializedFrame;
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.instrumentation.InstrumentableNode;
import com.oracle.truffle.api.instrumentation.Tag;
import com.oracle.truffle.api.nodes.DirectCallNode;
import com.oracle.truffle.api.source.SourceSection;
Expand Down Expand Up @@ -284,4 +285,12 @@ protected JavaScriptNode copyUninitialized(Set<Class<? extends Tag>> materialize
resumptionRootNode);
}

@Override
public InstrumentableNode materializeInstrumentableNodes(Set<Class<? extends Tag>> materializedTags) {
if (!materializedTags.isEmpty()) {
// ensure resumption call target is visible to instrumentation.
resumptionRootNode.getCallTarget();
}
return this;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
import com.oracle.truffle.api.frame.Frame;
import com.oracle.truffle.api.frame.MaterializedFrame;
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.instrumentation.InstrumentableNode;
import com.oracle.truffle.api.instrumentation.Tag;
import com.oracle.truffle.api.source.SourceSection;
import com.oracle.truffle.api.strings.TruffleString;
Expand Down Expand Up @@ -300,4 +301,13 @@ protected JavaScriptNode copyUninitialized(Set<Class<? extends Tag>> materialize
cloneUninitialized(writeAsyncContext, materializedTags),
resumptionRootNode);
}

@Override
public InstrumentableNode materializeInstrumentableNodes(Set<Class<? extends Tag>> materializedTags) {
if (!materializedTags.isEmpty()) {
// ensure resumption call target is visible to instrumentation.
resumptionRootNode.getCallTarget();
}
return this;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
import java.util.Set;

import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.instrumentation.InstrumentableNode;
import com.oracle.truffle.api.instrumentation.Tag;
import com.oracle.truffle.api.profiles.BranchProfile;
import com.oracle.truffle.api.profiles.ConditionProfile;
Expand Down Expand Up @@ -217,4 +218,13 @@ private void generatorStart(VirtualFrame frame, JSDynamicObject generatorObject)
protected JavaScriptNode copyUninitialized(Set<Class<? extends Tag>> materializedTags) {
return new GeneratorBodyNode(context, generatorRootNode);
}

@Override
public InstrumentableNode materializeInstrumentableNodes(Set<Class<? extends Tag>> materializedTags) {
if (!materializedTags.isEmpty()) {
// ensure resumption call target is visible to instrumentation.
generatorRootNode.getCallTarget();
}
return this;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
import com.oracle.truffle.api.exception.AbstractTruffleException;
import com.oracle.truffle.api.frame.MaterializedFrame;
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.instrumentation.InstrumentableNode;
import com.oracle.truffle.api.instrumentation.Tag;
import com.oracle.truffle.api.nodes.DirectCallNode;
import com.oracle.truffle.api.source.SourceSection;
Expand Down Expand Up @@ -199,4 +200,12 @@ protected JavaScriptNode copyUninitialized(Set<Class<? extends Tag>> materialize
resumptionRootNode);
}

@Override
public InstrumentableNode materializeInstrumentableNodes(Set<Class<? extends Tag>> materializedTags) {
if (!materializedTags.isEmpty()) {
// ensure resumption call target is visible to instrumentation.
resumptionRootNode.getCallTarget();
}
return this;
}
}

0 comments on commit 41510ec

Please sign in to comment.