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

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

Issue 2392303004: [parser] Remove obsolete ParseInfo::is_global flag. (Closed)
Patch Set: Also renumber flags. 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 | « test/cctest/asmjs/test-asm-typer.cc ('k') | test/fuzzer/parser.cc » ('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 840 matching lines...) Expand 10 before | Expand all | Expand 10 after
851 i::ScopedVector<char> program(kProgramByteSize + 1); 851 i::ScopedVector<char> program(kProgramByteSize + 1);
852 i::SNPrintF(program, "%s%s%s", surroundings[j].prefix, 852 i::SNPrintF(program, "%s%s%s", surroundings[j].prefix,
853 source_data[i].body, surroundings[j].suffix); 853 source_data[i].body, surroundings[j].suffix);
854 i::Handle<i::String> source = 854 i::Handle<i::String> source =
855 factory->NewStringFromUtf8(i::CStrVector(program.start())) 855 factory->NewStringFromUtf8(i::CStrVector(program.start()))
856 .ToHandleChecked(); 856 .ToHandleChecked();
857 i::Handle<i::Script> script = factory->NewScript(source); 857 i::Handle<i::Script> script = factory->NewScript(source);
858 i::Zone zone(CcTest::i_isolate()->allocator()); 858 i::Zone zone(CcTest::i_isolate()->allocator());
859 i::ParseInfo info(&zone, script); 859 i::ParseInfo info(&zone, script);
860 i::Parser parser(&info); 860 i::Parser parser(&info);
861 info.set_global();
862 CHECK(parser.Parse(&info)); 861 CHECK(parser.Parse(&info));
863 CHECK(i::Rewriter::Rewrite(&info)); 862 CHECK(i::Rewriter::Rewrite(&info));
864 i::DeclarationScope::Analyze(&info, i::AnalyzeMode::kRegular); 863 i::DeclarationScope::Analyze(&info, i::AnalyzeMode::kRegular);
865 CHECK(info.literal() != NULL); 864 CHECK(info.literal() != NULL);
866 865
867 i::DeclarationScope* script_scope = info.literal()->scope(); 866 i::DeclarationScope* script_scope = info.literal()->scope();
868 CHECK(script_scope->is_script_scope()); 867 CHECK(script_scope->is_script_scope());
869 868
870 i::Scope* scope = script_scope->inner_scope(); 869 i::Scope* scope = script_scope->inner_scope();
871 DCHECK_NOT_NULL(scope); 870 DCHECK_NOT_NULL(scope);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
907 full_source += "; }"; 906 full_source += "; }";
908 907
909 i::Handle<i::String> source_code = 908 i::Handle<i::String> source_code =
910 factory->NewStringFromUtf8(i::CStrVector(full_source.c_str())) 909 factory->NewStringFromUtf8(i::CStrVector(full_source.c_str()))
911 .ToHandleChecked(); 910 .ToHandleChecked();
912 911
913 i::Handle<i::Script> script = factory->NewScript(source_code); 912 i::Handle<i::Script> script = factory->NewScript(source_code);
914 913
915 i::ParseInfo info(handles.main_zone(), script); 914 i::ParseInfo info(handles.main_zone(), script);
916 i::Parser parser(&info); 915 i::Parser parser(&info);
917 info.set_global();
918 info.set_lazy(false); 916 info.set_lazy(false);
919 info.set_allow_lazy_parsing(false); 917 info.set_allow_lazy_parsing(false);
920 info.set_toplevel(true); 918 info.set_toplevel(true);
921 919
922 CHECK(i::Compiler::ParseAndAnalyze(&info)); 920 CHECK(i::Compiler::ParseAndAnalyze(&info));
923 921
924 CHECK(info.scope()->declarations()->length() == 1); 922 CHECK(info.scope()->declarations()->length() == 1);
925 i::FunctionLiteral* fun = 923 i::FunctionLiteral* fun =
926 info.scope()->declarations()->at(0)->AsFunctionDeclaration()->fun(); 924 info.scope()->declarations()->at(0)->AsFunctionDeclaration()->fun();
927 CHECK(fun->body()->length() == 1); 925 CHECK(fun->body()->length() == 1);
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
1172 1170
1173 // Parse program source. 1171 // Parse program source.
1174 i::Handle<i::String> source = factory->NewStringFromUtf8( 1172 i::Handle<i::String> source = factory->NewStringFromUtf8(
1175 i::CStrVector(program.start())).ToHandleChecked(); 1173 i::CStrVector(program.start())).ToHandleChecked();
1176 CHECK_EQ(source->length(), kProgramSize); 1174 CHECK_EQ(source->length(), kProgramSize);
1177 i::Handle<i::Script> script = factory->NewScript(source); 1175 i::Handle<i::Script> script = factory->NewScript(source);
1178 i::Zone zone(CcTest::i_isolate()->allocator()); 1176 i::Zone zone(CcTest::i_isolate()->allocator());
1179 i::ParseInfo info(&zone, script); 1177 i::ParseInfo info(&zone, script);
1180 i::Parser parser(&info); 1178 i::Parser parser(&info);
1181 parser.set_allow_lazy(true); 1179 parser.set_allow_lazy(true);
1182 info.set_global();
1183 info.set_language_mode(source_data[i].language_mode); 1180 info.set_language_mode(source_data[i].language_mode);
1184 parser.Parse(&info); 1181 parser.Parse(&info);
1185 CHECK(info.literal() != NULL); 1182 CHECK(info.literal() != NULL);
1186 1183
1187 // Check scope types and positions. 1184 // Check scope types and positions.
1188 i::Scope* scope = info.literal()->scope(); 1185 i::Scope* scope = info.literal()->scope();
1189 CHECK(scope->is_script_scope()); 1186 CHECK(scope->is_script_scope());
1190 CHECK_EQ(scope->start_position(), 0); 1187 CHECK_EQ(scope->start_position(), 0);
1191 CHECK_EQ(scope->end_position(), kProgramSize); 1188 CHECK_EQ(scope->end_position(), kProgramSize);
1192 1189
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
1367 bool preparse_error = log.HasError(); 1364 bool preparse_error = log.HasError();
1368 1365
1369 // Parse the data 1366 // Parse the data
1370 i::FunctionLiteral* function; 1367 i::FunctionLiteral* function;
1371 { 1368 {
1372 i::Handle<i::Script> script = factory->NewScript(source); 1369 i::Handle<i::Script> script = factory->NewScript(source);
1373 i::Zone zone(CcTest::i_isolate()->allocator()); 1370 i::Zone zone(CcTest::i_isolate()->allocator());
1374 i::ParseInfo info(&zone, script); 1371 i::ParseInfo info(&zone, script);
1375 i::Parser parser(&info); 1372 i::Parser parser(&info);
1376 SetParserFlags(&parser, flags); 1373 SetParserFlags(&parser, flags);
1377 if (is_module) { 1374 if (is_module) info.set_module();
1378 info.set_module();
1379 } else {
1380 info.set_global();
1381 }
1382 parser.Parse(&info); 1375 parser.Parse(&info);
1383 function = info.literal(); 1376 function = info.literal();
1384 if (function) { 1377 if (function) {
1385 parser_materialized_literals = function->materialized_literal_count(); 1378 parser_materialized_literals = function->materialized_literal_count();
1386 } 1379 }
1387 } 1380 }
1388 1381
1389 // Check that preparsing fails iff parsing fails. 1382 // Check that preparsing fails iff parsing fails.
1390 if (function == NULL) { 1383 if (function == NULL) {
1391 // Extract exception from the parser. 1384 // Extract exception from the parser.
(...skipping 4291 matching lines...) Expand 10 before | Expand all | Expand 10 after
5683 CHECK(false); 5676 CHECK(false);
5684 } 5677 }
5685 } 5678 }
5686 5679
5687 // And that parsing a script does not. 5680 // And that parsing a script does not.
5688 { 5681 {
5689 i::Handle<i::Script> script = factory->NewScript(source); 5682 i::Handle<i::Script> script = factory->NewScript(source);
5690 i::Zone zone(CcTest::i_isolate()->allocator()); 5683 i::Zone zone(CcTest::i_isolate()->allocator());
5691 i::ParseInfo info(&zone, script); 5684 i::ParseInfo info(&zone, script);
5692 i::Parser parser(&info); 5685 i::Parser parser(&info);
5693 info.set_global();
5694 CHECK(!parser.Parse(&info)); 5686 CHECK(!parser.Parse(&info));
5695 isolate->clear_pending_exception(); 5687 isolate->clear_pending_exception();
5696 } 5688 }
5697 } 5689 }
5698 } 5690 }
5699 5691
5700 5692
5701 TEST(ImportExportParsingErrors) { 5693 TEST(ImportExportParsingErrors) {
5702 // clang-format off 5694 // clang-format off
5703 const char* kErrorSources[] = { 5695 const char* kErrorSources[] = {
(...skipping 558 matching lines...) Expand 10 before | Expand all | Expand 10 after
6262 v8::Local<v8::Context> context = v8::Context::New(CcTest::isolate()); 6254 v8::Local<v8::Context> context = v8::Context::New(CcTest::isolate());
6263 v8::Context::Scope context_scope(context); 6255 v8::Context::Scope context_scope(context);
6264 isolate->stack_guard()->SetStackLimit(i::GetCurrentStackPosition() - 6256 isolate->stack_guard()->SetStackLimit(i::GetCurrentStackPosition() -
6265 128 * 1024); 6257 128 * 1024);
6266 6258
6267 i::Handle<i::Script> script = 6259 i::Handle<i::Script> script =
6268 factory->NewScript(factory->NewStringFromAsciiChecked(source)); 6260 factory->NewScript(factory->NewStringFromAsciiChecked(source));
6269 i::Zone zone(CcTest::i_isolate()->allocator()); 6261 i::Zone zone(CcTest::i_isolate()->allocator());
6270 i::ParseInfo info(&zone, script); 6262 i::ParseInfo info(&zone, script);
6271 i::Parser parser(&info); 6263 i::Parser parser(&info);
6272 info.set_global();
6273 parser.Parse(&info); 6264 parser.Parse(&info);
6274 CHECK(info.literal() != NULL); 6265 CHECK(info.literal() != NULL);
6275 CHECK_EQ(expected_language_mode, info.literal()->language_mode()); 6266 CHECK_EQ(expected_language_mode, info.literal()->language_mode());
6276 } 6267 }
6277 6268
6278 6269
6279 TEST(LanguageModeDirectives) { 6270 TEST(LanguageModeDirectives) {
6280 TestLanguageMode("\"use nothing\"", i::SLOPPY); 6271 TestLanguageMode("\"use nothing\"", i::SLOPPY);
6281 TestLanguageMode("\"use strict\"", i::STRICT); 6272 TestLanguageMode("\"use strict\"", i::STRICT);
6282 6273
(...skipping 2048 matching lines...) Expand 10 before | Expand all | Expand 10 after
8331 const char* data[] = { 8322 const char* data[] = {
8332 "const arguments = 1", 8323 "const arguments = 1",
8333 "let arguments", 8324 "let arguments",
8334 "var arguments", 8325 "var arguments",
8335 NULL 8326 NULL
8336 }; 8327 };
8337 // clang-format on 8328 // clang-format on
8338 RunParserSyncTest(context_data, data, kSuccess); 8329 RunParserSyncTest(context_data, data, kSuccess);
8339 } 8330 }
8340 } 8331 }
OLDNEW
« no previous file with comments | « test/cctest/asmjs/test-asm-typer.cc ('k') | test/fuzzer/parser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698