From 005c0d8178bca55256a8aa08e69d62a82209d133 Mon Sep 17 00:00:00 2001 From: "svenpanne@chromium.org" Date: Wed, 8 Jan 2014 06:53:31 +0000 Subject: [PATCH] Prepare removal of ObjectTemplate::New without Isolate parameter. LOG=y BUG=324225 R=ulan@chromium.org Review URL: https://codereview.chromium.org/124943004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18478 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- samples/lineprocessor.cc | 2 +- samples/process.cc | 6 +- samples/shell.cc | 2 +- src/api.cc | 12 +- src/d8.cc | 8 +- src/i18n.cc | 3 +- test/cctest/test-accessors.cc | 78 ++-- test/cctest/test-api.cc | 630 +++++++++++++++++++-------------- test/cctest/test-assembler-ia32.cc | 3 +- test/cctest/test-assembler-x64.cc | 3 +- test/cctest/test-debug.cc | 112 +++--- test/cctest/test-heap-profiler.cc | 6 +- test/cctest/test-object-observe.cc | 2 +- test/cctest/test-platform.cc | 3 +- test/cctest/test-thread-termination.cc | 4 +- tools/lexer-shell.cc | 2 +- 16 files changed, 504 insertions(+), 372 deletions(-) diff --git a/samples/lineprocessor.cc b/samples/lineprocessor.cc index 4823a48..1d6a3bd 100644 --- a/samples/lineprocessor.cc +++ b/samples/lineprocessor.cc @@ -200,7 +200,7 @@ int RunMain(int argc, char* argv[]) { } // Create a template for the global object. - v8::Handle global = v8::ObjectTemplate::New(); + v8::Handle global = v8::ObjectTemplate::New(isolate); // Bind the global 'print' function to the C++ Print callback. global->Set(v8::String::NewFromUtf8(isolate, "print"), diff --git a/samples/process.cc b/samples/process.cc index 48ad33f..37b4d39 100644 --- a/samples/process.cc +++ b/samples/process.cc @@ -160,7 +160,7 @@ bool JsHttpRequestProcessor::Initialize(map* opts, // Create a template for the global object where we set the // built-in global functions. - Handle global = ObjectTemplate::New(); + Handle global = ObjectTemplate::New(GetIsolate()); global->Set(String::NewFromUtf8(GetIsolate(), "log"), FunctionTemplate::New(GetIsolate(), LogCallback)); @@ -401,7 +401,7 @@ Handle JsHttpRequestProcessor::MakeMapTemplate( Isolate* isolate) { EscapableHandleScope handle_scope(isolate); - Local result = ObjectTemplate::New(); + Local result = ObjectTemplate::New(isolate); result->SetInternalFieldCount(1); result->SetNamedPropertyHandler(MapGet, MapSet); @@ -511,7 +511,7 @@ Handle JsHttpRequestProcessor::MakeRequestTemplate( Isolate* isolate) { EscapableHandleScope handle_scope(isolate); - Local result = ObjectTemplate::New(); + Local result = ObjectTemplate::New(isolate); result->SetInternalFieldCount(1); // Add accessors for each of the fields of the request. diff --git a/samples/shell.cc b/samples/shell.cc index e98eb75..92a4732 100644 --- a/samples/shell.cc +++ b/samples/shell.cc @@ -98,7 +98,7 @@ const char* ToCString(const v8::String::Utf8Value& value) { // functions. v8::Handle CreateShellContext(v8::Isolate* isolate) { // Create a template for the global object. - v8::Handle global = v8::ObjectTemplate::New(); + v8::Handle global = v8::ObjectTemplate::New(isolate); // Bind the global 'print' function to the C++ Print callback. global->Set(v8::String::NewFromUtf8(isolate, "print"), v8::FunctionTemplate::New(isolate, Print)); diff --git a/src/api.cc b/src/api.cc index 5a35cb6..98813e0 100644 --- a/src/api.cc +++ b/src/api.cc @@ -943,12 +943,13 @@ static void InitializeFunctionTemplate( Local FunctionTemplate::PrototypeTemplate() { - i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); - ENTER_V8(isolate); + i::Isolate* i_isolate = Utils::OpenHandle(this)->GetIsolate(); + ENTER_V8(i_isolate); i::Handle result(Utils::OpenHandle(this)->prototype_template(), - isolate); + i_isolate); if (result->IsUndefined()) { - result = Utils::OpenHandle(*ObjectTemplate::New()); + v8::Isolate* isolate = reinterpret_cast(i_isolate); + result = Utils::OpenHandle(*ObjectTemplate::New(isolate)); Utils::OpenHandle(this)->set_prototype_template(*result); } return ToApiHandle(result); @@ -5148,7 +5149,8 @@ static i::Handle CreateEnvironment( global_constructor = EnsureConstructor(isolate, *global_template); // Create a fresh template for the global proxy object. - proxy_template = ObjectTemplate::New(); + proxy_template = ObjectTemplate::New( + reinterpret_cast(isolate)); proxy_constructor = EnsureConstructor(isolate, *proxy_template); // Set the global template to be the prototype template of diff --git a/src/d8.cc b/src/d8.cc index 00eca19..73e438b 100644 --- a/src/d8.cc +++ b/src/d8.cc @@ -858,7 +858,7 @@ class BZip2Decompressor : public v8::StartupDataDecompressor { Handle Shell::CreateGlobalTemplate(Isolate* isolate) { - Handle global_template = ObjectTemplate::New(); + Handle global_template = ObjectTemplate::New(isolate); global_template->Set(String::NewFromUtf8(isolate, "print"), FunctionTemplate::New(isolate, Print)); global_template->Set(String::NewFromUtf8(isolate, "write"), @@ -877,7 +877,7 @@ Handle Shell::CreateGlobalTemplate(Isolate* isolate) { FunctionTemplate::New(isolate, Version)); // Bind the Realm object. - Handle realm_template = ObjectTemplate::New(); + Handle realm_template = ObjectTemplate::New(isolate); realm_template->Set(String::NewFromUtf8(isolate, "current"), FunctionTemplate::New(isolate, RealmCurrent)); realm_template->Set(String::NewFromUtf8(isolate, "owner"), @@ -897,7 +897,7 @@ Handle Shell::CreateGlobalTemplate(Isolate* isolate) { global_template->Set(String::NewFromUtf8(isolate, "Realm"), realm_template); #ifndef V8_SHARED - Handle performance_template = ObjectTemplate::New(); + Handle performance_template = ObjectTemplate::New(isolate); performance_template->Set(String::NewFromUtf8(isolate, "now"), FunctionTemplate::New(isolate, PerformanceNow)); global_template->Set(String::NewFromUtf8(isolate, "performance"), @@ -905,7 +905,7 @@ Handle Shell::CreateGlobalTemplate(Isolate* isolate) { #endif // V8_SHARED #if !defined(V8_SHARED) && !defined(_WIN32) && !defined(_WIN64) - Handle os_templ = ObjectTemplate::New(); + Handle os_templ = ObjectTemplate::New(isolate); AddOSMethods(isolate, os_templ); global_template->Set(String::NewFromUtf8(isolate, "os"), os_templ); #endif // V8_SHARED diff --git a/src/i18n.cc b/src/i18n.cc index f340cc0..5c97c6b 100644 --- a/src/i18n.cc +++ b/src/i18n.cc @@ -257,7 +257,8 @@ Handle GetEternal(Isolate* isolate) { return Handle::cast( isolate->eternal_handles()->GetSingleton(field)); } - v8::Local raw_template(v8::ObjectTemplate::New()); + v8::Local raw_template = + v8::ObjectTemplate::New(reinterpret_cast(isolate)); raw_template->SetInternalFieldCount(internal_fields); return Handle::cast( isolate->eternal_handles()->CreateSingleton( diff --git a/test/cctest/test-accessors.cc b/test/cctest/test-accessors.cc index a478c8a..cbbdc50 100644 --- a/test/cctest/test-accessors.cc +++ b/test/cctest/test-accessors.cc @@ -194,7 +194,7 @@ THREADED_TEST(AccessorIC) { LocalContext context; v8::Isolate* isolate = context->GetIsolate(); v8::HandleScope scope(isolate); - v8::Handle obj = ObjectTemplate::New(); + v8::Handle obj = ObjectTemplate::New(isolate); obj->SetAccessor(v8_str("x0"), XGetter, XSetter); obj->SetAccessorProperty(v8_str("x1"), v8::FunctionTemplate::New(isolate, XGetter), @@ -238,8 +238,9 @@ static void AccessorProhibitsOverwritingGetter( THREADED_TEST(AccessorProhibitsOverwriting) { LocalContext context; - v8::HandleScope scope(context->GetIsolate()); - Local templ = ObjectTemplate::New(); + v8::Isolate* isolate = context->GetIsolate(); + v8::HandleScope scope(isolate); + Local templ = ObjectTemplate::New(isolate); templ->SetAccessor(v8_str("x"), AccessorProhibitsOverwritingGetter, 0, @@ -288,24 +289,25 @@ static void HandleAllocatingGetter( THREADED_TEST(HandleScopePop) { LocalContext context; - v8::HandleScope scope(context->GetIsolate()); - v8::Handle obj = ObjectTemplate::New(); + v8::Isolate* isolate = context->GetIsolate(); + v8::HandleScope scope(isolate); + v8::Handle obj = ObjectTemplate::New(isolate); obj->SetAccessor(v8_str("one"), HandleAllocatingGetter<1>); obj->SetAccessor(v8_str("many"), HandleAllocatingGetter<1024>); v8::Handle inst = obj->NewInstance(); - context->Global()->Set(v8::String::NewFromUtf8(context->GetIsolate(), "obj"), - inst); - i::Isolate* isolate = CcTest::i_isolate(); - int count_before = i::HandleScope::NumberOfHandles(isolate); + context->Global()->Set(v8::String::NewFromUtf8(isolate, "obj"), inst); + int count_before = + i::HandleScope::NumberOfHandles(reinterpret_cast(isolate)); { - v8::HandleScope scope(context->GetIsolate()); + v8::HandleScope scope(isolate); CompileRun( "for (var i = 0; i < 1000; i++) {" " obj.one;" " obj.many;" "}"); } - int count_after = i::HandleScope::NumberOfHandles(isolate); + int count_after = + i::HandleScope::NumberOfHandles(reinterpret_cast(isolate)); CHECK_EQ(count_before, count_after); } @@ -332,17 +334,18 @@ static void CheckAccessorArgsCorrect( THREADED_TEST(DirectCall) { LocalContext context; - v8::HandleScope scope(context->GetIsolate()); - v8::Handle obj = ObjectTemplate::New(); + v8::Isolate* isolate = context->GetIsolate(); + v8::HandleScope scope(isolate); + v8::Handle obj = ObjectTemplate::New(isolate); obj->SetAccessor(v8_str("xxx"), CheckAccessorArgsCorrect, NULL, - v8::String::NewFromUtf8(context->GetIsolate(), "data")); + v8::String::NewFromUtf8(isolate, "data")); v8::Handle inst = obj->NewInstance(); - context->Global()->Set(v8::String::NewFromUtf8(context->GetIsolate(), "obj"), + context->Global()->Set(v8::String::NewFromUtf8(isolate, "obj"), inst); Local