@@ -101,6 +101,16 @@ module.exports = {
101
101
} )
102
102
}
103
103
104
+ /**
105
+ * @param {CallExpression } node
106
+ */
107
+ function reportWrappedIdentifiers ( node ) {
108
+ const nodes = node . arguments . filter ( ( node ) => node . type === 'Identifier' )
109
+ for ( const node of nodes ) {
110
+ reportIfRefWrapped ( node )
111
+ }
112
+ }
113
+
104
114
const programNode = context . getSourceCode ( ) . ast
105
115
106
116
const callVisitor = {
@@ -117,35 +127,27 @@ module.exports = {
117
127
118
128
// verify setup context
119
129
const setupContext = setupContexts . get ( info ? info . node : programNode )
120
- if ( setupContext ) {
121
- const { contextReferenceIds, emitReferenceIds } = setupContext
130
+ if ( ! setupContext ) {
131
+ return
132
+ }
133
+
134
+ const { contextReferenceIds, emitReferenceIds } = setupContext
135
+ if (
136
+ node . callee . type === 'Identifier' &&
137
+ emitReferenceIds . has ( node . callee )
138
+ ) {
139
+ // verify setup(props,{emit}) {emit()}
140
+ reportWrappedIdentifiers ( node )
141
+ } else {
142
+ const emit = getCalleeMemberNode ( node )
122
143
if (
123
- node . callee . type === 'Identifier' &&
124
- emitReferenceIds . has ( node . callee )
144
+ emit &&
145
+ emit . name === 'emit' &&
146
+ emit . member . object . type === 'Identifier' &&
147
+ contextReferenceIds . has ( emit . member . object )
125
148
) {
126
- // verify setup(props,{emit}) {emit()}
127
- const nodes = node . arguments . filter (
128
- ( node ) => node . type === 'Identifier'
129
- )
130
- for ( const node of nodes ) {
131
- reportIfRefWrapped ( node )
132
- }
133
- } else {
134
- const emit = getCalleeMemberNode ( node )
135
- if (
136
- emit &&
137
- emit . name === 'emit' &&
138
- emit . member . object . type === 'Identifier' &&
139
- contextReferenceIds . has ( emit . member . object )
140
- ) {
141
- // verify setup(props,context) {context.emit()}
142
- const nodes = node . arguments . filter (
143
- ( node ) => node . type === 'Identifier'
144
- )
145
- for ( const node of nodes ) {
146
- reportIfRefWrapped ( node )
147
- }
148
- }
149
+ // verify setup(props,context) {context.emit()}
150
+ reportWrappedIdentifiers ( node )
149
151
}
150
152
}
151
153
}
@@ -285,6 +287,7 @@ module.exports = {
285
287
// cannot check
286
288
return
287
289
}
290
+
288
291
const contextReferenceIds = new Set ( )
289
292
const emitReferenceIds = new Set ( )
290
293
if ( contextParam . type === 'ObjectPattern' ) {
0 commit comments