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)); |