diff --git a/src/browser/ScriptManager.zig b/src/browser/ScriptManager.zig index c3af725d..f06fc1f2 100644 --- a/src/browser/ScriptManager.zig +++ b/src/browser/ScriptManager.zig @@ -170,8 +170,8 @@ pub fn addFromElement(self: *ScriptManager, element: *parser.Element) !void { .element = element, .source = source, .url = remote_url orelse page.url.raw, - .is_defer = try parser.elementGetAttribute(element, "defer") != null, - .is_async = try parser.elementGetAttribute(element, "async") != null, + .is_defer = if (remote_url == null) false else try parser.elementGetAttribute(element, "defer") != null, + .is_async = if (remote_url == null) false else try parser.elementGetAttribute(element, "async") != null, }; if (source == .@"inline" and self.scripts.first == null) { diff --git a/src/browser/html/elements.zig b/src/browser/html/elements.zig index c9494578..a3f667df 100644 --- a/src/browser/html/elements.zig +++ b/src/browser/html/elements.zig @@ -1480,6 +1480,10 @@ test "Browser.HTML.HTMLStyleElement" { }, .{}); } +test "Browser: HTML.HTMLScriptElement" { + try testing.htmlRunner("html/script/inline_defer.html"); +} + const Check = struct { input: []const u8, expected: ?[]const u8 = null, // Needed when input != expected diff --git a/src/tests/html/script/inline_defer.html b/src/tests/html/script/inline_defer.html new file mode 100644 index 00000000..c69c775d --- /dev/null +++ b/src/tests/html/script/inline_defer.html @@ -0,0 +1,27 @@ + + + + + + + + + + + diff --git a/src/tests/html/script/inline_defer.js b/src/tests/html/script/inline_defer.js new file mode 100644 index 00000000..1e0ee1a4 --- /dev/null +++ b/src/tests/html/script/inline_defer.js @@ -0,0 +1 @@ +dyn1_loaded += 1;