| Index: test/cctest/test-parsing.cc
|
| diff --git a/test/cctest/test-parsing.cc b/test/cctest/test-parsing.cc
|
| index 290b3e39b3c6c88ba475d2dc9f29f7de8a0e1079..00b07328e588e2e19847022cb92cf4e9c6015c87 100644
|
| --- a/test/cctest/test-parsing.cc
|
| +++ b/test/cctest/test-parsing.cc
|
| @@ -804,7 +804,8 @@
|
| factory->NewStringFromUtf8(i::CStrVector(program.start()))
|
| .ToHandleChecked();
|
| i::Handle<i::Script> script = factory->NewScript(source);
|
| - i::ParseInfo info(script);
|
| + i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
|
| + i::ParseInfo info(&zone, script);
|
| // The information we're checking is only produced when eager parsing.
|
| info.set_allow_lazy_parsing(false);
|
| CHECK(i::parsing::ParseProgram(&info));
|
| @@ -860,7 +861,7 @@
|
|
|
| i::Handle<i::Script> script = factory->NewScript(source_code);
|
|
|
| - i::ParseInfo info(script);
|
| + i::ParseInfo info(handles.main_zone(), script);
|
| i::Parser parser(&info);
|
| info.set_allow_lazy_parsing(false);
|
| info.set_toplevel(true);
|
| @@ -1158,7 +1159,8 @@
|
| i::CStrVector(program.start())).ToHandleChecked();
|
| CHECK_EQ(source->length(), kProgramSize);
|
| i::Handle<i::Script> script = factory->NewScript(source);
|
| - i::ParseInfo info(script);
|
| + i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
|
| + i::ParseInfo info(&zone, script);
|
| info.set_language_mode(source_data[i].language_mode);
|
| i::parsing::ParseProgram(&info);
|
| CHECK_NOT_NULL(info.literal());
|
| @@ -1204,7 +1206,8 @@
|
| i::Handle<i::String> source_code =
|
| factory->NewStringFromUtf8(i::CStrVector(source)).ToHandleChecked();
|
| i::Handle<i::Script> script = factory->NewScript(source_code);
|
| - i::ParseInfo info(script);
|
| + i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
|
| + i::ParseInfo info(&zone, script);
|
| i::parsing::ParseProgram(&info);
|
| function = info.literal();
|
| CHECK_NOT_NULL(function);
|
| @@ -1334,7 +1337,8 @@
|
| i::FunctionLiteral* function;
|
| {
|
| i::Handle<i::Script> script = factory->NewScript(source);
|
| - i::ParseInfo info(script);
|
| + i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
|
| + i::ParseInfo info(&zone, script);
|
| info.set_allow_lazy_parsing(flags.Contains(kAllowLazy));
|
| SetGlobalFlags(flags);
|
| if (is_module) info.set_module();
|
| @@ -2461,7 +2465,8 @@
|
| i::Handle<i::String> source =
|
| factory->NewStringFromUtf8(i::CStrVector(program)).ToHandleChecked();
|
| i::Handle<i::Script> script = factory->NewScript(source);
|
| - i::ParseInfo info(script);
|
| + i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
|
| + i::ParseInfo info(&zone, script);
|
| i::ScriptData* sd = NULL;
|
| info.set_cached_data(&sd);
|
| info.set_compile_options(v8::ScriptCompiler::kProduceParserCache);
|
| @@ -3348,6 +3353,7 @@
|
| i::SNPrintF(program, "%s%s%s%s%s", prefix, outer, midfix, inner,
|
| suffix);
|
|
|
| + i::Zone zone(isolate->allocator(), ZONE_NAME);
|
| std::unique_ptr<i::ParseInfo> info;
|
| if (lazy) {
|
| printf("%s\n", program.start());
|
| @@ -3355,7 +3361,7 @@
|
| i::Handle<i::Object> o = v8::Utils::OpenHandle(*v);
|
| 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(shared));
|
| + info = std::unique_ptr<i::ParseInfo>(new i::ParseInfo(&zone, shared));
|
| CHECK(i::parsing::ParseFunction(info.get()));
|
| } else {
|
| i::Handle<i::String> source =
|
| @@ -3363,7 +3369,7 @@
|
| source->PrintOn(stdout);
|
| printf("\n");
|
| i::Handle<i::Script> script = factory->NewScript(source);
|
| - info = std::unique_ptr<i::ParseInfo>(new i::ParseInfo(script));
|
| + info = std::unique_ptr<i::ParseInfo>(new i::ParseInfo(&zone, script));
|
| info->set_allow_lazy_parsing(false);
|
| CHECK(i::parsing::ParseProgram(info.get()));
|
| }
|
| @@ -3462,13 +3468,14 @@
|
| i::ScopedVector<char> program(Utf8LengthHelper(source) +
|
| Utf8LengthHelper(suffix) + 1);
|
| i::SNPrintF(program, "%s%s", source, suffix);
|
| + i::Zone zone(isolate->allocator(), ZONE_NAME);
|
| std::unique_ptr<i::ParseInfo> info;
|
| printf("%s\n", program.start());
|
| v8::Local<v8::Value> v = CompileRun(program.start());
|
| i::Handle<i::Object> o = v8::Utils::OpenHandle(*v);
|
| 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(shared));
|
| + info = std::unique_ptr<i::ParseInfo>(new i::ParseInfo(&zone, shared));
|
| info->set_allow_lazy_parsing(allow_lazy);
|
| CHECK(i::parsing::ParseFunction(info.get()));
|
| CHECK(i::Compiler::Analyze(info.get()));
|
| @@ -3494,8 +3501,8 @@
|
| std::vector<unsigned> location; // "Directions" to the relevant scope.
|
| };
|
|
|
| -static void TestMaybeAssigned(Input input, const char* variable, bool module,
|
| - bool allow_lazy_parsing) {
|
| +static void TestMaybeAssigned(i::Zone* zone, Input input, const char* variable,
|
| + bool module, bool allow_lazy_parsing) {
|
| i::Factory* factory = CcTest::i_isolate()->factory();
|
| i::Handle<i::String> string =
|
| factory->InternalizeUtf8String(input.source.c_str());
|
| @@ -3504,7 +3511,7 @@
|
| i::Handle<i::Script> script = factory->NewScript(string);
|
|
|
| std::unique_ptr<i::ParseInfo> info;
|
| - info = std::unique_ptr<i::ParseInfo>(new i::ParseInfo(script));
|
| + info = std::unique_ptr<i::ParseInfo>(new i::ParseInfo(zone, script));
|
| info->set_module(module);
|
| info->set_allow_lazy_parsing(allow_lazy_parsing);
|
|
|
| @@ -3553,6 +3560,7 @@
|
| i::Isolate* isolate = CcTest::i_isolate();
|
| i::HandleScope scope(isolate);
|
| LocalContext env;
|
| + i::Zone zone(isolate->allocator(), ZONE_NAME);
|
|
|
| std::vector<unsigned> top; // Can't use {} in initializers below.
|
|
|
| @@ -3830,9 +3838,9 @@
|
| for (unsigned module = 0; module <= 1; ++module) {
|
| for (unsigned allow_lazy_parsing = 0; allow_lazy_parsing <= 1;
|
| ++allow_lazy_parsing) {
|
| - TestMaybeAssigned(input, "foo", module, allow_lazy_parsing);
|
| + TestMaybeAssigned(&zone, input, "foo", module, allow_lazy_parsing);
|
| }
|
| - TestMaybeAssigned(wrap(input), "foo", module, false);
|
| + TestMaybeAssigned(&zone, wrap(input), "foo", module, false);
|
| }
|
| }
|
|
|
| @@ -3840,9 +3848,9 @@
|
| Input input = script_only_tests[i];
|
| for (unsigned allow_lazy_parsing = 0; allow_lazy_parsing <= 1;
|
| ++allow_lazy_parsing) {
|
| - TestMaybeAssigned(input, "foo", false, allow_lazy_parsing);
|
| + TestMaybeAssigned(&zone, input, "foo", false, allow_lazy_parsing);
|
| }
|
| - TestMaybeAssigned(wrap(input), "foo", false, false);
|
| + TestMaybeAssigned(&zone, wrap(input), "foo", false, false);
|
| }
|
| }
|
|
|
| @@ -3874,6 +3882,7 @@
|
| i::ScopedVector<char> program(Utf8LengthHelper(prefix) +
|
| Utf8LengthHelper(source) + 1);
|
| i::SNPrintF(program, "%s%s", prefix, source);
|
| + i::Zone zone(isolate->allocator(), ZONE_NAME);
|
|
|
| i::Handle<i::String> string =
|
| factory->InternalizeUtf8String(program.start());
|
| @@ -3884,7 +3893,7 @@
|
| for (unsigned allow_lazy = 0; allow_lazy < 2; ++allow_lazy) {
|
| for (unsigned module = 0; module < 2; ++module) {
|
| std::unique_ptr<i::ParseInfo> info;
|
| - info = std::unique_ptr<i::ParseInfo>(new i::ParseInfo(script));
|
| + info = std::unique_ptr<i::ParseInfo>(new i::ParseInfo(&zone, script));
|
| info->set_module(module);
|
| info->set_allow_lazy_parsing(allow_lazy);
|
|
|
| @@ -6337,7 +6346,8 @@
|
| // Show that parsing as a module works
|
| {
|
| i::Handle<i::Script> script = factory->NewScript(source);
|
| - i::ParseInfo info(script);
|
| + i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
|
| + i::ParseInfo info(&zone, script);
|
| info.set_module();
|
| if (!i::parsing::ParseProgram(&info)) {
|
| i::Handle<i::JSObject> exception_handle(
|
| @@ -6361,7 +6371,8 @@
|
| // And that parsing a script does not.
|
| {
|
| i::Handle<i::Script> script = factory->NewScript(source);
|
| - i::ParseInfo info(script);
|
| + i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
|
| + i::ParseInfo info(&zone, script);
|
| CHECK(!i::parsing::ParseProgram(&info));
|
| isolate->clear_pending_exception();
|
| }
|
| @@ -6451,7 +6462,8 @@
|
| factory->NewStringFromAsciiChecked(kErrorSources[i]);
|
|
|
| i::Handle<i::Script> script = factory->NewScript(source);
|
| - i::ParseInfo info(script);
|
| + i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
|
| + i::ParseInfo info(&zone, script);
|
| info.set_module();
|
| CHECK(!i::parsing::ParseProgram(&info));
|
| isolate->clear_pending_exception();
|
| @@ -6487,7 +6499,8 @@
|
| factory->NewStringFromAsciiChecked(kErrorSources[i]);
|
|
|
| i::Handle<i::Script> script = factory->NewScript(source);
|
| - i::ParseInfo info(script);
|
| + i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
|
| + i::ParseInfo info(&zone, script);
|
| info.set_module();
|
| CHECK(!i::parsing::ParseProgram(&info));
|
| isolate->clear_pending_exception();
|
| @@ -6684,7 +6697,8 @@
|
| "export {foob};";
|
| i::Handle<i::String> source = factory->NewStringFromAsciiChecked(kSource);
|
| i::Handle<i::Script> script = factory->NewScript(source);
|
| - i::ParseInfo info(script);
|
| + i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
|
| + i::ParseInfo info(&zone, script);
|
| info.set_module();
|
| CHECK(i::parsing::ParseProgram(&info));
|
| CHECK(i::Compiler::Analyze(&info));
|
| @@ -6943,7 +6957,8 @@
|
|
|
| i::Handle<i::Script> script =
|
| factory->NewScript(factory->NewStringFromAsciiChecked(source));
|
| - i::ParseInfo info(script);
|
| + i::Zone zone(CcTest::i_isolate()->allocator(), ZONE_NAME);
|
| + i::ParseInfo info(&zone, script);
|
| i::parsing::ParseProgram(&info);
|
| CHECK(info.literal() != NULL);
|
| CHECK_EQ(expected_language_mode, info.literal()->language_mode());
|
| @@ -9417,7 +9432,8 @@
|
| printf("\n");
|
|
|
| i::Handle<i::Script> script = factory->NewScript(source);
|
| - i::ParseInfo info(script);
|
| + i::Zone zone(isolate->allocator(), ZONE_NAME);
|
| + i::ParseInfo info(&zone, script);
|
|
|
| CHECK(i::parsing::ParseProgram(&info));
|
| CHECK(i::Compiler::Analyze(&info));
|
|
|