From f5581394977e6936b2f82916abba9c68149bb5ca Mon Sep 17 00:00:00 2001 From: Muki Kiboigo Date: Thu, 2 Apr 2026 03:11:16 -0700 Subject: [PATCH] different cache crash prevention --- src/browser/ScriptManager.zig | 47 +++++++++++++++-------------------- 1 file changed, 20 insertions(+), 27 deletions(-) diff --git a/src/browser/ScriptManager.zig b/src/browser/ScriptManager.zig index c7901e9e..760a543e 100644 --- a/src/browser/ScriptManager.zig +++ b/src/browser/ScriptManager.zig @@ -273,33 +273,6 @@ pub fn addFromElement(self: *ScriptManager, comptime from_parser: bool, script_e // Let the outer errdefer handle releasing the arena if client.request fails } - // If we return synchronously (like from cache), we would call evaluate() immediately. - { - const was_evaluating = self.is_evaluating; - self.is_evaluating = true; - defer self.is_evaluating = was_evaluating; - - try self.client.request(.{ - .url = url, - .ctx = script, - .method = .GET, - .frame_id = page._frame_id, - .headers = try self.getHeaders(), - .blocking = is_blocking, - .cookie_jar = &page._session.cookie_jar, - .cookie_origin = page.url, - .resource_type = .script, - .notification = page._session.notification, - .start_callback = if (log.enabled(.http, .debug)) Script.startCallback else null, - .header_callback = Script.headerCallback, - .data_callback = Script.dataCallback, - .done_callback = Script.doneCallback, - .error_callback = Script.errorCallback, - }); - } - - handover = true; - if (comptime IS_DEBUG) { var ls: js.Local.Scope = undefined; page.js.localScope(&ls); @@ -312,6 +285,26 @@ pub fn addFromElement(self: *ScriptManager, comptime from_parser: bool, script_e .stack = ls.local.stackTrace() catch "???", }); } + + try self.client.request(.{ + .url = url, + .ctx = script, + .method = .GET, + .frame_id = page._frame_id, + .headers = try self.getHeaders(), + .blocking = is_blocking, + .cookie_jar = &page._session.cookie_jar, + .cookie_origin = page.url, + .resource_type = .script, + .notification = page._session.notification, + .start_callback = if (log.enabled(.http, .debug)) Script.startCallback else null, + .header_callback = Script.headerCallback, + .data_callback = Script.dataCallback, + .done_callback = Script.doneCallback, + .error_callback = Script.errorCallback, + }); + + handover = true; } if (is_blocking == false) {