| Index: test/cctest/test-parsing.cc
|
| diff --git a/test/cctest/test-parsing.cc b/test/cctest/test-parsing.cc
|
| index dd3dc0625bb890b50983f67f4bdd29f2d718306e..765774c82127bfbb5ccd4492f6bd2e6f7b93163b 100644
|
| --- a/test/cctest/test-parsing.cc
|
| +++ b/test/cctest/test-parsing.cc
|
| @@ -43,6 +43,7 @@
|
| #include "src/objects.h"
|
| #include "src/parsing/parse-info.h"
|
| #include "src/parsing/parser.h"
|
| +#include "src/parsing/parsing.h"
|
| #include "src/parsing/preparser.h"
|
| #include "src/parsing/rewriter.h"
|
| #include "src/parsing/scanner-character-streams.h"
|
| @@ -819,8 +820,7 @@ TEST(ScopeUsesArgumentsSuperThis) {
|
| i::ParseInfo info(&zone, script);
|
| // The information we're checking is only produced when eager parsing.
|
| info.set_allow_lazy_parsing(false);
|
| - i::Parser parser(&info);
|
| - CHECK(parser.Parse(&info));
|
| + CHECK(i::parsing::ParseProgram(&info));
|
| CHECK(i::Rewriter::Rewrite(&info));
|
| i::DeclarationScope::Analyze(&info, i::AnalyzeMode::kRegular);
|
| CHECK(info.literal() != NULL);
|
| @@ -1173,9 +1173,8 @@ TEST(ScopePositions) {
|
| i::Handle<i::Script> script = factory->NewScript(source);
|
| i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
|
| i::ParseInfo info(&zone, script);
|
| - i::Parser parser(&info);
|
| info.set_language_mode(source_data[i].language_mode);
|
| - parser.Parse(&info);
|
| + i::parsing::ParseProgram(&info);
|
| CHECK_NOT_NULL(info.literal());
|
|
|
| // Check scope types and positions.
|
| @@ -1221,8 +1220,7 @@ TEST(DiscardFunctionBody) {
|
| i::Handle<i::Script> script = factory->NewScript(source_code);
|
| i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
|
| i::ParseInfo info(&zone, script);
|
| - i::Parser parser(&info);
|
| - parser.Parse(&info);
|
| + i::parsing::ParseProgram(&info);
|
| function = info.literal();
|
| CHECK_NOT_NULL(function);
|
| CHECK_NOT_NULL(function->body());
|
| @@ -1287,9 +1285,17 @@ enum ParserSyncTestResult {
|
| kError
|
| };
|
|
|
| -template <typename Traits>
|
| -void SetParserFlags(i::ParserBase<Traits>* parser,
|
| - i::EnumSet<ParserFlag> flags) {
|
| +void SetGlobalFlags(i::EnumSet<ParserFlag> flags) {
|
| + i::FLAG_allow_natives_syntax = flags.Contains(kAllowNatives);
|
| + i::FLAG_harmony_function_sent = flags.Contains(kAllowHarmonyFunctionSent);
|
| + i::FLAG_harmony_async_await = flags.Contains(kAllowHarmonyAsyncAwait);
|
| + i::FLAG_harmony_restrictive_generators =
|
| + flags.Contains(kAllowHarmonyRestrictiveGenerators);
|
| + i::FLAG_harmony_trailing_commas = flags.Contains(kAllowHarmonyTrailingCommas);
|
| + i::FLAG_harmony_class_fields = flags.Contains(kAllowHarmonyClassFields);
|
| +}
|
| +
|
| +void SetParserFlags(i::PreParser* parser, i::EnumSet<ParserFlag> flags) {
|
| parser->set_allow_natives(flags.Contains(kAllowNatives));
|
| parser->set_allow_harmony_function_sent(
|
| flags.Contains(kAllowHarmonyFunctionSent));
|
| @@ -1303,7 +1309,6 @@ void SetParserFlags(i::ParserBase<Traits>* parser,
|
| flags.Contains(kAllowHarmonyClassFields));
|
| }
|
|
|
| -
|
| void TestParserSyncWithFlags(i::Handle<i::String> source,
|
| i::EnumSet<ParserFlag> flags,
|
| ParserSyncTestResult result,
|
| @@ -1342,10 +1347,9 @@ void TestParserSyncWithFlags(i::Handle<i::String> source,
|
| i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
|
| i::ParseInfo info(&zone, script);
|
| info.set_allow_lazy_parsing(flags.Contains(kAllowLazy));
|
| - i::Parser parser(&info);
|
| - SetParserFlags(&parser, flags);
|
| + SetGlobalFlags(flags);
|
| if (is_module) info.set_module();
|
| - parser.Parse(&info);
|
| + i::parsing::ParseProgram(&info);
|
| function = info.literal();
|
| if (function) {
|
| parser_materialized_literals = function->materialized_literal_count();
|
| @@ -2477,7 +2481,7 @@ TEST(DontRegressPreParserDataSizes) {
|
| i::ScriptData* sd = NULL;
|
| info.set_cached_data(&sd);
|
| info.set_compile_options(v8::ScriptCompiler::kProduceParserCache);
|
| - i::Parser::ParseStatic(&info);
|
| + i::parsing::ParseProgram(&info);
|
| i::ParseData* pd = i::ParseData::FromCachedData(sd);
|
|
|
| if (pd->FunctionCount() != test_cases[i].functions) {
|
| @@ -3363,6 +3367,7 @@ TEST(InnerAssignment) {
|
| i::Handle<i::JSFunction> f = i::Handle<i::JSFunction>::cast(o);
|
| i::Handle<i::SharedFunctionInfo> shared = i::handle(f->shared());
|
| info = std::unique_ptr<i::ParseInfo>(new i::ParseInfo(&zone, shared));
|
| + CHECK(i::parsing::ParseFunction(info.get()));
|
| } else {
|
| i::Handle<i::String> source =
|
| factory->InternalizeUtf8String(program.start());
|
| @@ -3371,9 +3376,8 @@ TEST(InnerAssignment) {
|
| i::Handle<i::Script> script = factory->NewScript(source);
|
| info = std::unique_ptr<i::ParseInfo>(new i::ParseInfo(&zone, script));
|
| info->set_allow_lazy_parsing(false);
|
| + CHECK(i::parsing::ParseProgram(info.get()));
|
| }
|
| - i::Parser parser(info.get());
|
| - CHECK(parser.Parse(info.get()));
|
| CHECK(i::Compiler::Analyze(info.get()));
|
| CHECK(info->literal() != NULL);
|
|
|
| @@ -5736,9 +5740,8 @@ TEST(BasicImportExportParsing) {
|
| i::Handle<i::Script> script = factory->NewScript(source);
|
| i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
|
| i::ParseInfo info(&zone, script);
|
| - i::Parser parser(&info);
|
| info.set_module();
|
| - if (!parser.Parse(&info)) {
|
| + if (!i::parsing::ParseProgram(&info)) {
|
| i::Handle<i::JSObject> exception_handle(
|
| i::JSObject::cast(isolate->pending_exception()));
|
| i::Handle<i::String> message_string = i::Handle<i::String>::cast(
|
| @@ -5762,8 +5765,7 @@ TEST(BasicImportExportParsing) {
|
| i::Handle<i::Script> script = factory->NewScript(source);
|
| i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
|
| i::ParseInfo info(&zone, script);
|
| - i::Parser parser(&info);
|
| - CHECK(!parser.Parse(&info));
|
| + CHECK(!i::parsing::ParseProgram(&info));
|
| isolate->clear_pending_exception();
|
| }
|
| }
|
| @@ -5854,9 +5856,8 @@ TEST(ImportExportParsingErrors) {
|
| i::Handle<i::Script> script = factory->NewScript(source);
|
| i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
|
| i::ParseInfo info(&zone, script);
|
| - i::Parser parser(&info);
|
| info.set_module();
|
| - CHECK(!parser.Parse(&info));
|
| + CHECK(!i::parsing::ParseProgram(&info));
|
| isolate->clear_pending_exception();
|
| }
|
| }
|
| @@ -5892,9 +5893,8 @@ TEST(ModuleTopLevelFunctionDecl) {
|
| i::Handle<i::Script> script = factory->NewScript(source);
|
| i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
|
| i::ParseInfo info(&zone, script);
|
| - i::Parser parser(&info);
|
| info.set_module();
|
| - CHECK(!parser.Parse(&info));
|
| + CHECK(!i::parsing::ParseProgram(&info));
|
| isolate->clear_pending_exception();
|
| }
|
| }
|
| @@ -6091,9 +6091,8 @@ TEST(ModuleParsingInternals) {
|
| i::Handle<i::Script> script = factory->NewScript(source);
|
| i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
|
| i::ParseInfo info(&zone, script);
|
| - i::Parser parser(&info);
|
| info.set_module();
|
| - CHECK(parser.Parse(&info));
|
| + CHECK(i::parsing::ParseProgram(&info));
|
| CHECK(i::Compiler::Analyze(&info));
|
| i::FunctionLiteral* func = info.literal();
|
| i::ModuleScope* module_scope = func->scope()->AsModuleScope();
|
| @@ -6352,8 +6351,7 @@ void TestLanguageMode(const char* source,
|
| factory->NewScript(factory->NewStringFromAsciiChecked(source));
|
| i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
|
| i::ParseInfo info(&zone, script);
|
| - i::Parser parser(&info);
|
| - parser.Parse(&info);
|
| + i::parsing::ParseProgram(&info);
|
| CHECK(info.literal() != NULL);
|
| CHECK_EQ(expected_language_mode, info.literal()->language_mode());
|
| }
|
|
|