refactor: use global whitelist for render proxy has check
This commit is contained in:
@@ -23,6 +23,7 @@ import {
|
||||
parseJS,
|
||||
walkJS
|
||||
} from '../utils'
|
||||
import { globalsWhitelist } from '@vue/shared'
|
||||
|
||||
export const transformExpression: NodeTransform = (node, context) => {
|
||||
if (node.type === NodeTypes.INTERPOLATION) {
|
||||
@@ -215,17 +216,6 @@ const isPropertyShorthand = (node: Node, parent: Node) =>
|
||||
const isStaticPropertyKey = (node: Node, parent: Node) =>
|
||||
isPropertyKey(node, parent) && (parent as Property).value !== node
|
||||
|
||||
const globals = new Set(
|
||||
(
|
||||
'Infinity,undefined,NaN,isFinite,isNaN,' +
|
||||
'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +
|
||||
'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +
|
||||
'require,' + // for webpack
|
||||
'arguments,'
|
||||
) // parsed as identifier but is a special keyword...
|
||||
.split(',')
|
||||
)
|
||||
|
||||
function shouldPrefix(identifier: Identifier, parent: Node) {
|
||||
if (
|
||||
!(
|
||||
@@ -245,8 +235,12 @@ function shouldPrefix(identifier: Identifier, parent: Node) {
|
||||
) &&
|
||||
// not in an Array destructure pattern
|
||||
!(parent.type === 'ArrayPattern') &&
|
||||
// skip globals + commonly used shorthands
|
||||
!globals.has(identifier.name)
|
||||
// skip whitelisted globals
|
||||
!globalsWhitelist.has(identifier.name) &&
|
||||
// special case for webpack compilation
|
||||
identifier.name !== `require` &&
|
||||
// is a special keyword but parsed as identifier
|
||||
identifier.name !== `arguments`
|
||||
) {
|
||||
return true
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user