From 05dc15798adaef6d1ae58e3f97ec3e6a7503c81d Mon Sep 17 00:00:00 2001 From: Hugo Alliaume Date: Thu, 30 Jan 2025 17:36:24 +0100 Subject: [PATCH] [LiveComponent] Prevent `__component` property to be serialized when called `JSON.stringify()` --- src/LiveComponent/assets/dist/live_controller.js | 5 ++++- src/LiveComponent/assets/src/live_controller.ts | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/LiveComponent/assets/dist/live_controller.js b/src/LiveComponent/assets/dist/live_controller.js index 375a5b15bd..41177512fd 100644 --- a/src/LiveComponent/assets/dist/live_controller.js +++ b/src/LiveComponent/assets/dist/live_controller.js @@ -3059,7 +3059,10 @@ class LiveControllerDefault extends Controller { const id = this.element.id || null; this.component = new Component(this.element, this.nameValue, this.propsValue, this.listenersValue, id, LiveControllerDefault.backendFactory(this), new StimulusElementDriver(this)); this.proxiedComponent = proxifyComponent(this.component); - this.element.__component = this.proxiedComponent; + Object.defineProperty(this.element, '__component', { + value: this.proxiedComponent, + writable: true, + }); if (this.hasDebounceValue) { this.component.defaultDebounce = this.debounceValue; } diff --git a/src/LiveComponent/assets/src/live_controller.ts b/src/LiveComponent/assets/src/live_controller.ts index 278915e0b0..a9ea7f115e 100644 --- a/src/LiveComponent/assets/src/live_controller.ts +++ b/src/LiveComponent/assets/src/live_controller.ts @@ -285,8 +285,10 @@ export default class LiveControllerDefault extends Controller imple ); this.proxiedComponent = proxifyComponent(this.component); - // @ts-ignore Adding the dynamic property - this.element.__component = this.proxiedComponent; + Object.defineProperty(this.element, '__component', { + value: this.proxiedComponent, + writable: true, + }); if (this.hasDebounceValue) { this.component.defaultDebounce = this.debounceValue;