@@ -124,11 +124,12 @@ module.exports = {
124
124
emitReferenceIds . has ( node . callee )
125
125
) {
126
126
// verify setup(props,{emit}) {emit()}
127
- node . arguments
128
- . filter ( ( node ) => node . type === 'Identifier' )
129
- . forEach ( ( node ) => {
130
- reportIfRefWrapped ( node )
131
- } )
127
+ const nodes = node . arguments . filter (
128
+ ( node ) => node . type === 'Identifier'
129
+ )
130
+ for ( const node of nodes ) {
131
+ reportIfRefWrapped ( node )
132
+ }
132
133
} else {
133
134
const emit = getCalleeMemberNode ( node )
134
135
if (
@@ -138,11 +139,12 @@ module.exports = {
138
139
contextReferenceIds . has ( emit . member . object )
139
140
) {
140
141
// verify setup(props,context) {context.emit()}
141
- node . arguments
142
- . filter ( ( node ) => node . type === 'Identifier' )
143
- . forEach ( ( node ) => {
144
- reportIfRefWrapped ( node )
145
- } )
142
+ const nodes = node . arguments . filter (
143
+ ( node ) => node . type === 'Identifier'
144
+ )
145
+ for ( const node of nodes ) {
146
+ reportIfRefWrapped ( node )
147
+ }
146
148
}
147
149
}
148
150
}
@@ -235,101 +237,99 @@ module.exports = {
235
237
reportIfRefWrapped ( node )
236
238
}
237
239
} ,
238
- utils . compositingVisitors (
239
- utils . defineScriptSetupVisitor ( context , {
240
- onDefineEmitsEnter ( node ) {
241
- if (
242
- ! node . parent ||
243
- node . parent . type !== 'VariableDeclarator' ||
244
- node . parent . init !== node
245
- ) {
246
- return
247
- }
240
+ utils . defineScriptSetupVisitor ( context , {
241
+ onDefineEmitsEnter ( node ) {
242
+ if (
243
+ ! node . parent ||
244
+ node . parent . type !== 'VariableDeclarator' ||
245
+ node . parent . init !== node
246
+ ) {
247
+ return
248
+ }
249
+
250
+ const emitParam = node . parent . id
251
+ if ( emitParam . type !== 'Identifier' ) {
252
+ return
253
+ }
248
254
249
- const emitParam = node . parent . id
250
- if ( emitParam . type !== 'Identifier' ) {
255
+ // const emit = defineEmits()
256
+ const variable = findVariable (
257
+ utils . getScope ( context , emitParam ) ,
258
+ emitParam
259
+ )
260
+ if ( ! variable ) {
261
+ return
262
+ }
263
+ const emitReferenceIds = new Set ( )
264
+ for ( const reference of variable . references ) {
265
+ emitReferenceIds . add ( reference . identifier )
266
+ }
267
+ setupContexts . set ( programNode , {
268
+ contextReferenceIds : new Set ( ) ,
269
+ emitReferenceIds
270
+ } )
271
+ } ,
272
+ ...callVisitor
273
+ } ) ,
274
+ utils . defineVueVisitor ( context , {
275
+ onSetupFunctionEnter ( node , { node : vueNode } ) {
276
+ const contextParam = utils . skipDefaultParamValue ( node . params [ 1 ] )
277
+ if ( ! contextParam ) {
278
+ // no arguments
279
+ return
280
+ }
281
+ if (
282
+ contextParam . type === 'RestElement' ||
283
+ contextParam . type === 'ArrayPattern'
284
+ ) {
285
+ // cannot check
286
+ return
287
+ }
288
+ const contextReferenceIds = new Set ( )
289
+ const emitReferenceIds = new Set ( )
290
+ if ( contextParam . type === 'ObjectPattern' ) {
291
+ const emitProperty = utils . findAssignmentProperty (
292
+ contextParam ,
293
+ 'emit'
294
+ )
295
+ if ( ! emitProperty || emitProperty . value . type !== 'Identifier' ) {
251
296
return
252
297
}
253
-
254
- // const emit = defineEmits()
298
+ const emitParam = emitProperty . value
299
+ // `setup(props, { emit})`
255
300
const variable = findVariable (
256
301
utils . getScope ( context , emitParam ) ,
257
302
emitParam
258
303
)
259
304
if ( ! variable ) {
260
305
return
261
306
}
262
- const emitReferenceIds = new Set ( )
263
307
for ( const reference of variable . references ) {
264
308
emitReferenceIds . add ( reference . identifier )
265
309
}
266
- setupContexts . set ( programNode , {
267
- contextReferenceIds : new Set ( ) ,
268
- emitReferenceIds
269
- } )
270
- } ,
271
- ...callVisitor
272
- } ) ,
273
- utils . defineVueVisitor ( context , {
274
- onSetupFunctionEnter ( node , { node : vueNode } ) {
275
- const contextParam = utils . skipDefaultParamValue ( node . params [ 1 ] )
276
- if ( ! contextParam ) {
277
- // no arguments
278
- return
279
- }
280
- if (
281
- contextParam . type === 'RestElement' ||
282
- contextParam . type === 'ArrayPattern'
283
- ) {
284
- // cannot check
310
+ } else {
311
+ // `setup(props, context)`
312
+ const variable = findVariable (
313
+ utils . getScope ( context , contextParam ) ,
314
+ contextParam
315
+ )
316
+ if ( ! variable ) {
285
317
return
286
318
}
287
- const contextReferenceIds = new Set ( )
288
- const emitReferenceIds = new Set ( )
289
- if ( contextParam . type === 'ObjectPattern' ) {
290
- const emitProperty = utils . findAssignmentProperty (
291
- contextParam ,
292
- 'emit'
293
- )
294
- if ( ! emitProperty || emitProperty . value . type !== 'Identifier' ) {
295
- return
296
- }
297
- const emitParam = emitProperty . value
298
- // `setup(props, {emit})`
299
- const variable = findVariable (
300
- utils . getScope ( context , emitParam ) ,
301
- emitParam
302
- )
303
- if ( ! variable ) {
304
- return
305
- }
306
- for ( const reference of variable . references ) {
307
- emitReferenceIds . add ( reference . identifier )
308
- }
309
- } else {
310
- // `setup(props, context)`
311
- const variable = findVariable (
312
- utils . getScope ( context , contextParam ) ,
313
- contextParam
314
- )
315
- if ( ! variable ) {
316
- return
317
- }
318
- for ( const reference of variable . references ) {
319
- contextReferenceIds . add ( reference . identifier )
320
- }
319
+ for ( const reference of variable . references ) {
320
+ contextReferenceIds . add ( reference . identifier )
321
321
}
322
- setupContexts . set ( vueNode , {
323
- contextReferenceIds,
324
- emitReferenceIds
325
- } )
326
- } ,
327
- ...callVisitor ,
328
- onVueObjectExit ( node ) {
329
- setupContexts . delete ( node )
330
322
}
331
- } )
332
- )
323
+ setupContexts . set ( vueNode , {
324
+ contextReferenceIds,
325
+ emitReferenceIds
326
+ } )
327
+ } ,
328
+ ...callVisitor ,
329
+ onVueObjectExit ( node ) {
330
+ setupContexts . delete ( node )
331
+ }
332
+ } )
333
333
)
334
334
}
335
335
}
0 commit comments