From c42b7066cae7947e9fd877e495aeb38623c2354d Mon Sep 17 00:00:00 2001 From: shadowings-zy Date: Tue, 30 Mar 2021 17:40:44 +0800 Subject: [PATCH] fix(compiler): Allow BigInt usage in templates (#11152) --- src/core/instance/proxy.js | 2 +- test/unit/features/filter/filter.spec.js | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/core/instance/proxy.js b/src/core/instance/proxy.js index 95c2b97a91f..b1884f7118c 100644 --- a/src/core/instance/proxy.js +++ b/src/core/instance/proxy.js @@ -9,7 +9,7 @@ if (process.env.NODE_ENV !== 'production') { const allowedGlobals = makeMap( 'Infinity,undefined,NaN,isFinite,isNaN,' + 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' + - 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' + + 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,' + 'require' // for Webpack/Browserify ) diff --git a/test/unit/features/filter/filter.spec.js b/test/unit/features/filter/filter.spec.js index 82c57a3d62e..854ea575064 100644 --- a/test/unit/features/filter/filter.spec.js +++ b/test/unit/features/filter/filter.spec.js @@ -194,4 +194,11 @@ describe('Filters', () => { it('support template string', () => { expect(parseFilters('`a | ${b}c` | d')).toBe('_f("d")(`a | ${b}c`)') }) + + it('bigint support', () => { + const vm = new Vue({ + template: `
{{ BigInt(BigInt(10000000)) + BigInt(2000000000n) * 3000000n }}
` + }).$mount() + expect(vm.$el.textContent).toBe('6000000010000000') + }) })