From 9c00001a269eee49abb1fd27829f3c7bd0023f5e Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Wed, 7 Dec 2022 09:51:27 -0800 Subject: [PATCH] Have `__makeTemplateObject` freeze template strings objects if possible. --- src/compiler/factory/emitHelpers.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/compiler/factory/emitHelpers.ts b/src/compiler/factory/emitHelpers.ts index faa93c77be8..ca8a9773244 100644 --- a/src/compiler/factory/emitHelpers.ts +++ b/src/compiler/factory/emitHelpers.ts @@ -663,7 +663,12 @@ export const templateObjectHelper: UnscopedEmitHelper = { priority: 0, text: ` var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + if (Object.freeze) { + Object.freeze(Object.defineProperty(cooked, "raw", { value: Object.freeze(raw) })); + } + else { + cooked.raw = raw; + } return cooked; };` };