From ba3da32ce67931e5c373a4ae6ee33ec816862477 Mon Sep 17 00:00:00 2001 From: Halil Durak Date: Tue, 10 Mar 2026 19:16:20 +0300 Subject: [PATCH] spread new `stringToPersistedFunction` --- src/browser/webapi/element/Html.zig | 23 +++++++++-------------- src/browser/webapi/element/html/Body.zig | 2 +- 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/src/browser/webapi/element/Html.zig b/src/browser/webapi/element/Html.zig index ea962c9e..40f70b67 100644 --- a/src/browser/webapi/element/Html.zig +++ b/src/browser/webapi/element/Html.zig @@ -387,22 +387,17 @@ pub fn getAttributeFunction( } const attr = element.getAttributeSafe(.wrap(@tagName(listener_type))) orelse return null; - const callback = page.js.stringToPersistedFunction(attr) catch |err| switch (err) { - error.OutOfMemory => return err, - else => { - // Not a valid expression; log this to find out if its something we should be supporting. - log.warn(.js, "Html.getAttributeFunction", .{ - .expression = attr, - .err = err, - }); - - return null; - }, + const function = page.js.stringToPersistedFunction(attr, &.{"event"}, &.{}) catch |err| { + // Not a valid expression; log this to find out if its something we should be supporting. + log.warn(.js, "Html.getAttributeFunction", .{ + .expression = attr, + .err = err, + }); + return null; }; - try self.setAttributeListener(listener_type, callback, page); - - return callback; + try self.setAttributeListener(listener_type, function, page); + return function; } pub fn hasAttributeFunction(self: *HtmlElement, listener_type: GlobalEventHandler, page: *const Page) bool { diff --git a/src/browser/webapi/element/html/Body.zig b/src/browser/webapi/element/html/Body.zig index 7b5b530e..dccb892d 100644 --- a/src/browser/webapi/element/html/Body.zig +++ b/src/browser/webapi/element/html/Body.zig @@ -50,7 +50,7 @@ pub const Build = struct { pub fn complete(node: *Node, page: *Page) !void { const el = node.as(Element); const on_load = el.getAttributeSafe(comptime .wrap("onload")) orelse return; - if (page.js.stringToPersistedFunction(on_load)) |func| { + if (page.js.stringToPersistedFunction(on_load, &.{"event"}, &.{})) |func| { page.window._on_load = func; } else |err| { log.err(.js, "body.onload", .{ .err = err, .str = on_load });