Skip to content

Commit edf6eaf

Browse files
woesselkorchi
authored andcommitted
[GR-58687] Fix missing return value conversion in Polyglot.eval[File].
(cherry picked from commit 9fbb93a)
1 parent f79e337 commit edf6eaf

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

graal-js/src/com.oracle.truffle.js/src/com/oracle/truffle/js/builtins/PolyglotBuiltins.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -253,17 +253,19 @@ protected Object evalCachedLanguage(TruffleString language, TruffleString source
253253
@Cached TruffleString.EqualNode strEq,
254254
@Cached @Shared TruffleString.ToJavaStringNode toJavaStringNode,
255255
@Cached("getLanguageIdAndMimeType(toJavaStringNode, language)") Pair<String, String> languagePair,
256-
@Cached @Shared IndirectCallNode callNode) {
257-
return callNode.call(evalStringIntl(source, languagePair.getFirst(), languagePair.getSecond()));
256+
@Cached @Shared IndirectCallNode callNode,
257+
@Cached @Shared ImportValueNode importValueNode) {
258+
return importValueNode.executeWithTarget(callNode.call(evalStringIntl(source, languagePair.getFirst(), languagePair.getSecond())));
258259
}
259260

260261
@Specialization(replaces = "evalCachedLanguage")
261262
@TruffleBoundary
262263
protected Object evalString(TruffleString language, TruffleString source,
263264
@Cached @Shared TruffleString.ToJavaStringNode toJavaStringNode,
264-
@Cached @Shared IndirectCallNode callNode) {
265+
@Cached @Shared IndirectCallNode callNode,
266+
@Cached @Shared ImportValueNode importValueNode) {
265267
Pair<String, String> pair = getLanguageIdAndMimeType(toJavaStringNode, language);
266-
return callNode.call(evalStringIntl(source, pair.getFirst(), pair.getSecond()));
268+
return importValueNode.executeWithTarget(callNode.call(evalStringIntl(source, pair.getFirst(), pair.getSecond())));
267269
}
268270

269271
private CallTarget evalStringIntl(TruffleString sourceText, String languageId, String mimeType) {
@@ -300,17 +302,19 @@ protected Object evalFileCachedLanguage(TruffleString language, TruffleString fi
300302
@Cached TruffleString.EqualNode strEq,
301303
@Cached @Shared TruffleString.ToJavaStringNode toJavaStringNode,
302304
@Cached("getLanguageIdAndMimeType(toJavaStringNode, language)") Pair<String, String> languagePair,
303-
@Cached @Shared IndirectCallNode callNode) {
304-
return callNode.call(evalFileIntl(file, languagePair.getFirst(), languagePair.getSecond()));
305+
@Cached @Shared IndirectCallNode callNode,
306+
@Cached @Shared ImportValueNode importValueNode) {
307+
return importValueNode.executeWithTarget(callNode.call(evalFileIntl(file, languagePair.getFirst(), languagePair.getSecond())));
305308
}
306309

307310
@Specialization(replaces = "evalFileCachedLanguage")
308311
@TruffleBoundary
309312
protected Object evalFileString(TruffleString language, TruffleString file,
310313
@Cached @Shared TruffleString.ToJavaStringNode toJavaStringNode,
311-
@Cached @Shared IndirectCallNode callNode) {
314+
@Cached @Shared IndirectCallNode callNode,
315+
@Cached @Shared ImportValueNode importValueNode) {
312316
Pair<String, String> pair = getLanguageIdAndMimeType(toJavaStringNode, language);
313-
return callNode.call(evalFileIntl(file, pair.getFirst(), pair.getSecond()));
317+
return importValueNode.executeWithTarget(callNode.call(evalFileIntl(file, pair.getFirst(), pair.getSecond())));
314318
}
315319

316320
private CallTarget evalFileIntl(TruffleString fileName, String languageId, String mimeType) {

0 commit comments

Comments
 (0)