fix(compiler-sfc): add test for #5808

This commit is contained in:
liulinboyi
2022-04-27 09:33:21 +08:00
committed by Evan You
parent 6c3b681d23
commit a0290fe781
2 changed files with 220 additions and 0 deletions

View File

@@ -194,6 +194,173 @@ return { }
}"
`;
exports[`SFC compile <script setup> async/await detection multiple \`if for\` nested statements 1`] = `
"import { withAsyncContext as _withAsyncContext } from 'vue'
export default {
async setup(__props, { expose }) {
expose();
let __temp, __restore
if (ok) {
for (let a of [1,2,3]) {
(
([__temp,__restore] = _withAsyncContext(() => a)),
await __temp,
__restore()
)
}
for (let a of [1,2,3]) {
(
([__temp,__restore] = _withAsyncContext(() => a)),
await __temp,
__restore()
)
;(
([__temp,__restore] = _withAsyncContext(() => a)),
await __temp,
__restore()
)
}
}
return { }
}
}"
`;
exports[`SFC compile <script setup> async/await detection multiple \`if while\` nested statements 1`] = `
"import { withAsyncContext as _withAsyncContext } from 'vue'
export default {
async setup(__props, { expose }) {
expose();
let __temp, __restore
if (ok) {
while (d) {
(
([__temp,__restore] = _withAsyncContext(() => 5)),
await __temp,
__restore()
)
}
while (d) {
(
([__temp,__restore] = _withAsyncContext(() => 5)),
await __temp,
__restore()
)
;(
([__temp,__restore] = _withAsyncContext(() => 6)),
await __temp,
__restore()
)
if (c) {
let f = 10
10 + (
([__temp,__restore] = _withAsyncContext(() => 7)),
__temp = await __temp,
__restore(),
__temp
)
} else {
(
([__temp,__restore] = _withAsyncContext(() => 8)),
await __temp,
__restore()
)
;(
([__temp,__restore] = _withAsyncContext(() => 9)),
await __temp,
__restore()
)
}
}
}
return { }
}
}"
`;
exports[`SFC compile <script setup> async/await detection multiple \`if\` nested statements 1`] = `
"import { withAsyncContext as _withAsyncContext } from 'vue'
export default {
async setup(__props, { expose }) {
expose();
let __temp, __restore
if (ok) {
let a = 'foo'
;(
([__temp,__restore] = _withAsyncContext(() => 0)),
__temp = await __temp,
__restore(),
__temp
) + (
([__temp,__restore] = _withAsyncContext(() => 1)),
__temp = await __temp,
__restore(),
__temp
)
;(
([__temp,__restore] = _withAsyncContext(() => 2)),
await __temp,
__restore()
)
} else if (a) {
(
([__temp,__restore] = _withAsyncContext(() => 10)),
await __temp,
__restore()
)
if (b) {
(
([__temp,__restore] = _withAsyncContext(() => 0)),
__temp = await __temp,
__restore(),
__temp
) + (
([__temp,__restore] = _withAsyncContext(() => 1)),
__temp = await __temp,
__restore(),
__temp
)
} else {
let a = 'foo'
;(
([__temp,__restore] = _withAsyncContext(() => 2)),
await __temp,
__restore()
)
}
if (b) {
(
([__temp,__restore] = _withAsyncContext(() => 3)),
await __temp,
__restore()
)
;(
([__temp,__restore] = _withAsyncContext(() => 4)),
await __temp,
__restore()
)
}
} else {
(
([__temp,__restore] = _withAsyncContext(() => 5)),
await __temp,
__restore()
)
}
return { }
}
}"
`;
exports[`SFC compile <script setup> async/await detection nested await 1`] = `
"import { withAsyncContext as _withAsyncContext } from 'vue'