@@ -29,38 +29,47 @@ const testCases = [
2929 [ 'await 0; return 0;' ,
3030 null ] ,
3131 [ 'var a = await 1' ,
32- '(async () => { void (a = await 1) })()' ] ,
32+ 'let a; (async () => { void (a = await 1) })()' ] ,
3333 [ 'let a = await 1' ,
34- '(async () => { void (a = await 1) })()' ] ,
34+ 'let a; (async () => { void (a = await 1) })()' ] ,
3535 [ 'const a = await 1' ,
36- '(async () => { void (a = await 1) })()' ] ,
36+ 'let a; (async () => { void (a = await 1) })()' ] ,
3737 [ 'for (var i = 0; i < 1; ++i) { await i }' ,
38- '(async () => { for (void (i = 0); i < 1; ++i) { await i } })()' ] ,
38+ 'let i; (async () => { for (void (i = 0); i < 1; ++i) { await i } })()' ] ,
3939 [ 'for (let i = 0; i < 1; ++i) { await i }' ,
40- '(async () => { for (let i = 0; i < 1; ++i) { await i } })()' ] ,
40+ 'let i; (async () => { for (void ( i = 0) ; i < 1; ++i) { await i } })()' ] ,
4141 [ 'var {a} = {a:1}, [b] = [1], {c:{d}} = {c:{d: await 1}}' ,
42- '(async () => { void ( ({a} = {a:1}), ([b] = [1]), ' +
42+ 'let a, b, d; (async () => { void ( ({a} = {a:1}), ([b] = [1]), ' +
4343 '({c:{d}} = {c:{d: await 1}})) })()' ] ,
44+ [ 'let [a, b, c] = await ([1, 2, 3])' ,
45+ 'let a, b, c; (async () => { void ([a, b, c] = await ([1, 2, 3])) })()' ] ,
46+ [ 'let {a,b,c} = await ({a: 1, b: 2, c: 3})' ,
47+ 'let a, b, c; (async () => { void ({a,b,c} = ' +
48+ 'await ({a: 1, b: 2, c: 3})) })()' ] ,
49+ [ 'let {a: [b]} = {a: [await 1]}, [{d}] = [{d: 3}]' ,
50+ 'let b, d; (async () => { void ( ({a: [b]} = {a: [await 1]}),' +
51+ ' ([{d}] = [{d: 3}])) })()' ] ,
4452 /* eslint-disable no-template-curly-in-string */
4553 [ 'console.log(`${(await { a: 1 }).a}`)' ,
4654 '(async () => { return (console.log(`${(await { a: 1 }).a}`)) })()' ] ,
4755 /* eslint-enable no-template-curly-in-string */
4856 [ 'await 0; function foo() {}' ,
49- '(async () => { await 0; foo=function foo() {} })()' ] ,
57+ 'let foo; (async () => { await 0; foo=function foo() {} })()' ] ,
5058 [ 'await 0; class Foo {}' ,
51- '(async () => { await 0; Foo=class Foo {} })()' ] ,
59+ 'let Foo; (async () => { await 0; Foo=class Foo {} })()' ] ,
5260 [ 'if (await true) { function foo() {} }' ,
53- '(async () => { if (await true) { foo=function foo() {} } })()' ] ,
61+ 'let foo; (async () => { if (await true) { foo=function foo() {} } })()' ] ,
5462 [ 'if (await true) { class Foo{} }' ,
55- '(async () => { if (await true) { class Foo{} } })()' ] ,
63+ 'let Foo; (async () => { if (await true) { Foo= class Foo{} } })()' ] ,
5664 [ 'if (await true) { var a = 1; }' ,
57- '(async () => { if (await true) { void (a = 1); } })()' ] ,
65+ 'let a; (async () => { if (await true) { void (a = 1); } })()' ] ,
5866 [ 'if (await true) { let a = 1; }' ,
59- '(async () => { if (await true) { let a = 1; } })()' ] ,
67+ 'let a; (async () => { if (await true) { void ( a = 1) ; } })()' ] ,
6068 [ 'var a = await 1; let b = 2; const c = 3;' ,
61- '(async () => { void (a = await 1); void (b = 2); void (c = 3); })()' ] ,
69+ 'let c; let b; let a; (async () => { void (a = await 1); void (b = 2);' +
70+ ' void (c = 3); })()' ] ,
6271 [ 'let o = await 1, p' ,
63- '(async () => { void ( (o = await 1), (p=undefined)) })()' ] ,
72+ 'let o, p; (async () => { void ( (o = await 1), (p=undefined)) })()' ] ,
6473] ;
6574
6675for ( const [ input , expected ] of testCases ) {
0 commit comments