mirror of
https://github.com/lightpanda-io/browser.git
synced 2025-12-16 16:28:58 +00:00
Fix module evaluation checks
This commit is contained in:
@@ -1295,7 +1295,8 @@ fn _dynamicModuleCallback(self: *Context, specifier: [:0]const u8, referrer: []c
|
|||||||
// as a static import dependency), we need to evaluate it now.
|
// as a static import dependency), we need to evaluate it now.
|
||||||
if (gop.value_ptr.module_promise == null) {
|
if (gop.value_ptr.module_promise == null) {
|
||||||
const mod = gop.value_ptr.module.?.castToModule();
|
const mod = gop.value_ptr.module.?.castToModule();
|
||||||
if (mod.getStatus() == .kEvaluated) {
|
const status = mod.getStatus();
|
||||||
|
if (status == .kEvaluated or status == .kEvaluating) {
|
||||||
// Module was already evaluated (shouldn't normally happen, but handle it).
|
// Module was already evaluated (shouldn't normally happen, but handle it).
|
||||||
// Create a pre-resolved promise with the module namespace.
|
// Create a pre-resolved promise with the module namespace.
|
||||||
const persisted_module_resolver = v8.Persistent(v8.PromiseResolver).init(isolate, v8.PromiseResolver.init(self.v8_context));
|
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
|
|||||||
} else {
|
} else {
|
||||||
// the module was loaded, but not evaluated, we _have_ to evaluate it now
|
// the module was loaded, but not evaluated, we _have_ to evaluate it now
|
||||||
const evaluated = mod.evaluate(self.v8_context) catch {
|
const evaluated = mod.evaluate(self.v8_context) catch {
|
||||||
std.debug.assert(mod.getStatus() == .kErrored);
|
std.debug.assert(status == .kErrored);
|
||||||
const error_msg = v8.String.initUtf8(isolate, "Module evaluation failed");
|
const error_msg = v8.String.initUtf8(isolate, "Module evaluation failed");
|
||||||
_ = resolver.reject(self.v8_context, error_msg.toValue());
|
_ = resolver.reject(self.v8_context, error_msg.toValue());
|
||||||
return promise;
|
return promise;
|
||||||
|
|||||||
Reference in New Issue
Block a user