Index: test/cctest/test-parsing.cc |
diff --git a/test/cctest/test-parsing.cc b/test/cctest/test-parsing.cc |
index 92be55b91b8fc6bc9486e91a9b7c2b38db928a6d..f0abbc958f9a241f2270bc85864db9561817c34b 100644 |
--- a/test/cctest/test-parsing.cc |
+++ b/test/cctest/test-parsing.cc |
@@ -960,6 +960,7 @@ |
ARGUMENTS = 1, |
SUPER_PROPERTY = 1 << 1, |
THIS = 1 << 2, |
+ INNER_ARGUMENTS = 1 << 3, |
INNER_SUPER_PROPERTY = 1 << 4, |
}; |
@@ -1000,9 +1001,9 @@ |
{"return { m(x) { return () => super.m() } }", NONE}, |
// Flags must be correctly set when using block scoping. |
{"\"use strict\"; while (true) { let x; this, arguments; }", |
- ARGUMENTS | THIS}, |
+ INNER_ARGUMENTS | THIS}, |
{"\"use strict\"; while (true) { let x; this, super.f(), arguments; }", |
- ARGUMENTS | INNER_SUPER_PROPERTY | THIS}, |
+ INNER_ARGUMENTS | INNER_SUPER_PROPERTY | THIS}, |
{"\"use strict\"; if (foo()) { let x; this.f() }", THIS}, |
{"\"use strict\"; if (foo()) { let x; super.f() }", |
INNER_SUPER_PROPERTY}, |
@@ -1063,10 +1064,8 @@ |
CHECK_EQ(1, scope->inner_scopes()->length()); |
scope = scope->inner_scopes()->at(0); |
} |
- // Arguments usage in an arrow function doesn't cause local allocation of |
- // an arguments object. |
- CHECK_EQ((source_data[i].expected & ARGUMENTS) != 0 && j != 1, |
- scope->arguments() != nullptr); |
+ CHECK_EQ((source_data[i].expected & ARGUMENTS) != 0, |
+ scope->uses_arguments()); |
CHECK_EQ((source_data[i].expected & SUPER_PROPERTY) != 0, |
scope->uses_super_property()); |
if ((source_data[i].expected & THIS) != 0) { |
@@ -1074,6 +1073,8 @@ |
// script scope are marked as used. |
CHECK(scope->LookupThis()->is_used()); |
} |
+ CHECK_EQ((source_data[i].expected & INNER_ARGUMENTS) != 0, |
+ scope->inner_uses_arguments()); |
CHECK_EQ((source_data[i].expected & INNER_SUPER_PROPERTY) != 0, |
scope->inner_uses_super_property()); |
} |