@@ -47,16 +47,16 @@ module.exports = {
47
47
*/
48
48
/**
49
49
* @typedef {object } ScopeStack
50
- * @property {ScopeStack } upper
50
+ * @property {ScopeStack | null } upper
51
51
* @property {FunctionDeclaration | FunctionExpression | ArrowFunctionExpression } functionNode
52
52
*/
53
53
/** @type {Set<ESNode> } */
54
54
const lifecycleHookCallNodes = new Set ( )
55
55
/** @type {Map<FunctionDeclaration | FunctionExpression | ArrowFunctionExpression, SetupFunctionData> } */
56
56
const setupFunctions = new Map ( )
57
57
58
- /** @type {ScopeStack } */
59
- let scopeStack
58
+ /** @type {ScopeStack | null } */
59
+ let scopeStack = null
60
60
61
61
return Object . assign (
62
62
{
@@ -81,7 +81,10 @@ module.exports = {
81
81
} ,
82
82
utils . defineVueVisitor ( context , {
83
83
':function' ( node ) {
84
- scopeStack = { upper : scopeStack , functionNode : node }
84
+ scopeStack = {
85
+ upper : scopeStack ,
86
+ functionNode : node
87
+ }
85
88
} ,
86
89
onSetupFunctionEnter ( node ) {
87
90
setupFunctions . set ( node , {
@@ -90,18 +93,20 @@ module.exports = {
90
93
} )
91
94
} ,
92
95
AwaitExpression ( ) {
93
- const setupFunctionData = setupFunctions . get (
94
- scopeStack && scopeStack . functionNode
95
- )
96
+ if ( ! scopeStack ) {
97
+ return
98
+ }
99
+ const setupFunctionData = setupFunctions . get ( scopeStack . functionNode )
96
100
if ( ! setupFunctionData ) {
97
101
return
98
102
}
99
103
setupFunctionData . afterAwait = true
100
104
} ,
101
105
CallExpression ( node ) {
102
- const setupFunctionData = setupFunctions . get (
103
- scopeStack && scopeStack . functionNode
104
- )
106
+ if ( ! scopeStack ) {
107
+ return
108
+ }
109
+ const setupFunctionData = setupFunctions . get ( scopeStack . functionNode )
105
110
if ( ! setupFunctionData || ! setupFunctionData . afterAwait ) {
106
111
return
107
112
}
@@ -118,7 +123,7 @@ module.exports = {
118
123
}
119
124
} ,
120
125
':function:exit' ( node ) {
121
- scopeStack = scopeStack . upper
126
+ scopeStack = scopeStack && scopeStack . upper
122
127
123
128
setupFunctions . delete ( node )
124
129
}
0 commit comments