diff --git a/packages/compiler-core/src/transform.ts b/packages/compiler-core/src/transform.ts index 00caba19..f6f51c2c 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