From: Evan You Date: Mon, 23 Sep 2019 17:56:56 +0000 (-0400) Subject: fix: handle nested scope identifiers X-Git-Tag: v3.0.0-alpha.0~717 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e09e887219e104c9e466d2c84ba5e5a578b3ded3;p=thirdparty%2Fvuejs%2Fcore.git fix: handle nested scope identifiers --- diff --git a/packages/compiler-core/src/transform.ts b/packages/compiler-core/src/transform.ts index 00caba1940..f6f51c2cb0 100644 --- a/packages/compiler-core/src/transform.ts +++ b/packages/compiler-core/src/transform.ts @@ -50,7 +50,7 @@ export interface TransformOptions { export interface TransformContext extends Required { imports: Set statements: string[] - identifiers: { [name: string]: true } + identifiers: { [name: string]: number | undefined } parent: ParentNode ancestors: ParentNode[] childIndex: number @@ -113,11 +113,15 @@ function createTransformContext( context.parent.children.splice(removalIndex, 1) }, onNodeRemoved: () => {}, - addIdentifier(exp) { - context.identifiers[exp.content] = true + addIdentifier({ content }) { + const { identifiers } = context + if (identifiers[content] === undefined) { + identifiers[content] = 0 + } + ;(identifiers[content] as number)++ }, - removeIdentifier(exp) { - delete context.identifiers[exp.content] + removeIdentifier({ content }) { + ;(context.identifiers[content] as number)-- } } return context