From b68eb229c75a78109fb48b1adcd0d4db3173d4af Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 8 Oct 2019 12:09:22 -0400 Subject: [PATCH] types: move scopeIds into PrefixMeta --- .../src/transforms/transformExpression.ts | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/packages/compiler-core/src/transforms/transformExpression.ts b/packages/compiler-core/src/transforms/transformExpression.ts index 80a2bc71..1c5d67de 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]