|
81 | 81 | import com.oracle.truffle.js.runtime.builtins.JSPromise; |
82 | 82 | import com.oracle.truffle.js.runtime.builtins.JSPromiseObject; |
83 | 83 | import com.oracle.truffle.js.runtime.objects.AbstractModuleRecord; |
84 | | -import com.oracle.truffle.js.runtime.objects.CyclicModuleRecord; |
85 | 84 | import com.oracle.truffle.js.runtime.objects.JSDynamicObject; |
86 | 85 | import com.oracle.truffle.js.runtime.objects.JSObject; |
87 | 86 | import com.oracle.truffle.js.runtime.objects.PromiseCapabilityRecord; |
@@ -381,18 +380,9 @@ protected Object executeInRealm(VirtualFrame frame) { |
381 | 380 | // If link is an abrupt completion, reject the promise from import(). |
382 | 381 | moduleRecord.link(realm); |
383 | 382 |
|
384 | | - // Evaluate() should always return a promise. |
385 | | - // Yet, if top-level-await is disabled, returns/throws the result instead. |
386 | 383 | JSPromiseObject evaluatePromise = moduleRecord.evaluate(realm); |
387 | | - if (context.isOptionTopLevelAwait() || !(moduleRecord instanceof CyclicModuleRecord cyclicModuleRecord)) { |
388 | | - JSFunctionObject onFulfilled = createFulfilledClosure(context, realm, captures); |
389 | | - promiseThenNode.execute(evaluatePromise, onFulfilled, onRejected); |
390 | | - } else { |
391 | | - // Rethrow any previous execution errors. |
392 | | - cyclicModuleRecord.getExecutionResultOrThrow(); |
393 | | - var namespace = moduleRecord.getModuleNamespace(); |
394 | | - callPromiseResolve.executeCall(JSArguments.createOneArg(Undefined.instance, importPromiseCapability.getResolve(), namespace)); |
395 | | - } |
| 384 | + JSFunctionObject onFulfilled = createFulfilledClosure(context, realm, captures); |
| 385 | + promiseThenNode.execute(evaluatePromise, onFulfilled, onRejected); |
396 | 386 | } catch (AbstractTruffleException ex) { |
397 | 387 | rejectPromise(importPromiseCapability, ex); |
398 | 388 | } |
|
0 commit comments