From 02f13abde361d3beb8385bf49bc0de7b5f380a3a Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Tue, 23 Oct 2018 22:34:03 -0700 Subject: [PATCH] repl: support top-level for-await-of PR-URL: https://github.com/nodejs/node/pull/23841 Fixes: https://github.com/nodejs/node/issues/23836 Reviewed-By: John-David Dalton Reviewed-By: Yuta Hiroto Reviewed-By: Gus Caplan Reviewed-By: Rich Trott Reviewed-By: Tiancheng "Timothy" Gu Reviewed-By: Colin Ihrig Reviewed-By: Matheus Marchini Reviewed-By: James M Snell --- lib/internal/repl/await.js | 6 ++++++ test/parallel/test-repl-top-level-await.js | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/internal/repl/await.js b/lib/internal/repl/await.js index e0b79805df049b..2f3e754b5d5d21 100644 --- a/lib/internal/repl/await.js +++ b/lib/internal/repl/await.js @@ -11,6 +11,12 @@ const visitorsWithoutAncestors = { } walk.base.ClassDeclaration(node, state, c); }, + ForOfStatement(node, state, c) { + if (node.await === true) { + state.containsAwait = true; + } + walk.base.ForOfStatement(node, state, c); + }, FunctionDeclaration(node, state, c) { state.prepend(node, `${node.id.name}=`); }, diff --git a/test/parallel/test-repl-top-level-await.js b/test/parallel/test-repl-top-level-await.js index 9194c4a449007f..c6717a2120f45c 100644 --- a/test/parallel/test-repl-top-level-await.js +++ b/test/parallel/test-repl-top-level-await.js @@ -130,7 +130,8 @@ async function ordinaryTests() { [ 'let o = await 1, p', 'undefined' ], [ 'p', 'undefined' ], [ 'let q = 1, s = await 2', 'undefined' ], - [ 's', '2' ] + [ 's', '2' ], + [ 'for await (let i of [1,2,3]) console.log(i)', 'undefined', { line: 3 } ] ]; for (const [input, expected, options = {}] of testCases) {