From: Evan You Date: Tue, 8 Oct 2019 16:09:22 +0000 (-0400) Subject: types: move scopeIds into PrefixMeta X-Git-Tag: v3.0.0-alpha.0~555 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b68eb229c75a78109fb48b1adcd0d4db3173d4af;p=thirdparty%2Fvuejs%2Fcore.git types: move scopeIds into PrefixMeta --- diff --git a/packages/compiler-core/src/transforms/transformExpression.ts b/packages/compiler-core/src/transforms/transformExpression.ts index 80a2bc7192..1c5d67dedc 100644 --- a/packages/compiler-core/src/transforms/transformExpression.ts +++ b/packages/compiler-core/src/transforms/transformExpression.ts @@ -63,6 +63,7 @@ interface PrefixMeta { prefix?: string start: number end: number + scopeIds?: Set } // Important: since this function uses Node.js only dependencies, it should @@ -145,10 +146,7 @@ export function processExpression( ) ) { const { name } = child - if ( - (node as any)._scopeIds && - (node as any)._scopeIds.has(name) - ) { + if (node.scopeIds && node.scopeIds.has(name)) { return } if (name in knownIds) { @@ -156,19 +154,16 @@ export function processExpression( } else { knownIds[name] = 1 } - ;( - (node as any)._scopeIds || - ((node as any)._scopeIds = new Set()) - ).add(name) + ;(node.scopeIds || (node.scopeIds = new Set())).add(name) } } }) ) } }, - leave(node: any) { - if (node !== ast.body[0].expression && node._scopeIds) { - node._scopeIds.forEach((id: string) => { + leave(node: Node & PrefixMeta) { + if (node !== ast.body[0].expression && node.scopeIds) { + node.scopeIds.forEach((id: string) => { knownIds[id]-- if (knownIds[id] === 0) { delete knownIds[id]