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
This commit is contained in:
svenpanne@chromium.org 2014-01-08 06:53:31 +00:00
parent ffafe7b9e3
commit 005c0d8178
16 changed files with 504 additions and 372 deletions

View File

@ -200,7 +200,7 @@ int RunMain(int argc, char* argv[]) {
} }
// Create a template for the global object. // Create a template for the global object.
v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New(); v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New(isolate);
// Bind the global 'print' function to the C++ Print callback. // Bind the global 'print' function to the C++ Print callback.
global->Set(v8::String::NewFromUtf8(isolate, "print"), global->Set(v8::String::NewFromUtf8(isolate, "print"),

View File

@ -160,7 +160,7 @@ bool JsHttpRequestProcessor::Initialize(map<string, string>* opts,
// Create a template for the global object where we set the // Create a template for the global object where we set the
// built-in global functions. // built-in global functions.
Handle<ObjectTemplate> global = ObjectTemplate::New(); Handle<ObjectTemplate> global = ObjectTemplate::New(GetIsolate());
global->Set(String::NewFromUtf8(GetIsolate(), "log"), global->Set(String::NewFromUtf8(GetIsolate(), "log"),
FunctionTemplate::New(GetIsolate(), LogCallback)); FunctionTemplate::New(GetIsolate(), LogCallback));
@ -401,7 +401,7 @@ Handle<ObjectTemplate> JsHttpRequestProcessor::MakeMapTemplate(
Isolate* isolate) { Isolate* isolate) {
EscapableHandleScope handle_scope(isolate); EscapableHandleScope handle_scope(isolate);
Local<ObjectTemplate> result = ObjectTemplate::New(); Local<ObjectTemplate> result = ObjectTemplate::New(isolate);
result->SetInternalFieldCount(1); result->SetInternalFieldCount(1);
result->SetNamedPropertyHandler(MapGet, MapSet); result->SetNamedPropertyHandler(MapGet, MapSet);
@ -511,7 +511,7 @@ Handle<ObjectTemplate> JsHttpRequestProcessor::MakeRequestTemplate(
Isolate* isolate) { Isolate* isolate) {
EscapableHandleScope handle_scope(isolate); EscapableHandleScope handle_scope(isolate);
Local<ObjectTemplate> result = ObjectTemplate::New(); Local<ObjectTemplate> result = ObjectTemplate::New(isolate);
result->SetInternalFieldCount(1); result->SetInternalFieldCount(1);
// Add accessors for each of the fields of the request. // Add accessors for each of the fields of the request.

View File

@ -98,7 +98,7 @@ const char* ToCString(const v8::String::Utf8Value& value) {
// functions. // functions.
v8::Handle<v8::Context> CreateShellContext(v8::Isolate* isolate) { v8::Handle<v8::Context> CreateShellContext(v8::Isolate* isolate) {
// Create a template for the global object. // Create a template for the global object.
v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New(); v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New(isolate);
// Bind the global 'print' function to the C++ Print callback. // Bind the global 'print' function to the C++ Print callback.
global->Set(v8::String::NewFromUtf8(isolate, "print"), global->Set(v8::String::NewFromUtf8(isolate, "print"),
v8::FunctionTemplate::New(isolate, Print)); v8::FunctionTemplate::New(isolate, Print));

View File

@ -943,12 +943,13 @@ static void InitializeFunctionTemplate(
Local<ObjectTemplate> FunctionTemplate::PrototypeTemplate() { Local<ObjectTemplate> FunctionTemplate::PrototypeTemplate() {
i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); i::Isolate* i_isolate = Utils::OpenHandle(this)->GetIsolate();
ENTER_V8(isolate); ENTER_V8(i_isolate);
i::Handle<i::Object> result(Utils::OpenHandle(this)->prototype_template(), i::Handle<i::Object> result(Utils::OpenHandle(this)->prototype_template(),
isolate); i_isolate);
if (result->IsUndefined()) { if (result->IsUndefined()) {
result = Utils::OpenHandle(*ObjectTemplate::New()); v8::Isolate* isolate = reinterpret_cast<v8::Isolate*>(i_isolate);
result = Utils::OpenHandle(*ObjectTemplate::New(isolate));
Utils::OpenHandle(this)->set_prototype_template(*result); Utils::OpenHandle(this)->set_prototype_template(*result);
} }
return ToApiHandle<ObjectTemplate>(result); return ToApiHandle<ObjectTemplate>(result);
@ -5148,7 +5149,8 @@ static i::Handle<i::Context> CreateEnvironment(
global_constructor = EnsureConstructor(isolate, *global_template); global_constructor = EnsureConstructor(isolate, *global_template);
// Create a fresh template for the global proxy object. // Create a fresh template for the global proxy object.
proxy_template = ObjectTemplate::New(); proxy_template = ObjectTemplate::New(
reinterpret_cast<v8::Isolate*>(isolate));
proxy_constructor = EnsureConstructor(isolate, *proxy_template); proxy_constructor = EnsureConstructor(isolate, *proxy_template);
// Set the global template to be the prototype template of // Set the global template to be the prototype template of

View File

@ -858,7 +858,7 @@ class BZip2Decompressor : public v8::StartupDataDecompressor {
Handle<ObjectTemplate> Shell::CreateGlobalTemplate(Isolate* isolate) { Handle<ObjectTemplate> Shell::CreateGlobalTemplate(Isolate* isolate) {
Handle<ObjectTemplate> global_template = ObjectTemplate::New(); Handle<ObjectTemplate> global_template = ObjectTemplate::New(isolate);
global_template->Set(String::NewFromUtf8(isolate, "print"), global_template->Set(String::NewFromUtf8(isolate, "print"),
FunctionTemplate::New(isolate, Print)); FunctionTemplate::New(isolate, Print));
global_template->Set(String::NewFromUtf8(isolate, "write"), global_template->Set(String::NewFromUtf8(isolate, "write"),
@ -877,7 +877,7 @@ Handle<ObjectTemplate> Shell::CreateGlobalTemplate(Isolate* isolate) {
FunctionTemplate::New(isolate, Version)); FunctionTemplate::New(isolate, Version));
// Bind the Realm object. // Bind the Realm object.
Handle<ObjectTemplate> realm_template = ObjectTemplate::New(); Handle<ObjectTemplate> realm_template = ObjectTemplate::New(isolate);
realm_template->Set(String::NewFromUtf8(isolate, "current"), realm_template->Set(String::NewFromUtf8(isolate, "current"),
FunctionTemplate::New(isolate, RealmCurrent)); FunctionTemplate::New(isolate, RealmCurrent));
realm_template->Set(String::NewFromUtf8(isolate, "owner"), realm_template->Set(String::NewFromUtf8(isolate, "owner"),
@ -897,7 +897,7 @@ Handle<ObjectTemplate> Shell::CreateGlobalTemplate(Isolate* isolate) {
global_template->Set(String::NewFromUtf8(isolate, "Realm"), realm_template); global_template->Set(String::NewFromUtf8(isolate, "Realm"), realm_template);
#ifndef V8_SHARED #ifndef V8_SHARED
Handle<ObjectTemplate> performance_template = ObjectTemplate::New(); Handle<ObjectTemplate> performance_template = ObjectTemplate::New(isolate);
performance_template->Set(String::NewFromUtf8(isolate, "now"), performance_template->Set(String::NewFromUtf8(isolate, "now"),
FunctionTemplate::New(isolate, PerformanceNow)); FunctionTemplate::New(isolate, PerformanceNow));
global_template->Set(String::NewFromUtf8(isolate, "performance"), global_template->Set(String::NewFromUtf8(isolate, "performance"),
@ -905,7 +905,7 @@ Handle<ObjectTemplate> Shell::CreateGlobalTemplate(Isolate* isolate) {
#endif // V8_SHARED #endif // V8_SHARED
#if !defined(V8_SHARED) && !defined(_WIN32) && !defined(_WIN64) #if !defined(V8_SHARED) && !defined(_WIN32) && !defined(_WIN64)
Handle<ObjectTemplate> os_templ = ObjectTemplate::New(); Handle<ObjectTemplate> os_templ = ObjectTemplate::New(isolate);
AddOSMethods(isolate, os_templ); AddOSMethods(isolate, os_templ);
global_template->Set(String::NewFromUtf8(isolate, "os"), os_templ); global_template->Set(String::NewFromUtf8(isolate, "os"), os_templ);
#endif // V8_SHARED #endif // V8_SHARED

View File

@ -257,7 +257,8 @@ Handle<ObjectTemplateInfo> GetEternal(Isolate* isolate) {
return Handle<ObjectTemplateInfo>::cast( return Handle<ObjectTemplateInfo>::cast(
isolate->eternal_handles()->GetSingleton(field)); isolate->eternal_handles()->GetSingleton(field));
} }
v8::Local<v8::ObjectTemplate> raw_template(v8::ObjectTemplate::New()); v8::Local<v8::ObjectTemplate> raw_template =
v8::ObjectTemplate::New(reinterpret_cast<v8::Isolate*>(isolate));
raw_template->SetInternalFieldCount(internal_fields); raw_template->SetInternalFieldCount(internal_fields);
return Handle<ObjectTemplateInfo>::cast( return Handle<ObjectTemplateInfo>::cast(
isolate->eternal_handles()->CreateSingleton( isolate->eternal_handles()->CreateSingleton(

View File

@ -194,7 +194,7 @@ THREADED_TEST(AccessorIC) {
LocalContext context; LocalContext context;
v8::Isolate* isolate = context->GetIsolate(); v8::Isolate* isolate = context->GetIsolate();
v8::HandleScope scope(isolate); v8::HandleScope scope(isolate);
v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New(); v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New(isolate);
obj->SetAccessor(v8_str("x0"), XGetter, XSetter); obj->SetAccessor(v8_str("x0"), XGetter, XSetter);
obj->SetAccessorProperty(v8_str("x1"), obj->SetAccessorProperty(v8_str("x1"),
v8::FunctionTemplate::New(isolate, XGetter), v8::FunctionTemplate::New(isolate, XGetter),
@ -238,8 +238,9 @@ static void AccessorProhibitsOverwritingGetter(
THREADED_TEST(AccessorProhibitsOverwriting) { THREADED_TEST(AccessorProhibitsOverwriting) {
LocalContext context; LocalContext context;
v8::HandleScope scope(context->GetIsolate()); v8::Isolate* isolate = context->GetIsolate();
Local<ObjectTemplate> templ = ObjectTemplate::New(); v8::HandleScope scope(isolate);
Local<ObjectTemplate> templ = ObjectTemplate::New(isolate);
templ->SetAccessor(v8_str("x"), templ->SetAccessor(v8_str("x"),
AccessorProhibitsOverwritingGetter, AccessorProhibitsOverwritingGetter,
0, 0,
@ -288,24 +289,25 @@ static void HandleAllocatingGetter(
THREADED_TEST(HandleScopePop) { THREADED_TEST(HandleScopePop) {
LocalContext context; LocalContext context;
v8::HandleScope scope(context->GetIsolate()); v8::Isolate* isolate = context->GetIsolate();
v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New(); v8::HandleScope scope(isolate);
v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New(isolate);
obj->SetAccessor(v8_str("one"), HandleAllocatingGetter<1>); obj->SetAccessor(v8_str("one"), HandleAllocatingGetter<1>);
obj->SetAccessor(v8_str("many"), HandleAllocatingGetter<1024>); obj->SetAccessor(v8_str("many"), HandleAllocatingGetter<1024>);
v8::Handle<v8::Object> inst = obj->NewInstance(); v8::Handle<v8::Object> inst = obj->NewInstance();
context->Global()->Set(v8::String::NewFromUtf8(context->GetIsolate(), "obj"), context->Global()->Set(v8::String::NewFromUtf8(isolate, "obj"), inst);
inst); int count_before =
i::Isolate* isolate = CcTest::i_isolate(); i::HandleScope::NumberOfHandles(reinterpret_cast<i::Isolate*>(isolate));
int count_before = i::HandleScope::NumberOfHandles(isolate);
{ {
v8::HandleScope scope(context->GetIsolate()); v8::HandleScope scope(isolate);
CompileRun( CompileRun(
"for (var i = 0; i < 1000; i++) {" "for (var i = 0; i < 1000; i++) {"
" obj.one;" " obj.one;"
" obj.many;" " obj.many;"
"}"); "}");
} }
int count_after = i::HandleScope::NumberOfHandles(isolate); int count_after =
i::HandleScope::NumberOfHandles(reinterpret_cast<i::Isolate*>(isolate));
CHECK_EQ(count_before, count_after); CHECK_EQ(count_before, count_after);
} }
@ -332,17 +334,18 @@ static void CheckAccessorArgsCorrect(
THREADED_TEST(DirectCall) { THREADED_TEST(DirectCall) {
LocalContext context; LocalContext context;
v8::HandleScope scope(context->GetIsolate()); v8::Isolate* isolate = context->GetIsolate();
v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New(); v8::HandleScope scope(isolate);
v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New(isolate);
obj->SetAccessor(v8_str("xxx"), obj->SetAccessor(v8_str("xxx"),
CheckAccessorArgsCorrect, CheckAccessorArgsCorrect,
NULL, NULL,
v8::String::NewFromUtf8(context->GetIsolate(), "data")); v8::String::NewFromUtf8(isolate, "data"));
v8::Handle<v8::Object> inst = obj->NewInstance(); v8::Handle<v8::Object> inst = obj->NewInstance();
context->Global()->Set(v8::String::NewFromUtf8(context->GetIsolate(), "obj"), context->Global()->Set(v8::String::NewFromUtf8(isolate, "obj"),
inst); inst);
Local<Script> scr = v8::Script::Compile( Local<Script> scr = v8::Script::Compile(
v8::String::NewFromUtf8(context->GetIsolate(), "obj.xxx")); v8::String::NewFromUtf8(isolate, "obj.xxx"));
for (int i = 0; i < 10; i++) { for (int i = 0; i < 10; i++) {
Local<Value> result = scr->Run(); Local<Value> result = scr->Run();
CHECK(!result.IsEmpty()); CHECK(!result.IsEmpty());
@ -363,7 +366,7 @@ THREADED_TEST(EmptyResult) {
LocalContext context; LocalContext context;
v8::Isolate* isolate = context->GetIsolate(); v8::Isolate* isolate = context->GetIsolate();
v8::HandleScope scope(isolate); v8::HandleScope scope(isolate);
v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New(); v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New(isolate);
obj->SetAccessor(v8_str("xxx"), EmptyGetter, NULL, obj->SetAccessor(v8_str("xxx"), EmptyGetter, NULL,
v8::String::NewFromUtf8(isolate, "data")); v8::String::NewFromUtf8(isolate, "data"));
v8::Handle<v8::Object> inst = obj->NewInstance(); v8::Handle<v8::Object> inst = obj->NewInstance();
@ -383,7 +386,7 @@ THREADED_TEST(NoReuseRegress) {
v8::Isolate* isolate = CcTest::isolate(); v8::Isolate* isolate = CcTest::isolate();
v8::HandleScope scope(isolate); v8::HandleScope scope(isolate);
{ {
v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New(); v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New(isolate);
obj->SetAccessor(v8_str("xxx"), EmptyGetter, NULL, obj->SetAccessor(v8_str("xxx"), EmptyGetter, NULL,
v8::String::NewFromUtf8(isolate, "data")); v8::String::NewFromUtf8(isolate, "data"));
LocalContext context; LocalContext context;
@ -397,7 +400,7 @@ THREADED_TEST(NoReuseRegress) {
} }
} }
{ {
v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New(); v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New(isolate);
obj->SetAccessor(v8_str("xxx"), obj->SetAccessor(v8_str("xxx"),
CheckAccessorArgsCorrect, CheckAccessorArgsCorrect,
NULL, NULL,
@ -432,8 +435,9 @@ static void ThrowingSetAccessor(Local<String> name,
THREADED_TEST(Regress1054726) { THREADED_TEST(Regress1054726) {
LocalContext env; LocalContext env;
v8::HandleScope scope(env->GetIsolate()); v8::Isolate* isolate = env->GetIsolate();
v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New(); v8::HandleScope scope(isolate);
v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New(isolate);
obj->SetAccessor(v8_str("x"), obj->SetAccessor(v8_str("x"),
ThrowingGetAccessor, ThrowingGetAccessor,
ThrowingSetAccessor, ThrowingSetAccessor,
@ -452,7 +456,7 @@ THREADED_TEST(Regress1054726) {
CHECK_EQ(v8_str("ggggg"), result); CHECK_EQ(v8_str("ggggg"), result);
result = Script::Compile(String::NewFromUtf8( result = Script::Compile(String::NewFromUtf8(
env->GetIsolate(), isolate,
"var result = '';" "var result = '';"
"for (var i = 0; i < 5; i++) {" "for (var i = 0; i < 5; i++) {"
" try { obj.x = i; } catch (e) { result += e; }" " try { obj.x = i; } catch (e) { result += e; }"
@ -470,12 +474,13 @@ static void AllocGetter(Local<String> name,
THREADED_TEST(Gc) { THREADED_TEST(Gc) {
LocalContext env; LocalContext env;
v8::HandleScope scope(env->GetIsolate()); v8::Isolate* isolate = env->GetIsolate();
v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New(); v8::HandleScope scope(isolate);
v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New(isolate);
obj->SetAccessor(v8_str("xxx"), AllocGetter); obj->SetAccessor(v8_str("xxx"), AllocGetter);
env->Global()->Set(v8_str("obj"), obj->NewInstance()); env->Global()->Set(v8_str("obj"), obj->NewInstance());
Script::Compile(String::NewFromUtf8( Script::Compile(String::NewFromUtf8(
env->GetIsolate(), isolate,
"var last = [];" "var last = [];"
"for (var i = 0; i < 2048; i++) {" "for (var i = 0; i < 2048; i++) {"
" var result = obj.xxx;" " var result = obj.xxx;"
@ -502,14 +507,15 @@ static void StackCheck(Local<String> name,
THREADED_TEST(StackIteration) { THREADED_TEST(StackIteration) {
LocalContext env; LocalContext env;
v8::HandleScope scope(env->GetIsolate()); v8::Isolate* isolate = env->GetIsolate();
v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New(); v8::HandleScope scope(isolate);
i::Isolate* isolate = reinterpret_cast<i::Isolate*>(env->GetIsolate()); v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New(isolate);
i::StringStream::ClearMentionedObjectCache(isolate); i::StringStream::ClearMentionedObjectCache(
reinterpret_cast<i::Isolate*>(isolate));
obj->SetAccessor(v8_str("xxx"), StackCheck); obj->SetAccessor(v8_str("xxx"), StackCheck);
env->Global()->Set(v8_str("obj"), obj->NewInstance()); env->Global()->Set(v8_str("obj"), obj->NewInstance());
Script::Compile(String::NewFromUtf8( Script::Compile(String::NewFromUtf8(
env->GetIsolate(), isolate,
"function foo() {" "function foo() {"
" return obj.xxx;" " return obj.xxx;"
"}" "}"
@ -532,12 +538,13 @@ THREADED_TEST(HandleScopeSegment) {
// Check that we can return values past popping of handle scope // Check that we can return values past popping of handle scope
// segments. // segments.
LocalContext env; LocalContext env;
v8::HandleScope scope(env->GetIsolate()); v8::Isolate* isolate = env->GetIsolate();
v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New(); v8::HandleScope scope(isolate);
v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New(isolate);
obj->SetAccessor(v8_str("xxx"), AllocateHandles); obj->SetAccessor(v8_str("xxx"), AllocateHandles);
env->Global()->Set(v8_str("obj"), obj->NewInstance()); env->Global()->Set(v8_str("obj"), obj->NewInstance());
v8::Handle<v8::Value> result = Script::Compile(String::NewFromUtf8( v8::Handle<v8::Value> result = Script::Compile(String::NewFromUtf8(
env->GetIsolate(), isolate,
"var result;" "var result;"
"for (var i = 0; i < 4; i++)" "for (var i = 0; i < 4; i++)"
" result = obj.xxx;" " result = obj.xxx;"
@ -561,9 +568,10 @@ void JSONStringifyGetter(Local<String> name,
THREADED_TEST(JSONStringifyNamedInterceptorObject) { THREADED_TEST(JSONStringifyNamedInterceptorObject) {
LocalContext env; LocalContext env;
v8::HandleScope scope(env->GetIsolate()); v8::Isolate* isolate = env->GetIsolate();
v8::HandleScope scope(isolate);
v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New(); v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New(isolate);
obj->SetNamedPropertyHandler( obj->SetNamedPropertyHandler(
JSONStringifyGetter, NULL, NULL, NULL, JSONStringifyEnumerator); JSONStringifyGetter, NULL, NULL, NULL, JSONStringifyEnumerator);
env->Global()->Set(v8_str("obj"), obj->NewInstance()); env->Global()->Set(v8_str("obj"), obj->NewInstance());

File diff suppressed because it is too large Load Diff

View File

@ -534,7 +534,8 @@ TEST(StackAlignmentForSSE2) {
v8::Isolate* isolate = CcTest::isolate(); v8::Isolate* isolate = CcTest::isolate();
v8::HandleScope handle_scope(isolate); v8::HandleScope handle_scope(isolate);
v8::Handle<v8::ObjectTemplate> global_template = v8::ObjectTemplate::New(); v8::Handle<v8::ObjectTemplate> global_template =
v8::ObjectTemplate::New(isolate);
global_template->Set(v8_str("do_sse2"), global_template->Set(v8_str("do_sse2"),
v8::FunctionTemplate::New(isolate, DoSSE2)); v8::FunctionTemplate::New(isolate, DoSSE2));

View File

@ -614,7 +614,8 @@ TEST(StackAlignmentForSSE2) {
v8::Isolate* isolate = CcTest::isolate(); v8::Isolate* isolate = CcTest::isolate();
v8::HandleScope handle_scope(isolate); v8::HandleScope handle_scope(isolate);
v8::Handle<v8::ObjectTemplate> global_template = v8::ObjectTemplate::New(); v8::Handle<v8::ObjectTemplate> global_template =
v8::ObjectTemplate::New(isolate);
global_template->Set(v8_str("do_sse2"), global_template->Set(v8_str("do_sse2"),
v8::FunctionTemplate::New(isolate, DoSSE2)); v8::FunctionTemplate::New(isolate, DoSSE2));

View File

@ -4355,33 +4355,34 @@ static void IndexedGetter(uint32_t index,
TEST(InterceptorPropertyMirror) { TEST(InterceptorPropertyMirror) {
// Create a V8 environment with debug access. // Create a V8 environment with debug access.
DebugLocalContext env; DebugLocalContext env;
v8::HandleScope scope(env->GetIsolate()); v8::Isolate* isolate = env->GetIsolate();
v8::HandleScope scope(isolate);
env.ExposeDebug(); env.ExposeDebug();
// Create object with named interceptor. // Create object with named interceptor.
v8::Handle<v8::ObjectTemplate> named = v8::ObjectTemplate::New(); v8::Handle<v8::ObjectTemplate> named = v8::ObjectTemplate::New(isolate);
named->SetNamedPropertyHandler(NamedGetter, NULL, NULL, NULL, NamedEnum); named->SetNamedPropertyHandler(NamedGetter, NULL, NULL, NULL, NamedEnum);
env->Global()->Set( env->Global()->Set(
v8::String::NewFromUtf8(env->GetIsolate(), "intercepted_named"), v8::String::NewFromUtf8(isolate, "intercepted_named"),
named->NewInstance()); named->NewInstance());
// Create object with indexed interceptor. // Create object with indexed interceptor.
v8::Handle<v8::ObjectTemplate> indexed = v8::ObjectTemplate::New(); v8::Handle<v8::ObjectTemplate> indexed = v8::ObjectTemplate::New(isolate);
indexed->SetIndexedPropertyHandler(IndexedGetter, indexed->SetIndexedPropertyHandler(IndexedGetter,
NULL, NULL,
NULL, NULL,
NULL, NULL,
IndexedEnum); IndexedEnum);
env->Global()->Set( env->Global()->Set(
v8::String::NewFromUtf8(env->GetIsolate(), "intercepted_indexed"), v8::String::NewFromUtf8(isolate, "intercepted_indexed"),
indexed->NewInstance()); indexed->NewInstance());
// Create object with both named and indexed interceptor. // Create object with both named and indexed interceptor.
v8::Handle<v8::ObjectTemplate> both = v8::ObjectTemplate::New(); v8::Handle<v8::ObjectTemplate> both = v8::ObjectTemplate::New(isolate);
both->SetNamedPropertyHandler(NamedGetter, NULL, NULL, NULL, NamedEnum); both->SetNamedPropertyHandler(NamedGetter, NULL, NULL, NULL, NamedEnum);
both->SetIndexedPropertyHandler(IndexedGetter, NULL, NULL, NULL, IndexedEnum); both->SetIndexedPropertyHandler(IndexedGetter, NULL, NULL, NULL, IndexedEnum);
env->Global()->Set( env->Global()->Set(
v8::String::NewFromUtf8(env->GetIsolate(), "intercepted_both"), v8::String::NewFromUtf8(isolate, "intercepted_both"),
both->NewInstance()); both->NewInstance());
// Get mirrors for the three objects with interceptor. // Get mirrors for the three objects with interceptor.
@ -4597,17 +4598,18 @@ static void ProtperyXNativeGetter(
TEST(NativeGetterPropertyMirror) { TEST(NativeGetterPropertyMirror) {
// Create a V8 environment with debug access. // Create a V8 environment with debug access.
DebugLocalContext env; DebugLocalContext env;
v8::HandleScope scope(env->GetIsolate()); v8::Isolate* isolate = env->GetIsolate();
v8::HandleScope scope(isolate);
env.ExposeDebug(); env.ExposeDebug();
v8::Handle<v8::String> name = v8::String::NewFromUtf8(env->GetIsolate(), "x"); v8::Handle<v8::String> name = v8::String::NewFromUtf8(isolate, "x");
// Create object with named accessor. // Create object with named accessor.
v8::Handle<v8::ObjectTemplate> named = v8::ObjectTemplate::New(); v8::Handle<v8::ObjectTemplate> named = v8::ObjectTemplate::New(isolate);
named->SetAccessor(name, &ProtperyXNativeGetter, NULL, named->SetAccessor(name, &ProtperyXNativeGetter, NULL,
v8::Handle<v8::Value>(), v8::DEFAULT, v8::None); v8::Handle<v8::Value>(), v8::DEFAULT, v8::None);
// Create object with named property getter. // Create object with named property getter.
env->Global()->Set(v8::String::NewFromUtf8(env->GetIsolate(), "instance"), env->Global()->Set(v8::String::NewFromUtf8(isolate, "instance"),
named->NewInstance()); named->NewInstance());
CHECK_EQ(10, CompileRun("instance.x")->Int32Value()); CHECK_EQ(10, CompileRun("instance.x")->Int32Value());
@ -4636,17 +4638,18 @@ static void ProtperyXNativeGetterThrowingError(
TEST(NativeGetterThrowingErrorPropertyMirror) { TEST(NativeGetterThrowingErrorPropertyMirror) {
// Create a V8 environment with debug access. // Create a V8 environment with debug access.
DebugLocalContext env; DebugLocalContext env;
v8::HandleScope scope(env->GetIsolate()); v8::Isolate* isolate = env->GetIsolate();
v8::HandleScope scope(isolate);
env.ExposeDebug(); env.ExposeDebug();
v8::Handle<v8::String> name = v8::String::NewFromUtf8(env->GetIsolate(), "x"); v8::Handle<v8::String> name = v8::String::NewFromUtf8(isolate, "x");
// Create object with named accessor. // Create object with named accessor.
v8::Handle<v8::ObjectTemplate> named = v8::ObjectTemplate::New(); v8::Handle<v8::ObjectTemplate> named = v8::ObjectTemplate::New(isolate);
named->SetAccessor(name, &ProtperyXNativeGetterThrowingError, NULL, named->SetAccessor(name, &ProtperyXNativeGetterThrowingError, NULL,
v8::Handle<v8::Value>(), v8::DEFAULT, v8::None); v8::Handle<v8::Value>(), v8::DEFAULT, v8::None);
// Create object with named property getter. // Create object with named property getter.
env->Global()->Set(v8::String::NewFromUtf8(env->GetIsolate(), "instance"), env->Global()->Set(v8::String::NewFromUtf8(isolate, "instance"),
named->NewInstance()); named->NewInstance());
// Get mirror for the object with property getter. // Get mirror for the object with property getter.
@ -5216,15 +5219,17 @@ void V8Thread::Run() {
"\n" "\n"
"foo();\n"; "foo();\n";
v8::Isolate::Scope isolate_scope(CcTest::isolate()); v8::Isolate* isolate = CcTest::isolate();
v8::Isolate::Scope isolate_scope(isolate);
DebugLocalContext env; DebugLocalContext env;
v8::HandleScope scope(env->GetIsolate()); v8::HandleScope scope(env->GetIsolate());
v8::Debug::SetMessageHandler2(&ThreadedMessageHandler); v8::Debug::SetMessageHandler2(&ThreadedMessageHandler);
v8::Handle<v8::ObjectTemplate> global_template = v8::ObjectTemplate::New(); v8::Handle<v8::ObjectTemplate> global_template =
v8::ObjectTemplate::New(env->GetIsolate());
global_template->Set( global_template->Set(
v8::String::NewFromUtf8(env->GetIsolate(), "ThreadedAtBarrier1"), v8::String::NewFromUtf8(env->GetIsolate(), "ThreadedAtBarrier1"),
v8::FunctionTemplate::New(CcTest::isolate(), ThreadedAtBarrier1)); v8::FunctionTemplate::New(isolate, ThreadedAtBarrier1));
v8::Handle<v8::Context> context = v8::Context::New(CcTest::isolate(), v8::Handle<v8::Context> context = v8::Context::New(isolate,
NULL, NULL,
global_template); global_template);
v8::Context::Scope context_scope(context); v8::Context::Scope context_scope(context);
@ -5580,68 +5585,70 @@ static void CheckClosure(const v8::FunctionCallbackInfo<v8::Value>& args) {
TEST(CallFunctionInDebugger) { TEST(CallFunctionInDebugger) {
// Create and enter a context with the functions CheckFrameCount, // Create and enter a context with the functions CheckFrameCount,
// CheckSourceLine and CheckDataParameter installed. // CheckSourceLine and CheckDataParameter installed.
v8::HandleScope scope(CcTest::isolate()); v8::Isolate* isolate = CcTest::isolate();
v8::Handle<v8::ObjectTemplate> global_template = v8::ObjectTemplate::New(); v8::HandleScope scope(isolate);
v8::Handle<v8::ObjectTemplate> global_template =
v8::ObjectTemplate::New(isolate);
global_template->Set( global_template->Set(
v8::String::NewFromUtf8(CcTest::isolate(), "CheckFrameCount"), v8::String::NewFromUtf8(isolate, "CheckFrameCount"),
v8::FunctionTemplate::New(CcTest::isolate(), CheckFrameCount)); v8::FunctionTemplate::New(isolate, CheckFrameCount));
global_template->Set( global_template->Set(
v8::String::NewFromUtf8(CcTest::isolate(), "CheckSourceLine"), v8::String::NewFromUtf8(isolate, "CheckSourceLine"),
v8::FunctionTemplate::New(CcTest::isolate(), CheckSourceLine)); v8::FunctionTemplate::New(isolate, CheckSourceLine));
global_template->Set( global_template->Set(
v8::String::NewFromUtf8(CcTest::isolate(), "CheckDataParameter"), v8::String::NewFromUtf8(isolate, "CheckDataParameter"),
v8::FunctionTemplate::New(CcTest::isolate(), CheckDataParameter)); v8::FunctionTemplate::New(isolate, CheckDataParameter));
global_template->Set( global_template->Set(
v8::String::NewFromUtf8(CcTest::isolate(), "CheckClosure"), v8::String::NewFromUtf8(isolate, "CheckClosure"),
v8::FunctionTemplate::New(CcTest::isolate(), CheckClosure)); v8::FunctionTemplate::New(isolate, CheckClosure));
v8::Handle<v8::Context> context = v8::Context::New(CcTest::isolate(), v8::Handle<v8::Context> context = v8::Context::New(isolate,
NULL, NULL,
global_template); global_template);
v8::Context::Scope context_scope(context); v8::Context::Scope context_scope(context);
// Compile a function for checking the number of JavaScript frames. // Compile a function for checking the number of JavaScript frames.
v8::Script::Compile( v8::Script::Compile(
v8::String::NewFromUtf8(CcTest::isolate(), frame_count_source))->Run(); v8::String::NewFromUtf8(isolate, frame_count_source))->Run();
frame_count = v8::Local<v8::Function>::Cast(context->Global()->Get( frame_count = v8::Local<v8::Function>::Cast(context->Global()->Get(
v8::String::NewFromUtf8(CcTest::isolate(), "frame_count"))); v8::String::NewFromUtf8(isolate, "frame_count")));
// Compile a function for returning the source line for the top frame. // Compile a function for returning the source line for the top frame.
v8::Script::Compile(v8::String::NewFromUtf8(CcTest::isolate(), v8::Script::Compile(v8::String::NewFromUtf8(isolate,
frame_source_line_source))->Run(); frame_source_line_source))->Run();
frame_source_line = v8::Local<v8::Function>::Cast(context->Global()->Get( frame_source_line = v8::Local<v8::Function>::Cast(context->Global()->Get(
v8::String::NewFromUtf8(CcTest::isolate(), "frame_source_line"))); v8::String::NewFromUtf8(isolate, "frame_source_line")));
// Compile a function returning the data parameter. // Compile a function returning the data parameter.
v8::Script::Compile(v8::String::NewFromUtf8(CcTest::isolate(), v8::Script::Compile(v8::String::NewFromUtf8(isolate,
debugger_call_with_data_source)) debugger_call_with_data_source))
->Run(); ->Run();
debugger_call_with_data = v8::Local<v8::Function>::Cast( debugger_call_with_data = v8::Local<v8::Function>::Cast(
context->Global()->Get(v8::String::NewFromUtf8( context->Global()->Get(v8::String::NewFromUtf8(
CcTest::isolate(), "debugger_call_with_data"))); isolate, "debugger_call_with_data")));
// Compile a function capturing closure. // Compile a function capturing closure.
debugger_call_with_closure = debugger_call_with_closure =
v8::Local<v8::Function>::Cast(v8::Script::Compile( v8::Local<v8::Function>::Cast(v8::Script::Compile(
v8::String::NewFromUtf8(CcTest::isolate(), v8::String::NewFromUtf8(isolate,
debugger_call_with_closure_source))->Run()); debugger_call_with_closure_source))->Run());
// Calling a function through the debugger returns 0 frames if there are // Calling a function through the debugger returns 0 frames if there are
// no JavaScript frames. // no JavaScript frames.
CHECK_EQ(v8::Integer::New(CcTest::isolate(), 0), CHECK_EQ(v8::Integer::New(isolate, 0),
v8::Debug::Call(frame_count)); v8::Debug::Call(frame_count));
// Test that the number of frames can be retrieved. // Test that the number of frames can be retrieved.
v8::Script::Compile( v8::Script::Compile(
v8::String::NewFromUtf8(CcTest::isolate(), "CheckFrameCount(1)"))->Run(); v8::String::NewFromUtf8(isolate, "CheckFrameCount(1)"))->Run();
v8::Script::Compile(v8::String::NewFromUtf8(CcTest::isolate(), v8::Script::Compile(v8::String::NewFromUtf8(isolate,
"function f() {" "function f() {"
" CheckFrameCount(2);" " CheckFrameCount(2);"
"}; f()"))->Run(); "}; f()"))->Run();
// Test that the source line can be retrieved. // Test that the source line can be retrieved.
v8::Script::Compile( v8::Script::Compile(
v8::String::NewFromUtf8(CcTest::isolate(), "CheckSourceLine(0)"))->Run(); v8::String::NewFromUtf8(isolate, "CheckSourceLine(0)"))->Run();
v8::Script::Compile(v8::String::NewFromUtf8(CcTest::isolate(), v8::Script::Compile(v8::String::NewFromUtf8(isolate,
"function f() {\n" "function f() {\n"
" CheckSourceLine(1)\n" " CheckSourceLine(1)\n"
" CheckSourceLine(2)\n" " CheckSourceLine(2)\n"
@ -5649,20 +5656,20 @@ TEST(CallFunctionInDebugger) {
"}; f()"))->Run(); "}; f()"))->Run();
// Test that a parameter can be passed to a function called in the debugger. // Test that a parameter can be passed to a function called in the debugger.
v8::Script::Compile(v8::String::NewFromUtf8(CcTest::isolate(), v8::Script::Compile(v8::String::NewFromUtf8(isolate,
"CheckDataParameter()"))->Run(); "CheckDataParameter()"))->Run();
// Test that a function with closure can be run in the debugger. // Test that a function with closure can be run in the debugger.
v8::Script::Compile( v8::Script::Compile(
v8::String::NewFromUtf8(CcTest::isolate(), "CheckClosure()"))->Run(); v8::String::NewFromUtf8(isolate, "CheckClosure()"))->Run();
// Test that the source line is correct when there is a line offset. // Test that the source line is correct when there is a line offset.
v8::ScriptOrigin origin(v8::String::NewFromUtf8(CcTest::isolate(), "test"), v8::ScriptOrigin origin(v8::String::NewFromUtf8(isolate, "test"),
v8::Integer::New(CcTest::isolate(), 7)); v8::Integer::New(isolate, 7));
v8::Script::Compile( v8::Script::Compile(
v8::String::NewFromUtf8(CcTest::isolate(), "CheckSourceLine(7)"), &origin) v8::String::NewFromUtf8(isolate, "CheckSourceLine(7)"), &origin)
->Run(); ->Run();
v8::Script::Compile(v8::String::NewFromUtf8(CcTest::isolate(), v8::Script::Compile(v8::String::NewFromUtf8(isolate,
"function f() {\n" "function f() {\n"
" CheckSourceLine(8)\n" " CheckSourceLine(8)\n"
" CheckSourceLine(9)\n" " CheckSourceLine(9)\n"
@ -7167,7 +7174,8 @@ TEST(CallingContextIsNotDebugContext) {
v8::internal::Debug* debug = CcTest::i_isolate()->debug(); v8::internal::Debug* debug = CcTest::i_isolate()->debug();
// Create and enter a debugee context. // Create and enter a debugee context.
DebugLocalContext env; DebugLocalContext env;
v8::HandleScope scope(env->GetIsolate()); v8::Isolate* isolate = env->GetIsolate();
v8::HandleScope scope(isolate);
env.ExposeDebug(); env.ExposeDebug();
// Save handles to the debugger and debugee contexts to be used in // Save handles to the debugger and debugee contexts to be used in
@ -7176,10 +7184,10 @@ TEST(CallingContextIsNotDebugContext) {
debugger_context = v8::Utils::ToLocal(debug->debug_context()); debugger_context = v8::Utils::ToLocal(debug->debug_context());
// Create object with 'a' property accessor. // Create object with 'a' property accessor.
v8::Handle<v8::ObjectTemplate> named = v8::ObjectTemplate::New(); v8::Handle<v8::ObjectTemplate> named = v8::ObjectTemplate::New(isolate);
named->SetAccessor(v8::String::NewFromUtf8(env->GetIsolate(), "a"), named->SetAccessor(v8::String::NewFromUtf8(isolate, "a"),
NamedGetterWithCallingContextCheck); NamedGetterWithCallingContextCheck);
env->Global()->Set(v8::String::NewFromUtf8(env->GetIsolate(), "obj"), env->Global()->Set(v8::String::NewFromUtf8(isolate, "obj"),
named->NewInstance()); named->NewInstance());
// Register the debug event listener // Register the debug event listener

View File

@ -423,7 +423,8 @@ TEST(HeapSnapshotSlicedString) {
TEST(HeapSnapshotConsString) { TEST(HeapSnapshotConsString) {
v8::Isolate* isolate = CcTest::isolate(); v8::Isolate* isolate = CcTest::isolate();
v8::HandleScope scope(isolate); v8::HandleScope scope(isolate);
v8::Local<v8::ObjectTemplate> global_template = v8::ObjectTemplate::New(); v8::Local<v8::ObjectTemplate> global_template =
v8::ObjectTemplate::New(isolate);
global_template->SetInternalFieldCount(1); global_template->SetInternalFieldCount(1);
LocalContext env(NULL, global_template); LocalContext env(NULL, global_template);
v8::Handle<v8::Object> global_proxy = env->Global(); v8::Handle<v8::Object> global_proxy = env->Global();
@ -466,7 +467,8 @@ TEST(HeapSnapshotConsString) {
TEST(HeapSnapshotInternalReferences) { TEST(HeapSnapshotInternalReferences) {
v8::Isolate* isolate = CcTest::isolate(); v8::Isolate* isolate = CcTest::isolate();
v8::HandleScope scope(isolate); v8::HandleScope scope(isolate);
v8::Local<v8::ObjectTemplate> global_template = v8::ObjectTemplate::New(); v8::Local<v8::ObjectTemplate> global_template =
v8::ObjectTemplate::New(isolate);
global_template->SetInternalFieldCount(2); global_template->SetInternalFieldCount(2);
LocalContext env(NULL, global_template); LocalContext env(NULL, global_template);
v8::Handle<v8::Object> global_proxy = env->Global(); v8::Handle<v8::Object> global_proxy = env->Global();

View File

@ -517,7 +517,7 @@ static Handle<Object> CreateAccessCheckedObject(
NamedSecurityCallback namedCallback, NamedSecurityCallback namedCallback,
IndexedSecurityCallback indexedCallback, IndexedSecurityCallback indexedCallback,
Handle<Value> data = Handle<Value>()) { Handle<Value> data = Handle<Value>()) {
Handle<ObjectTemplate> tmpl = ObjectTemplate::New(); Handle<ObjectTemplate> tmpl = ObjectTemplate::New(isolate);
tmpl->SetAccessCheckCallbacks(namedCallback, indexedCallback, data); tmpl->SetAccessCheckCallbacks(namedCallback, indexedCallback, data);
Handle<Object> instance = tmpl->NewInstance(); Handle<Object> instance = tmpl->NewInstance();
Handle<Object> global = instance->CreationContext()->Global(); Handle<Object> global = instance->CreationContext()->Global();

View File

@ -72,7 +72,8 @@ void GetStackPointer(const v8::FunctionCallbackInfo<v8::Value>& args) {
TEST(StackAlignment) { TEST(StackAlignment) {
v8::Isolate* isolate = CcTest::isolate(); v8::Isolate* isolate = CcTest::isolate();
v8::HandleScope handle_scope(isolate); v8::HandleScope handle_scope(isolate);
v8::Handle<v8::ObjectTemplate> global_template = v8::ObjectTemplate::New(); v8::Handle<v8::ObjectTemplate> global_template =
v8::ObjectTemplate::New(isolate);
global_template->Set(v8_str("get_stack_pointer"), global_template->Set(v8_str("get_stack_pointer"),
v8::FunctionTemplate::New(isolate, GetStackPointer)); v8::FunctionTemplate::New(isolate, GetStackPointer));

View File

@ -105,7 +105,7 @@ v8::Handle<v8::ObjectTemplate> CreateGlobalTemplate(
v8::Isolate* isolate, v8::Isolate* isolate,
v8::FunctionCallback terminate, v8::FunctionCallback terminate,
v8::FunctionCallback doloop) { v8::FunctionCallback doloop) {
v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New(); v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New(isolate);
global->Set(v8::String::NewFromUtf8(isolate, "terminate"), global->Set(v8::String::NewFromUtf8(isolate, "terminate"),
v8::FunctionTemplate::New(isolate, terminate)); v8::FunctionTemplate::New(isolate, terminate));
global->Set(v8::String::NewFromUtf8(isolate, "fail"), global->Set(v8::String::NewFromUtf8(isolate, "fail"),
@ -244,7 +244,7 @@ void LoopGetProperty(const v8::FunctionCallbackInfo<v8::Value>& args) {
TEST(TerminateLoadICException) { TEST(TerminateLoadICException) {
v8::Isolate* isolate = CcTest::isolate(); v8::Isolate* isolate = CcTest::isolate();
v8::HandleScope scope(isolate); v8::HandleScope scope(isolate);
v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New(); v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New(isolate);
global->Set( global->Set(
v8::String::NewFromUtf8(isolate, "terminate_or_return_object"), v8::String::NewFromUtf8(isolate, "terminate_or_return_object"),
v8::FunctionTemplate::New(isolate, TerminateOrReturnObject)); v8::FunctionTemplate::New(isolate, TerminateOrReturnObject));

View File

@ -245,7 +245,7 @@ int main(int argc, char* argv[]) {
v8::Isolate* isolate = v8::Isolate::GetCurrent(); v8::Isolate* isolate = v8::Isolate::GetCurrent();
{ {
v8::HandleScope handle_scope(isolate); v8::HandleScope handle_scope(isolate);
v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New(); v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New(isolate);
v8::Local<v8::Context> context = v8::Context::New(isolate, NULL, global); v8::Local<v8::Context> context = v8::Context::New(isolate, NULL, global);
ASSERT(!context.IsEmpty()); ASSERT(!context.IsEmpty());
{ {