From 03a72fcd4efa485902b80706229b18dd0c28a509 Mon Sep 17 00:00:00 2001 From: Patrick Pircher Date: Tue, 24 Jun 2025 10:16:38 +0200 Subject: [PATCH 1/3] handle glimmer validator patch failure if ember is build with vite, all exports are readonly. cannot patch. this part is to support tracked deps --- ember_debug/object-inspector.js | 59 ++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 27 deletions(-) diff --git a/ember_debug/object-inspector.js b/ember_debug/object-inspector.js index 777f9d5f4b..67adf33b3d 100644 --- a/ember_debug/object-inspector.js +++ b/ember_debug/object-inspector.js @@ -39,33 +39,38 @@ if (GlimmerValidator) { track = GlimmerValidator.track; // patch tagFor to add debug info, older versions already have _propertyKey - const tagFor = GlimmerValidator.tagFor; - GlimmerValidator.tagFor = function (...args) { - const tag = tagFor.call(this, ...args); - const [obj, key] = args; - if ( - (!tag._propertyKey || !tag._object) && - typeof obj === 'object' && - typeof key === 'string' - ) { - tag._propertyKey = key; - tag._object = obj; - } - return tag; - }; - const trackedData = GlimmerValidator.trackedData; - GlimmerValidator.trackedData = function (...args) { - const r = trackedData.call(this, ...args); - if (r.getter && args.length === 2) { - const [key] = args; - const getter = r.getter; - r.getter = function (self) { - GlimmerValidator.tagFor(self, key); - return getter.call(this, self); - }; - } - return r; - }; + try { + const tagFor = GlimmerValidator.tagFor; + GlimmerValidator.tagFor = function (...args) { + const tag = tagFor.call(this, ...args); + const [obj, key] = args; + if ( + (!tag._propertyKey || !tag._object) && + typeof obj === 'object' && + typeof key === 'string' + ) { + tag._propertyKey = key; + tag._object = obj; + } + return tag; + }; + const trackedData = GlimmerValidator.trackedData; + GlimmerValidator.trackedData = function (...args) { + const r = trackedData.call(this, ...args); + if (r.getter && args.length === 2) { + const [key] = args; + const getter = r.getter; + r.getter = function (self) { + GlimmerValidator.tagFor(self, key); + return getter.call(this, self); + }; + } + return r; + }; + } catch (e) { + // cannot patch + } + } else if (GlimmerReference) { tagValue = GlimmerReference.value; tagValidate = GlimmerReference.validate; From ae3df327d8a4f97554e52b2d49f0c20d770c3319 Mon Sep 17 00:00:00 2001 From: Patrick Pircher Date: Tue, 24 Jun 2025 10:19:39 +0200 Subject: [PATCH 2/3] fix lint --- ember_debug/object-inspector.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ember_debug/object-inspector.js b/ember_debug/object-inspector.js index 67adf33b3d..1fda955213 100644 --- a/ember_debug/object-inspector.js +++ b/ember_debug/object-inspector.js @@ -67,10 +67,9 @@ if (GlimmerValidator) { } return r; }; - } catch (e) { + } catch (_e) { // cannot patch } - } else if (GlimmerReference) { tagValue = GlimmerReference.value; tagValidate = GlimmerReference.validate; From 4ad903c9eb6f8ad29b06c4412e94caedabe9344b Mon Sep 17 00:00:00 2001 From: Patrick Pircher Date: Tue, 24 Jun 2025 11:40:34 +0200 Subject: [PATCH 3/3] fix --- ember_debug/object-inspector.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ember_debug/object-inspector.js b/ember_debug/object-inspector.js index 1fda955213..d60251df7a 100644 --- a/ember_debug/object-inspector.js +++ b/ember_debug/object-inspector.js @@ -67,7 +67,7 @@ if (GlimmerValidator) { } return r; }; - } catch (_e) { + } catch { // cannot patch } } else if (GlimmerReference) {