From c9f94fa3cfbe8fcd9ea3d49d523dfb282c468369 Mon Sep 17 00:00:00 2001 From: edison Date: Thu, 4 Feb 2021 02:28:46 +0800 Subject: [PATCH] feat(compiler-core): support `BigInt` in template (#2900) --- packages/shared/src/globalsWhitelist.ts | 2 +- packages/vue/__tests__/index.spec.ts | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/shared/src/globalsWhitelist.ts b/packages/shared/src/globalsWhitelist.ts index c6347bf29..f383450c8 100644 --- a/packages/shared/src/globalsWhitelist.ts +++ b/packages/shared/src/globalsWhitelist.ts @@ -3,6 +3,6 @@ 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' + 'Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt' export const isGloballyWhitelisted = /*#__PURE__*/ makeMap(GLOBALS_WHITE_LISTED) diff --git a/packages/vue/__tests__/index.spec.ts b/packages/vue/__tests__/index.spec.ts index b425e5de7..99e3a63a6 100644 --- a/packages/vue/__tests__/index.spec.ts +++ b/packages/vue/__tests__/index.spec.ts @@ -292,4 +292,13 @@ describe('compiler + runtime integration', () => { createApp(App).mount(container) expect(EMPTY_ARR.length).toBe(0) }) + + test('BigInt support', () => { + const app = createApp({ + template: `
{{ BigInt(BigInt(100000111)) + BigInt(2000000000n) * 30000000n }}
` + }) + const root = document.createElement('div') + app.mount(root) + expect(root.innerHTML).toBe('
60000000100000111
') + }) })