Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(246)

Side by Side Diff: test/cctest/test-parsing.cc

Issue 2407863003: Remove --harmony-for-in flag which is always false (Closed)
Patch Set: Migrate tests Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/parsing/parser-base.h ('k') | test/mjsunit/for-in.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 1280 matching lines...) Expand 10 before | Expand all | Expand 10 after
1291 1291
1292 data.Dispose(); 1292 data.Dispose();
1293 return i::MessageTemplate::FormatMessage(isolate, message, arg_object); 1293 return i::MessageTemplate::FormatMessage(isolate, message, arg_object);
1294 } 1294 }
1295 1295
1296 enum ParserFlag { 1296 enum ParserFlag {
1297 kAllowLazy, 1297 kAllowLazy,
1298 kAllowNatives, 1298 kAllowNatives,
1299 kAllowHarmonyFunctionSent, 1299 kAllowHarmonyFunctionSent,
1300 kAllowHarmonyRestrictiveDeclarations, 1300 kAllowHarmonyRestrictiveDeclarations,
1301 kAllowHarmonyForIn,
1302 kAllowHarmonyAsyncAwait, 1301 kAllowHarmonyAsyncAwait,
1303 kAllowHarmonyRestrictiveGenerators, 1302 kAllowHarmonyRestrictiveGenerators,
1304 kAllowHarmonyTrailingCommas, 1303 kAllowHarmonyTrailingCommas,
1305 kAllowHarmonyClassFields, 1304 kAllowHarmonyClassFields,
1306 }; 1305 };
1307 1306
1308 enum ParserSyncTestResult { 1307 enum ParserSyncTestResult {
1309 kSuccessOrError, 1308 kSuccessOrError,
1310 kSuccess, 1309 kSuccess,
1311 kError 1310 kError
1312 }; 1311 };
1313 1312
1314 template <typename Traits> 1313 template <typename Traits>
1315 void SetParserFlags(i::ParserBase<Traits>* parser, 1314 void SetParserFlags(i::ParserBase<Traits>* parser,
1316 i::EnumSet<ParserFlag> flags) { 1315 i::EnumSet<ParserFlag> flags) {
1317 parser->set_allow_lazy(flags.Contains(kAllowLazy)); 1316 parser->set_allow_lazy(flags.Contains(kAllowLazy));
1318 parser->set_allow_natives(flags.Contains(kAllowNatives)); 1317 parser->set_allow_natives(flags.Contains(kAllowNatives));
1319 parser->set_allow_harmony_function_sent( 1318 parser->set_allow_harmony_function_sent(
1320 flags.Contains(kAllowHarmonyFunctionSent)); 1319 flags.Contains(kAllowHarmonyFunctionSent));
1321 parser->set_allow_harmony_restrictive_declarations( 1320 parser->set_allow_harmony_restrictive_declarations(
1322 flags.Contains(kAllowHarmonyRestrictiveDeclarations)); 1321 flags.Contains(kAllowHarmonyRestrictiveDeclarations));
1323 parser->set_allow_harmony_for_in(flags.Contains(kAllowHarmonyForIn));
1324 parser->set_allow_harmony_async_await( 1322 parser->set_allow_harmony_async_await(
1325 flags.Contains(kAllowHarmonyAsyncAwait)); 1323 flags.Contains(kAllowHarmonyAsyncAwait));
1326 parser->set_allow_harmony_restrictive_generators( 1324 parser->set_allow_harmony_restrictive_generators(
1327 flags.Contains(kAllowHarmonyRestrictiveGenerators)); 1325 flags.Contains(kAllowHarmonyRestrictiveGenerators));
1328 parser->set_allow_harmony_trailing_commas( 1326 parser->set_allow_harmony_trailing_commas(
1329 flags.Contains(kAllowHarmonyTrailingCommas)); 1327 flags.Contains(kAllowHarmonyTrailingCommas));
1330 parser->set_allow_harmony_class_fields( 1328 parser->set_allow_harmony_class_fields(
1331 flags.Contains(kAllowHarmonyClassFields)); 1329 flags.Contains(kAllowHarmonyClassFields));
1332 } 1330 }
1333 1331
(...skipping 6775 matching lines...) Expand 10 before | Expand all | Expand 10 after
8109 // clang-format on 8107 // clang-format on
8110 8108
8111 static const ParserFlag always_flags[] = {kAllowHarmonyAsyncAwait}; 8109 static const ParserFlag always_flags[] = {kAllowHarmonyAsyncAwait};
8112 RunModuleParserSyncTest(context_data, error_data, kError, NULL, 0, 8110 RunModuleParserSyncTest(context_data, error_data, kError, NULL, 0,
8113 always_flags, arraysize(always_flags), NULL, 0, 8111 always_flags, arraysize(always_flags), NULL, 0,
8114 false); 8112 false);
8115 } 8113 }
8116 8114
8117 TEST(RestrictiveForInErrors) { 8115 TEST(RestrictiveForInErrors) {
8118 // clang-format off 8116 // clang-format off
8119 const char* context_data[][2] = { 8117 const char* strict_context_data[][2] = {
8120 { "'use strict'", "" }, 8118 { "'use strict'", "" },
8119 { NULL, NULL }
8120 };
8121 const char* sloppy_context_data[][2] = {
8121 { "", "" }, 8122 { "", "" },
8122 { NULL, NULL } 8123 { NULL, NULL }
8123 }; 8124 };
8124 const char* error_data[] = { 8125 const char* error_data[] = {
8125 "for (var x = 0 in {});",
8126 "for (const x = 0 in {});", 8126 "for (const x = 0 in {});",
8127 "for (let x = 0 in {});", 8127 "for (let x = 0 in {});",
8128 NULL 8128 NULL
8129 }; 8129 };
8130 const char* sloppy_data[] = {
8131 "for (var x = 0 in {});",
8132 NULL
8133 };
8130 // clang-format on 8134 // clang-format on
8131 8135
8132 static const ParserFlag always_flags[] = {kAllowHarmonyForIn}; 8136 RunParserSyncTest(strict_context_data, error_data, kError);
8133 RunParserSyncTest(context_data, error_data, kError, nullptr, 0, always_flags, 8137 RunParserSyncTest(strict_context_data, sloppy_data, kError);
8134 arraysize(always_flags)); 8138 RunParserSyncTest(sloppy_context_data, error_data, kError);
8139 RunParserSyncTest(sloppy_context_data, sloppy_data, kSuccess);
8135 } 8140 }
8136 8141
8137 TEST(NoDuplicateGeneratorsInBlock) { 8142 TEST(NoDuplicateGeneratorsInBlock) {
8138 const char* block_context_data[][2] = { 8143 const char* block_context_data[][2] = {
8139 {"'use strict'; {", "}"}, 8144 {"'use strict'; {", "}"},
8140 {"{", "}"}, 8145 {"{", "}"},
8141 {"(function() { {", "} })()"}, 8146 {"(function() { {", "} })()"},
8142 {"(function() {'use strict'; {", "} })()"}, 8147 {"(function() {'use strict'; {", "} })()"},
8143 {NULL, NULL}}; 8148 {NULL, NULL}};
8144 const char* top_level_context_data[][2] = { 8149 const char* top_level_context_data[][2] = {
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
8322 const char* data[] = { 8327 const char* data[] = {
8323 "const arguments = 1", 8328 "const arguments = 1",
8324 "let arguments", 8329 "let arguments",
8325 "var arguments", 8330 "var arguments",
8326 NULL 8331 NULL
8327 }; 8332 };
8328 // clang-format on 8333 // clang-format on
8329 RunParserSyncTest(context_data, data, kSuccess); 8334 RunParserSyncTest(context_data, data, kSuccess);
8330 } 8335 }
8331 } 8336 }
OLDNEW
« no previous file with comments | « src/parsing/parser-base.h ('k') | test/mjsunit/for-in.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698