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

Unified Diff: test/cctest/test-parsing.cc

Issue 2502633002: [parser] Only log messages using the pending error handling (Closed)
Patch Set: Delete more unused code Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: test/cctest/test-parsing.cc
diff --git a/test/cctest/test-parsing.cc b/test/cctest/test-parsing.cc
index ef978fee9f3500017e404decfbeae6b328f8e6c8..d0b5f18865140a9afa4ccd2501dbbef135a06b3c 100644
--- a/test/cctest/test-parsing.cc
+++ b/test/cctest/test-parsing.cc
@@ -173,11 +173,13 @@ TEST(ScanHTMLEndComments) {
i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
i::AstValueFactory ast_value_factory(
&zone, CcTest::i_isolate()->heap()->HashSeed());
- i::PreParser preparser(&zone, &scanner, &ast_value_factory, stack_limit);
+ i::PendingCompilationErrorHandler pending_error_handler;
+ i::PreParser preparser(&zone, &scanner, &ast_value_factory,
+ &pending_error_handler, stack_limit);
preparser.set_allow_lazy(true);
i::PreParser::PreParseResult result = preparser.PreParseProgram();
CHECK_EQ(i::PreParser::kPreParseSuccess, result);
- CHECK(!preparser.logger()->has_error());
+ CHECK(!pending_error_handler.has_pending_error());
}
for (int i = 0; fail_tests[i]; i++) {
@@ -188,12 +190,14 @@ TEST(ScanHTMLEndComments) {
i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
i::AstValueFactory ast_value_factory(
&zone, CcTest::i_isolate()->heap()->HashSeed());
- i::PreParser preparser(&zone, &scanner, &ast_value_factory, stack_limit);
+ i::PendingCompilationErrorHandler pending_error_handler;
+ i::PreParser preparser(&zone, &scanner, &ast_value_factory,
+ &pending_error_handler, stack_limit);
preparser.set_allow_lazy(true);
i::PreParser::PreParseResult result = preparser.PreParseProgram();
// Even in the case of a syntax error, kPreParseSuccess is returned.
CHECK_EQ(i::PreParser::kPreParseSuccess, result);
- CHECK(preparser.logger()->has_error());
+ CHECK(pending_error_handler.has_pending_error());
}
}
@@ -360,12 +364,14 @@ TEST(StandAlonePreParser) {
i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
i::AstValueFactory ast_value_factory(
&zone, CcTest::i_isolate()->heap()->HashSeed());
- i::PreParser preparser(&zone, &scanner, &ast_value_factory, stack_limit);
+ i::PendingCompilationErrorHandler pending_error_handler;
+ i::PreParser preparser(&zone, &scanner, &ast_value_factory,
+ &pending_error_handler, stack_limit);
preparser.set_allow_lazy(true);
preparser.set_allow_natives(true);
i::PreParser::PreParseResult result = preparser.PreParseProgram();
CHECK_EQ(i::PreParser::kPreParseSuccess, result);
- CHECK(!preparser.logger()->has_error());
+ CHECK(!pending_error_handler.has_pending_error());
}
}
@@ -392,11 +398,13 @@ TEST(StandAlonePreParserNoNatives) {
i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
i::AstValueFactory ast_value_factory(
&zone, CcTest::i_isolate()->heap()->HashSeed());
- i::PreParser preparser(&zone, &scanner, &ast_value_factory, stack_limit);
+ i::PendingCompilationErrorHandler pending_error_handler;
+ i::PreParser preparser(&zone, &scanner, &ast_value_factory,
+ &pending_error_handler, stack_limit);
preparser.set_allow_lazy(true);
i::PreParser::PreParseResult result = preparser.PreParseProgram();
CHECK_EQ(i::PreParser::kPreParseSuccess, result);
- CHECK(preparser.logger()->has_error());
+ CHECK(pending_error_handler.has_pending_error());
}
}
@@ -457,13 +465,15 @@ TEST(RegressChromium62639) {
i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
i::AstValueFactory ast_value_factory(&zone,
CcTest::i_isolate()->heap()->HashSeed());
+ i::PendingCompilationErrorHandler pending_error_handler;
i::PreParser preparser(&zone, &scanner, &ast_value_factory,
+ &pending_error_handler,
CcTest::i_isolate()->stack_guard()->real_climit());
preparser.set_allow_lazy(true);
i::PreParser::PreParseResult result = preparser.PreParseProgram();
// Even in the case of a syntax error, kPreParseSuccess is returned.
CHECK_EQ(i::PreParser::kPreParseSuccess, result);
- CHECK(preparser.logger()->has_error());
+ CHECK(pending_error_handler.has_pending_error());
}
@@ -530,7 +540,9 @@ TEST(PreParseOverflow) {
i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
i::AstValueFactory ast_value_factory(&zone,
CcTest::i_isolate()->heap()->HashSeed());
- i::PreParser preparser(&zone, &scanner, &ast_value_factory, stack_limit);
+ i::PendingCompilationErrorHandler pending_error_handler;
+ i::PreParser preparser(&zone, &scanner, &ast_value_factory,
+ &pending_error_handler, stack_limit);
preparser.set_allow_lazy(true);
i::PreParser::PreParseResult result = preparser.PreParseProgram();
CHECK_EQ(i::PreParser::kPreParseStackOverflow, result);
@@ -1270,27 +1282,6 @@ const char* ReadString(unsigned* start) {
}
-i::Handle<i::String> FormatMessage(i::Vector<unsigned> data) {
- i::Isolate* isolate = CcTest::i_isolate();
- int message = data[i::PreparseDataConstants::kMessageTemplatePos];
- int arg_count = data[i::PreparseDataConstants::kMessageArgCountPos];
- i::Handle<i::Object> arg_object;
- if (arg_count == 1) {
- // Position after text found by skipping past length field and
- // length field content words.
- const char* arg =
- ReadString(&data[i::PreparseDataConstants::kMessageArgPos]);
- arg_object = v8::Utils::OpenHandle(*v8_str(arg));
- i::DeleteArray(arg);
- } else {
- CHECK_EQ(0, arg_count);
- arg_object = isolate->factory()->undefined_value();
- }
-
- data.Dispose();
- return i::MessageTemplate::FormatMessage(isolate, message, arg_object);
-}
-
enum ParserFlag {
kAllowLazy,
kAllowNatives,
@@ -1338,7 +1329,7 @@ void TestParserSyncWithFlags(i::Handle<i::String> source,
int parser_materialized_literals = -2;
// Preparse the data.
- i::ParserLogger log;
+ i::PendingCompilationErrorHandler pending_error_handler;
if (test_preparser) {
i::Scanner scanner(isolate->unicode_cache());
std::unique_ptr<i::Utf16CharacterStream> stream(
@@ -1346,20 +1337,14 @@ void TestParserSyncWithFlags(i::Handle<i::String> source,
i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
i::AstValueFactory ast_value_factory(
&zone, CcTest::i_isolate()->heap()->HashSeed());
- i::PreParser preparser(&zone, &scanner, &ast_value_factory, stack_limit);
+ i::PreParser preparser(&zone, &scanner, &ast_value_factory,
+ &pending_error_handler, stack_limit);
SetParserFlags(&preparser, flags);
scanner.Initialize(stream.get());
i::PreParser::PreParseResult result =
preparser.PreParseProgram(&preparser_materialized_literals, is_module);
CHECK_EQ(i::PreParser::kPreParseSuccess, result);
- i::PreParserLogger* logger = preparser.logger();
- // Convert to complete log.
- if (logger->has_error()) {
- log.LogMessage(logger->start(), logger->end(), logger->message(),
- logger->argument_opt(), logger->error_type());
- }
}
- bool preparse_error = log.HasError();
// Parse the data
i::FunctionLiteral* function;
@@ -1399,7 +1384,7 @@ void TestParserSyncWithFlags(i::Handle<i::String> source,
CHECK(false);
}
- if (test_preparser && !preparse_error) {
+ if (test_preparser && !pending_error_handler.has_pending_error()) {
v8::base::OS::Print(
"Parser failed on:\n"
"\t%s\n"
@@ -1412,7 +1397,7 @@ void TestParserSyncWithFlags(i::Handle<i::String> source,
// Check that preparser and parser produce the same error.
if (test_preparser) {
i::Handle<i::String> preparser_message =
- FormatMessage(log.ErrorMessageData());
+ pending_error_handler.FormatMessage(CcTest::i_isolate());
if (!i::String::Equals(message_string, preparser_message)) {
v8::base::OS::Print(
"Expected parser and preparser to produce the same error on:\n"
@@ -1425,7 +1410,7 @@ void TestParserSyncWithFlags(i::Handle<i::String> source,
CHECK(false);
}
}
- } else if (test_preparser && preparse_error) {
+ } else if (test_preparser && pending_error_handler.has_pending_error()) {
v8::base::OS::Print(
"Preparser failed on:\n"
"\t%s\n"
@@ -1433,7 +1418,9 @@ void TestParserSyncWithFlags(i::Handle<i::String> source,
"\t%s\n"
"However, the parser succeeded",
source->ToCString().get(),
- FormatMessage(log.ErrorMessageData())->ToCString().get());
+ pending_error_handler.FormatMessage(CcTest::i_isolate())
+ ->ToCString()
+ .get());
CHECK(false);
} else if (result == kError) {
v8::base::OS::Print(
« src/pending-compilation-error-handler.cc ('K') | « src/pending-compilation-error-handler.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698