From e26d0244291522d55a340206c31f93e9b8b54744 Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Thu, 3 Nov 2022 08:21:32 -0400 Subject: [PATCH] feat(compiler): add support for Error global Related to #7015 --- .../__tests__/transforms/transformExpressions.spec.ts | 8 ++++++++ packages/shared/src/globalsWhitelist.ts | 8 ++++++++ 2 files changed, 16 insertions(+) create mode 100644 packages/shared/src/globalsWhitelist.ts diff --git a/packages/compiler-core/__tests__/transforms/transformExpressions.spec.ts b/packages/compiler-core/__tests__/transforms/transformExpressions.spec.ts index 686794c23ab..8659a7bf3c0 100644 --- a/packages/compiler-core/__tests__/transforms/transformExpressions.spec.ts +++ b/packages/compiler-core/__tests__/transforms/transformExpressions.spec.ts @@ -188,6 +188,14 @@ describe('compiler: expression transform', () => { type: NodeTypes.COMPOUND_EXPRESSION, children: [{ content: `Math` }, `.`, { content: `max` }, `(1, 2)`] }) + + expect( + (parseWithExpressionTransform(`{{ new Error() }}`) as InterpolationNode) + .content + ).toMatchObject({ + type: NodeTypes.COMPOUND_EXPRESSION, + children: ['new ', { content: 'Error' }, '()'], + }) }) test('should not prefix reserved literals', () => { diff --git a/packages/shared/src/globalsWhitelist.ts b/packages/shared/src/globalsWhitelist.ts new file mode 100644 index 00000000000..2f2caa85665 --- /dev/null +++ b/packages/shared/src/globalsWhitelist.ts @@ -0,0 +1,8 @@ +import { makeMap } from './makeMap' + +const GLOBALS_WHITE_LISTED = + 'Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,' + + 'decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,' + + 'Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,Error' + +export const isGloballyWhitelisted = /*#__PURE__*/ makeMap(GLOBALS_WHITE_LISTED)