From 4d16a0c4b6b13bcb9efd7d400152efdad3e68d0c Mon Sep 17 00:00:00 2001 From: Karl Seguin Date: Thu, 24 Sep 2026 06:17:00 +0800 Subject: [PATCH] document cleanup after bad parse start --- src/browser/webapi/Document.zig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/browser/webapi/Document.zig b/src/browser/webapi/Document.zig index ee95c6d91..0e13ee81e 100644 --- a/src/browser/webapi/Document.zig +++ b/src/browser/webapi/Document.zig @@ -1163,6 +1163,9 @@ pub fn open(self: *Document, call_frame: *Frame) !*Document { try frame._script_created_parser_docs.append(frame.arena, self); } self._script_created_parser = Parser.Streaming.init(frame.arena, doc_node, frame, .{ .allow_declarative_shadow = true }); + // on start() failure the internal `handle` isn't yet create. So we can't + // call done() and we don't want any subsequent cleanup to call done(). + errdefer self._script_created_parser = null; try self._script_created_parser.?.start(); frame._parse_mode = .document;