From 9e23fbccb94528208572a3c96dd6e53337070185 Mon Sep 17 00:00:00 2001 From: p
Date: Thu, 13 Aug 2026 16:01:42 +0800 Subject: [PATCH] fix: ResourceBrowser strip tools before clone_descriptor (avoid circular ref from buildBind event_widget) --- bricks/resourcebrowser.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/bricks/resourcebrowser.js b/bricks/resourcebrowser.js index db37efb..ab9da19 100644 --- a/bricks/resourcebrowser.js +++ b/bricks/resourcebrowser.js @@ -119,8 +119,9 @@ bricks.ResourceBrowser = class extends bricks.VBox { tree_col.dom_element.style.minHeight = '0'; body.add_widget(tree_col); - var tree_desc = this.clone_descriptor(this.tree_options); - delete tree_desc.tools; + var tree_copy = bricks.extend({}, this.tree_options); + delete tree_copy.tools; + var tree_desc = this.clone_descriptor(tree_copy); // select-only: clicking the same node must not unselect it tree_desc.options = tree_desc.options || {}; tree_desc.options.select_only = true; @@ -167,8 +168,9 @@ bricks.ResourceBrowser = class extends bricks.VBox { return; } - var desc = this.clone_descriptor(this.browser_options); - delete desc.tools; + var browser_copy = bricks.extend({}, this.browser_options); + delete browser_copy.tools; + var desc = this.clone_descriptor(browser_copy); desc.options = desc.options || {}; desc.options.params = bricks.extend({}, desc.options.params || {}); if (id === null || id === undefined){