Merge pull request #1654 from lightpanda-io/dynamic_import_undefined_resource

Handle dynamicModuleCallback being called with undefined/null resourc…
This commit is contained in:
Pierre Tachoire
2026-02-25 11:22:53 +01:00
committed by GitHub

View File

@@ -600,10 +600,19 @@ pub fn dynamicModuleCallback(
.isolate = self.isolate, .isolate = self.isolate,
}; };
const resource = js.String.toSliceZ(.{ .local = &local, .handle = resource_name.? }) catch |err| { const resource = blk: {
const resource_value = js.Value{ .handle = resource_name.?, .local = &local };
if (resource_value.isNullOrUndefined()) {
// will only be null / undefined in extreme cases (e.g. WPT tests)
// where you're
break :blk self.page.base();
}
break :blk js.String.toSliceZ(.{ .local = &local, .handle = resource_name.? }) catch |err| {
log.err(.app, "OOM", .{ .err = err, .src = "dynamicModuleCallback1" }); log.err(.app, "OOM", .{ .err = err, .src = "dynamicModuleCallback1" });
return @constCast((local.rejectPromise("Out of memory") catch return null).handle); return @constCast((local.rejectPromise("Out of memory") catch return null).handle);
}; };
};
const specifier = js.String.toSliceZ(.{ .local = &local, .handle = v8_specifier.? }) catch |err| { const specifier = js.String.toSliceZ(.{ .local = &local, .handle = v8_specifier.? }) catch |err| {
log.err(.app, "OOM", .{ .err = err, .src = "dynamicModuleCallback2" }); log.err(.app, "OOM", .{ .err = err, .src = "dynamicModuleCallback2" });