Skip to content

Commit 9d6bc5b

Browse files
committed
Fix module evaluation checks
1 parent f058cf0 commit 9d6bc5b

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

src/browser/js/Context.zig

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1295,7 +1295,8 @@ fn _dynamicModuleCallback(self: *Context, specifier: [:0]const u8, referrer: []c
12951295
// as a static import dependency), we need to evaluate it now.
12961296
if (gop.value_ptr.module_promise == null) {
12971297
const mod = gop.value_ptr.module.?.castToModule();
1298-
if (mod.getStatus() == .kEvaluated) {
1298+
const status = mod.getStatus();
1299+
if (status == .kEvaluated or status == .kEvaluating) {
12991300
// Module was already evaluated (shouldn't normally happen, but handle it).
13001301
// Create a pre-resolved promise with the module namespace.
13011302
const persisted_module_resolver = v8.Persistent(v8.PromiseResolver).init(isolate, v8.PromiseResolver.init(self.v8_context));
@@ -1306,7 +1307,7 @@ fn _dynamicModuleCallback(self: *Context, specifier: [:0]const u8, referrer: []c
13061307
} else {
13071308
// the module was loaded, but not evaluated, we _have_ to evaluate it now
13081309
const evaluated = mod.evaluate(self.v8_context) catch {
1309-
std.debug.assert(mod.getStatus() == .kErrored);
1310+
std.debug.assert(status == .kErrored);
13101311
const error_msg = v8.String.initUtf8(isolate, "Module evaluation failed");
13111312
_ = resolver.reject(self.v8_context, error_msg.toValue());
13121313
return promise;

0 commit comments

Comments
 (0)