| Index: test/cctest/interpreter/test-bytecode-generator.cc
|
| diff --git a/test/cctest/interpreter/test-bytecode-generator.cc b/test/cctest/interpreter/test-bytecode-generator.cc
|
| index 85c1c43874058dbfcc29eb75f95a21baf67504dd..5ee0a6fc3caf8216a320be5e803d222eeef4aaa0 100644
|
| --- a/test/cctest/interpreter/test-bytecode-generator.cc
|
| +++ b/test/cctest/interpreter/test-bytecode-generator.cc
|
| @@ -2371,6 +2371,45 @@ TEST(NewAndSpread) {
|
| LoadGolden("NewAndSpread.golden")));
|
| }
|
|
|
| +TEST(ForAwaitOf) {
|
| + bool old_flag = i::FLAG_harmony_async_iteration;
|
| + i::FLAG_harmony_async_iteration = true;
|
| + InitializedIgnitionHandleScope scope;
|
| + BytecodeExpectationsPrinter printer(CcTest::isolate());
|
| + printer.set_wrap(false);
|
| + printer.set_test_function_name("f");
|
| +
|
| + const char* snippets[] = {
|
| + "async function f() {\n"
|
| + " for await (let x of [1, 2, 3]) {}\n"
|
| + "}\n"
|
| + "f();\n",
|
| +
|
| + "async function f() {\n"
|
| + " for await (let x of [1, 2, 3]) { return x; }\n"
|
| + "}\n"
|
| + "f();\n",
|
| +
|
| + "async function f() {\n"
|
| + " for await (let x of [10, 20, 30]) {\n"
|
| + " if (x == 10) continue;\n"
|
| + " if (x == 20) break;\n"
|
| + " }\n"
|
| + "}\n"
|
| + "f();\n",
|
| +
|
| + "async function f() {\n"
|
| + " var x = { 'a': 1, 'b': 2 };\n"
|
| + " for (x['a'] of [1,2,3]) { return x['a']; }\n"
|
| + "}\n"
|
| + "f();\n"};
|
| +
|
| + CHECK(CompareTexts(BuildActual(printer, snippets),
|
| + LoadGolden("ForAwaitOf.golden")));
|
| +
|
| + i::FLAG_harmony_async_iteration = old_flag;
|
| +}
|
| +
|
| } // namespace interpreter
|
| } // namespace internal
|
| } // namespace v8
|
|
|