diff --git a/src/browser/ScriptManager.zig b/src/browser/ScriptManager.zig index 06e94083..5f916fed 100644 --- a/src/browser/ScriptManager.zig +++ b/src/browser/ScriptManager.zig @@ -218,7 +218,7 @@ pub fn addFromElement(self: *ScriptManager, script_element: *Element.Html.Script .url = remote_url orelse page.url, .mode = blk: { if (source == .@"inline") { - break :blk .normal; + break :blk if (kind == .module) .@"defer" else .normal; } if (element.getAttributeSafe("async") != null) { break :blk .async; diff --git a/src/browser/tests/element/html/script/order.html b/src/browser/tests/element/html/script/order.html new file mode 100644 index 00000000..159e68cc --- /dev/null +++ b/src/browser/tests/element/html/script/order.html @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + diff --git a/src/browser/tests/element/html/script/order.js b/src/browser/tests/element/html/script/order.js new file mode 100644 index 00000000..31e602fc --- /dev/null +++ b/src/browser/tests/element/html/script/order.js @@ -0,0 +1,2 @@ +list += 'a'; +testing.expectEqual('a', list); diff --git a/src/browser/tests/element/html/script/order_async.js b/src/browser/tests/element/html/script/order_async.js new file mode 100644 index 00000000..343b7e69 --- /dev/null +++ b/src/browser/tests/element/html/script/order_async.js @@ -0,0 +1,2 @@ +list += 'f'; +testing.expectEqual('abcdef', list); diff --git a/src/browser/tests/element/html/script/order_defer.js b/src/browser/tests/element/html/script/order_defer.js new file mode 100644 index 00000000..3911b644 --- /dev/null +++ b/src/browser/tests/element/html/script/order_defer.js @@ -0,0 +1,2 @@ +list += 'e'; +testing.expectEqual('abcde', list); diff --git a/src/browser/webapi/event/ErrorEvent.zig b/src/browser/webapi/event/ErrorEvent.zig index 257cf178..08124d7f 100644 --- a/src/browser/webapi/event/ErrorEvent.zig +++ b/src/browser/webapi/event/ErrorEvent.zig @@ -103,7 +103,7 @@ pub const JsApi = struct { pub const filename = bridge.accessor(ErrorEvent.getFilename, null, .{}); pub const lineno = bridge.accessor(ErrorEvent.getLineNumber, null, .{}); pub const colno = bridge.accessor(ErrorEvent.getColumnNumber, null, .{}); - pub const @"error" = bridge.accessor(ErrorEvent.getError, null, .{}); + pub const @"error" = bridge.accessor(ErrorEvent.getError, null, .{ .null_as_undefined = true }); }; const testing = @import("../../../testing.zig");