@@ -10,14 +10,15 @@ import {
10
10
baseParse as parse ,
11
11
transform ,
12
12
} from '../../src'
13
+ import { transformFor } from '../../src/transforms/vFor'
13
14
import { transformOn } from '../../src/transforms/vOn'
14
15
import { transformElement } from '../../src/transforms/transformElement'
15
16
import { transformExpression } from '../../src/transforms/transformExpression'
16
17
17
18
function parseWithVOn ( template : string , options : CompilerOptions = { } ) {
18
19
const ast = parse ( template , options )
19
20
transform ( ast , {
20
- nodeTransforms : [ transformExpression , transformElement ] ,
21
+ nodeTransforms : [ transformExpression , transformElement , transformFor ] ,
21
22
directiveTransforms : {
22
23
on : transformOn ,
23
24
} ,
@@ -602,6 +603,17 @@ describe('compiler: transform v-on', () => {
602
603
expect ( root . cached ) . toBe ( 1 )
603
604
} )
604
605
606
+ test ( 'unicode identifier should not be cached (v-for)' , ( ) => {
607
+ const { root } = parseWithVOn (
608
+ `<div v-for="项 in items" :key="value"><div v-on:click="foo(项)"/></div>` ,
609
+ {
610
+ prefixIdentifiers : true ,
611
+ cacheHandlers : true ,
612
+ } ,
613
+ )
614
+ expect ( root . cached ) . toBe ( 0 )
615
+ } )
616
+
605
617
test ( 'inline function expression handler' , ( ) => {
606
618
const { root, node } = parseWithVOn ( `<div v-on:click="() => foo()" />` , {
607
619
prefixIdentifiers : true ,
0 commit comments