| Index: test/cctest/test-parsing.cc
|
| diff --git a/test/cctest/test-parsing.cc b/test/cctest/test-parsing.cc
|
| index 48c4071087461489b6267896be70ec3ccebf011a..2a728c38e69ef07bb1ea133795663260ea912afa 100644
|
| --- a/test/cctest/test-parsing.cc
|
| +++ b/test/cctest/test-parsing.cc
|
| @@ -168,36 +168,32 @@ TEST(ScanHTMLEndComments) {
|
| for (int i = 0; tests[i]; i++) {
|
| const char* source = tests[i];
|
| auto stream = i::ScannerStream::ForTesting(source);
|
| - i::CompleteParserRecorder log;
|
| i::Scanner scanner(CcTest::i_isolate()->unicode_cache());
|
| scanner.Initialize(stream.get());
|
| 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, &log,
|
| - stack_limit);
|
| + i::PreParser preparser(&zone, &scanner, &ast_value_factory, stack_limit);
|
| preparser.set_allow_lazy(true);
|
| i::PreParser::PreParseResult result = preparser.PreParseProgram();
|
| CHECK_EQ(i::PreParser::kPreParseSuccess, result);
|
| - CHECK(!log.HasError());
|
| + CHECK(!preparser.logger()->has_error());
|
| }
|
|
|
| for (int i = 0; fail_tests[i]; i++) {
|
| const char* source = fail_tests[i];
|
| auto stream = i::ScannerStream::ForTesting(source);
|
| - i::CompleteParserRecorder log;
|
| i::Scanner scanner(CcTest::i_isolate()->unicode_cache());
|
| scanner.Initialize(stream.get());
|
| 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, &log,
|
| - stack_limit);
|
| + i::PreParser preparser(&zone, &scanner, &ast_value_factory, 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(log.HasError());
|
| + CHECK(preparser.logger()->has_error());
|
| }
|
| }
|
|
|
| @@ -358,20 +354,18 @@ TEST(StandAlonePreParser) {
|
| uintptr_t stack_limit = CcTest::i_isolate()->stack_guard()->real_climit();
|
| for (int i = 0; programs[i]; i++) {
|
| auto stream = i::ScannerStream::ForTesting(programs[i]);
|
| - i::CompleteParserRecorder log;
|
| i::Scanner scanner(CcTest::i_isolate()->unicode_cache());
|
| scanner.Initialize(stream.get());
|
|
|
| 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, &log,
|
| - stack_limit);
|
| + i::PreParser preparser(&zone, &scanner, &ast_value_factory, 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(!log.HasError());
|
| + CHECK(!preparser.logger()->has_error());
|
| }
|
| }
|
|
|
| @@ -391,7 +385,6 @@ TEST(StandAlonePreParserNoNatives) {
|
| uintptr_t stack_limit = CcTest::i_isolate()->stack_guard()->real_climit();
|
| for (int i = 0; programs[i]; i++) {
|
| auto stream = i::ScannerStream::ForTesting(programs[i]);
|
| - i::CompleteParserRecorder log;
|
| i::Scanner scanner(CcTest::i_isolate()->unicode_cache());
|
| scanner.Initialize(stream.get());
|
|
|
| @@ -399,12 +392,11 @@ 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, &log,
|
| - stack_limit);
|
| + i::PreParser preparser(&zone, &scanner, &ast_value_factory, stack_limit);
|
| preparser.set_allow_lazy(true);
|
| i::PreParser::PreParseResult result = preparser.PreParseProgram();
|
| CHECK_EQ(i::PreParser::kPreParseSuccess, result);
|
| - CHECK(log.HasError());
|
| + CHECK(preparser.logger()->has_error());
|
| }
|
| }
|
|
|
| @@ -460,19 +452,18 @@ TEST(RegressChromium62639) {
|
| // failed in debug mode, and sometimes crashed in release mode.
|
|
|
| auto stream = i::ScannerStream::ForTesting(program);
|
| - i::CompleteParserRecorder log;
|
| i::Scanner scanner(CcTest::i_isolate()->unicode_cache());
|
| scanner.Initialize(stream.get());
|
| 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, &log,
|
| + i::PreParser preparser(&zone, &scanner, &ast_value_factory,
|
| 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(log.HasError());
|
| + CHECK(preparser.logger()->has_error());
|
| }
|
|
|
|
|
| @@ -533,15 +524,13 @@ TEST(PreParseOverflow) {
|
| uintptr_t stack_limit = CcTest::i_isolate()->stack_guard()->real_climit();
|
|
|
| auto stream = i::ScannerStream::ForTesting(program.get(), kProgramSize);
|
| - i::CompleteParserRecorder log;
|
| i::Scanner scanner(CcTest::i_isolate()->unicode_cache());
|
| scanner.Initialize(stream.get());
|
|
|
| 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, &log,
|
| - stack_limit);
|
| + i::PreParser preparser(&zone, &scanner, &ast_value_factory, stack_limit);
|
| preparser.set_allow_lazy(true);
|
| i::PreParser::PreParseResult result = preparser.PreParseProgram();
|
| CHECK_EQ(i::PreParser::kPreParseStackOverflow, result);
|
| @@ -1360,13 +1349,18 @@ 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, &log,
|
| - stack_limit);
|
| + i::PreParser preparser(&zone, &scanner, &ast_value_factory, 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::SingletonLogger* 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();
|
|
|
|
|