From 8291e4ba738836f8cbeb931149e96aaf349b5347 Mon Sep 17 00:00:00 2001 From: Pierre Tachoire Date: Tue, 24 Feb 2026 21:31:41 +0100 Subject: [PATCH 1/2] fix: add _pad to IdleDeadline to avoid identity_map pointer aliasing --- src/browser/webapi/IdleDeadline.zig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/browser/webapi/IdleDeadline.zig b/src/browser/webapi/IdleDeadline.zig index c871702e..b193f561 100644 --- a/src/browser/webapi/IdleDeadline.zig +++ b/src/browser/webapi/IdleDeadline.zig @@ -20,6 +20,9 @@ const std = @import("std"); const IdleDeadline = @This(); +// Padding to avoid zero-size struct, which causes identity_map pointer collisions. +_pad: bool = false, + pub fn init() IdleDeadline { return .{}; } From a0e5c9d570662d76f8549a94201325686ab79018 Mon Sep 17 00:00:00 2001 From: Pierre Tachoire Date: Tue, 24 Feb 2026 21:36:38 +0100 Subject: [PATCH 2/2] add padding field for some other webapi --- src/browser/webapi/DOMParser.zig | 3 +++ src/browser/webapi/ResizeObserver.zig | 3 +++ src/browser/webapi/XMLSerializer.zig | 3 +++ 3 files changed, 9 insertions(+) diff --git a/src/browser/webapi/DOMParser.zig b/src/browser/webapi/DOMParser.zig index d386794a..e2a0a438 100644 --- a/src/browser/webapi/DOMParser.zig +++ b/src/browser/webapi/DOMParser.zig @@ -29,6 +29,9 @@ const Document = @import("Document.zig"); const DOMParser = @This(); +// Padding to avoid zero-size struct, which causes identity_map pointer collisions. +_pad: bool = false, + pub fn init() DOMParser { return .{}; } diff --git a/src/browser/webapi/ResizeObserver.zig b/src/browser/webapi/ResizeObserver.zig index 04e396ab..778bcb3b 100644 --- a/src/browser/webapi/ResizeObserver.zig +++ b/src/browser/webapi/ResizeObserver.zig @@ -22,6 +22,9 @@ const Element = @import("Element.zig"); pub const ResizeObserver = @This(); +// Padding to avoid zero-size struct, which causes identity_map pointer collisions. +_pad: bool = false, + fn init(cbk: js.Function) ResizeObserver { _ = cbk; return .{}; diff --git a/src/browser/webapi/XMLSerializer.zig b/src/browser/webapi/XMLSerializer.zig index 7aee1d20..11ee49cd 100644 --- a/src/browser/webapi/XMLSerializer.zig +++ b/src/browser/webapi/XMLSerializer.zig @@ -25,6 +25,9 @@ const dump = @import("../dump.zig"); const XMLSerializer = @This(); +// Padding to avoid zero-size struct, which causes identity_map pointer collisions. +_pad: bool = false, + pub fn init() XMLSerializer { return .{}; }