Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1318)

Unified Diff: test/cctest/test-api.cc

Issue 12716010: Added a version of the v8::HandleScope constructor with an Isolate and use that consistently. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Feedback. Rebased Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « test/cctest/test-alloc.cc ('k') | test/cctest/test-assembler-arm.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/cctest/test-api.cc
diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
index c75bd0002605d33e17e4e289652553f561a70a95..e06cb77c6233d8512ec6fb37626c0ae64b4b90cf 100644
--- a/test/cctest/test-api.cc
+++ b/test/cctest/test-api.cc
@@ -144,7 +144,7 @@ static v8::Handle<Value> SignatureCallback(const v8::Arguments& args) {
THREADED_TEST(Handles) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<Context> local_env;
{
LocalContext env;
@@ -169,8 +169,8 @@ THREADED_TEST(Handles) {
THREADED_TEST(IsolateOfContext) {
- v8::HandleScope scope;
v8::Persistent<Context> env = Context::New();
+ v8::HandleScope scope(env->GetIsolate());
CHECK(!env->InContext());
CHECK(env->GetIsolate() == v8::Isolate::GetCurrent());
@@ -186,8 +186,8 @@ THREADED_TEST(IsolateOfContext) {
THREADED_TEST(ReceiverSignature) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::Handle<v8::FunctionTemplate> fun = v8::FunctionTemplate::New();
v8::Handle<v8::Signature> sig = v8::Signature::New(fun);
fun->PrototypeTemplate()->Set(
@@ -230,8 +230,8 @@ THREADED_TEST(ReceiverSignature) {
THREADED_TEST(ArgumentSignature) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::Handle<v8::FunctionTemplate> cons = v8::FunctionTemplate::New();
cons->SetClassName(v8_str("Cons"));
v8::Handle<v8::Signature> sig =
@@ -292,8 +292,8 @@ THREADED_TEST(ArgumentSignature) {
THREADED_TEST(HulIgennem) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::Handle<v8::Primitive> undef = v8::Undefined();
Local<String> undef_str = undef->ToString();
char* value = i::NewArray<char>(undef_str->Length() + 1);
@@ -304,8 +304,8 @@ THREADED_TEST(HulIgennem) {
THREADED_TEST(Access) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
Local<v8::Object> obj = v8::Object::New();
Local<Value> foo_before = obj->Get(v8_str("foo"));
CHECK(foo_before->IsUndefined());
@@ -319,8 +319,8 @@ THREADED_TEST(Access) {
THREADED_TEST(AccessElement) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
Local<v8::Object> obj = v8::Object::New();
Local<Value> before = obj->Get(1);
CHECK(before->IsUndefined());
@@ -338,8 +338,8 @@ THREADED_TEST(AccessElement) {
THREADED_TEST(Script) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
const char* c_source = "1 + 2 + 3";
Local<String> source = String::New(c_source);
Local<Script> script = Script::Compile(source);
@@ -410,8 +410,8 @@ THREADED_TEST(ScriptUsingStringResource) {
const char* c_source = "1 + 2 * 3";
uint16_t* two_byte_source = AsciiToTwoByteString(c_source);
{
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
TestResource* resource = new TestResource(two_byte_source, &dispose_count);
Local<String> source = String::NewExternal(resource);
Local<Script> script = Script::Compile(source);
@@ -438,8 +438,8 @@ THREADED_TEST(ScriptUsingAsciiStringResource) {
int dispose_count = 0;
const char* c_source = "1 + 2 * 3";
{
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
TestAsciiResource* resource = new TestAsciiResource(i::StrDup(c_source),
&dispose_count);
Local<String> source = String::NewExternal(resource);
@@ -467,8 +467,8 @@ THREADED_TEST(ScriptMakingExternalString) {
int dispose_count = 0;
uint16_t* two_byte_source = AsciiToTwoByteString("1 + 2 * 3");
{
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
Local<String> source = String::New(two_byte_source);
// Trigger GCs so that the newly allocated string moves to old gen.
HEAP->CollectGarbage(i::NEW_SPACE); // in survivor space now
@@ -498,8 +498,8 @@ THREADED_TEST(ScriptMakingExternalAsciiString) {
int dispose_count = 0;
const char* c_source = "1 + 2 * 3";
{
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
Local<String> source = v8_str(c_source);
// Trigger GCs so that the newly allocated string moves to old gen.
HEAP->CollectGarbage(i::NEW_SPACE); // in survivor space now
@@ -521,8 +521,8 @@ THREADED_TEST(ScriptMakingExternalAsciiString) {
TEST(MakingExternalStringConditions) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
// Free some space in the new space so that we can check freshness.
HEAP->CollectGarbage(i::NEW_SPACE);
@@ -567,8 +567,8 @@ TEST(MakingExternalStringConditions) {
TEST(MakingExternalAsciiStringConditions) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
// Free some space in the new space so that we can check freshness.
HEAP->CollectGarbage(i::NEW_SPACE);
@@ -605,7 +605,7 @@ TEST(MakingExternalAsciiStringConditions) {
THREADED_TEST(UsingExternalString) {
{
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
uint16_t* two_byte_string = AsciiToTwoByteString("test string");
Local<String> string =
String::NewExternal(new TestResource(two_byte_string));
@@ -624,7 +624,7 @@ THREADED_TEST(UsingExternalString) {
THREADED_TEST(UsingExternalAsciiString) {
{
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
const char* one_byte_string = "test string";
Local<String> string = String::NewExternal(
new TestAsciiResource(i::StrDup(one_byte_string)));
@@ -647,7 +647,7 @@ THREADED_TEST(ScavengeExternalString) {
int dispose_count = 0;
bool in_new_space = false;
{
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
uint16_t* two_byte_string = AsciiToTwoByteString("test string");
Local<String> string =
String::NewExternal(new TestResource(two_byte_string,
@@ -669,7 +669,7 @@ THREADED_TEST(ScavengeExternalAsciiString) {
int dispose_count = 0;
bool in_new_space = false;
{
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
const char* one_byte_string = "test string";
Local<String> string = String::NewExternal(
new TestAsciiResource(i::StrDup(one_byte_string), &dispose_count));
@@ -715,8 +715,8 @@ TEST(ExternalStringWithDisposeHandling) {
TestAsciiResourceWithDisposeControl::dispose_calls = 0;
TestAsciiResourceWithDisposeControl res_stack(i::StrDup(c_source), false);
{
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
Local<String> source = String::NewExternal(&res_stack);
Local<Script> script = Script::Compile(source);
Local<Value> value = script->Run();
@@ -736,8 +736,8 @@ TEST(ExternalStringWithDisposeHandling) {
TestAsciiResource* res_heap =
new TestAsciiResourceWithDisposeControl(i::StrDup(c_source), true);
{
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
Local<String> source = String::NewExternal(res_heap);
Local<Script> script = Script::Compile(source);
Local<Value> value = script->Run();
@@ -755,8 +755,8 @@ TEST(ExternalStringWithDisposeHandling) {
THREADED_TEST(StringConcat) {
{
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
const char* one_byte_string_1 = "function a_times_t";
const char* two_byte_string_1 = "wo_plus_b(a, b) {return ";
const char* one_byte_extern_1 = "a * 2 + b;} a_times_two_plus_b(4, 8) + ";
@@ -800,8 +800,8 @@ THREADED_TEST(StringConcat) {
THREADED_TEST(GlobalProperties) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::Handle<v8::Object> global = env->Global();
global->Set(v8_str("pi"), v8_num(3.1415926));
Local<Value> pi = global->Get(v8_str("pi"));
@@ -829,8 +829,8 @@ static v8::Handle<Value> Return239(Local<String> name, const AccessorInfo&) {
THREADED_TEST(FunctionTemplate) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
{
Local<v8::FunctionTemplate> fun_templ =
v8::FunctionTemplate::New(handle_call);
@@ -870,8 +870,8 @@ THREADED_TEST(FunctionTemplate) {
THREADED_TEST(FunctionTemplateSetLength) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
{
Local<v8::FunctionTemplate> fun_templ = v8::FunctionTemplate::New(
handle_call, Handle<v8::Value>(), Handle<v8::Signature>(), 23);
@@ -910,8 +910,8 @@ static v8::Handle<v8::Value> callback(const v8::Arguments& args) {
static void TestExternalPointerWrapping() {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::Handle<v8::Value> data = v8::External::New(expected_ptr);
@@ -975,8 +975,8 @@ THREADED_TEST(ExternalWrap) {
THREADED_TEST(FindInstanceInPrototypeChain) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
Local<v8::FunctionTemplate> base = v8::FunctionTemplate::New();
Local<v8::FunctionTemplate> derived = v8::FunctionTemplate::New();
@@ -1022,8 +1022,8 @@ THREADED_TEST(FindInstanceInPrototypeChain) {
THREADED_TEST(TinyInteger) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::Isolate* isolate = v8::Isolate::GetCurrent();
int32_t value = 239;
@@ -1036,8 +1036,8 @@ THREADED_TEST(TinyInteger) {
THREADED_TEST(BigSmiInteger) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::Isolate* isolate = v8::Isolate::GetCurrent();
int32_t value = i::Smi::kMaxValue;
@@ -1056,8 +1056,8 @@ THREADED_TEST(BigSmiInteger) {
THREADED_TEST(BigInteger) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::Isolate* isolate = v8::Isolate::GetCurrent();
// We cannot add one to a Smi::kMaxValue without wrapping.
@@ -1079,8 +1079,8 @@ THREADED_TEST(BigInteger) {
THREADED_TEST(TinyUnsignedInteger) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::Isolate* isolate = v8::Isolate::GetCurrent();
uint32_t value = 239;
@@ -1094,8 +1094,8 @@ THREADED_TEST(TinyUnsignedInteger) {
THREADED_TEST(BigUnsignedSmiInteger) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::Isolate* isolate = v8::Isolate::GetCurrent();
uint32_t value = static_cast<uint32_t>(i::Smi::kMaxValue);
@@ -1111,8 +1111,8 @@ THREADED_TEST(BigUnsignedSmiInteger) {
THREADED_TEST(BigUnsignedInteger) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::Isolate* isolate = v8::Isolate::GetCurrent();
uint32_t value = static_cast<uint32_t>(i::Smi::kMaxValue) + 1;
@@ -1128,8 +1128,8 @@ THREADED_TEST(BigUnsignedInteger) {
THREADED_TEST(OutOfSignedRangeUnsignedInteger) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::Isolate* isolate = v8::Isolate::GetCurrent();
uint32_t INT32_MAX_AS_UINT = (1U << 31) - 1;
@@ -1145,8 +1145,8 @@ THREADED_TEST(OutOfSignedRangeUnsignedInteger) {
THREADED_TEST(IsNativeError) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::Handle<Value> syntax_error = CompileRun(
"var out = 0; try { eval(\"#\"); } catch(x) { out = x; } out; ");
CHECK(syntax_error->IsNativeError());
@@ -1158,8 +1158,8 @@ THREADED_TEST(IsNativeError) {
THREADED_TEST(StringObject) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::Handle<Value> boxed_string = CompileRun("new String(\"test\")");
CHECK(boxed_string->IsStringObject());
v8::Handle<Value> unboxed_string = CompileRun("\"test\"");
@@ -1183,8 +1183,8 @@ THREADED_TEST(StringObject) {
THREADED_TEST(NumberObject) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::Handle<Value> boxed_number = CompileRun("new Number(42)");
CHECK(boxed_number->IsNumberObject());
v8::Handle<Value> unboxed_number = CompileRun("42");
@@ -1204,8 +1204,8 @@ THREADED_TEST(NumberObject) {
THREADED_TEST(BooleanObject) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::Handle<Value> boxed_boolean = CompileRun("new Boolean(true)");
CHECK(boxed_boolean->IsBooleanObject());
v8::Handle<Value> unboxed_boolean = CompileRun("true");
@@ -1229,8 +1229,8 @@ THREADED_TEST(BooleanObject) {
THREADED_TEST(Number) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
double PI = 3.1415926;
Local<v8::Number> pi_obj = v8::Number::New(PI);
CHECK_EQ(PI, pi_obj->NumberValue());
@@ -1238,8 +1238,8 @@ THREADED_TEST(Number) {
THREADED_TEST(ToNumber) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
Local<String> str = v8_str("3.1415926");
CHECK_EQ(3.1415926, str->NumberValue());
v8::Handle<v8::Boolean> t = v8::True();
@@ -1250,8 +1250,8 @@ THREADED_TEST(ToNumber) {
THREADED_TEST(Date) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
double PI = 3.1415926;
Local<Value> date = v8::Date::New(PI);
CHECK_EQ(3.0, date->NumberValue());
@@ -1261,8 +1261,8 @@ THREADED_TEST(Date) {
THREADED_TEST(Boolean) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::Handle<v8::Boolean> t = v8::True();
CHECK(t->Value());
v8::Handle<v8::Boolean> f = v8::False();
@@ -1296,7 +1296,7 @@ static v8::Handle<Value> GetM(Local<String> name, const AccessorInfo&) {
THREADED_TEST(GlobalPrototype) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::FunctionTemplate> func_templ = v8::FunctionTemplate::New();
func_templ->PrototypeTemplate()->Set(
"dummy",
@@ -1314,7 +1314,7 @@ THREADED_TEST(GlobalPrototype) {
THREADED_TEST(ObjectTemplate) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ1 = ObjectTemplate::New();
templ1->Set("x", v8_num(10));
templ1->Set("y", v8_num(13));
@@ -1350,7 +1350,7 @@ static v8::Handle<Value> GetKnurd(Local<String> property, const AccessorInfo&) {
THREADED_TEST(DescriptorInheritance) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::FunctionTemplate> super = v8::FunctionTemplate::New();
super->PrototypeTemplate()->Set("flabby",
v8::FunctionTemplate::New(GetFlabby));
@@ -1481,7 +1481,7 @@ void AddInterceptor(Handle<FunctionTemplate> templ,
}
THREADED_TEST(EmptyInterceptorDoesNotShadowAccessors) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Handle<FunctionTemplate> parent = FunctionTemplate::New();
Handle<FunctionTemplate> child = FunctionTemplate::New();
child->Inherit(parent);
@@ -1498,7 +1498,7 @@ THREADED_TEST(EmptyInterceptorDoesNotShadowAccessors) {
}
THREADED_TEST(EmptyInterceptorDoesNotShadowJSAccessors) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Handle<FunctionTemplate> parent = FunctionTemplate::New();
Handle<FunctionTemplate> child = FunctionTemplate::New();
child->Inherit(parent);
@@ -1518,7 +1518,7 @@ THREADED_TEST(EmptyInterceptorDoesNotShadowJSAccessors) {
}
THREADED_TEST(EmptyInterceptorDoesNotAffectJSProperties) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Handle<FunctionTemplate> parent = FunctionTemplate::New();
Handle<FunctionTemplate> child = FunctionTemplate::New();
child->Inherit(parent);
@@ -1537,7 +1537,7 @@ THREADED_TEST(EmptyInterceptorDoesNotAffectJSProperties) {
}
THREADED_TEST(SwitchFromInterceptorToAccessor) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Handle<FunctionTemplate> templ = FunctionTemplate::New();
AddAccessor(templ, v8_str("age"),
SimpleAccessorGetter, SimpleAccessorSetter);
@@ -1554,7 +1554,7 @@ THREADED_TEST(SwitchFromInterceptorToAccessor) {
}
THREADED_TEST(SwitchFromAccessorToInterceptor) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Handle<FunctionTemplate> templ = FunctionTemplate::New();
AddAccessor(templ, v8_str("age"),
SimpleAccessorGetter, SimpleAccessorSetter);
@@ -1571,7 +1571,7 @@ THREADED_TEST(SwitchFromAccessorToInterceptor) {
}
THREADED_TEST(SwitchFromInterceptorToAccessorWithInheritance) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Handle<FunctionTemplate> parent = FunctionTemplate::New();
Handle<FunctionTemplate> child = FunctionTemplate::New();
child->Inherit(parent);
@@ -1590,7 +1590,7 @@ THREADED_TEST(SwitchFromInterceptorToAccessorWithInheritance) {
}
THREADED_TEST(SwitchFromAccessorToInterceptorWithInheritance) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Handle<FunctionTemplate> parent = FunctionTemplate::New();
Handle<FunctionTemplate> child = FunctionTemplate::New();
child->Inherit(parent);
@@ -1609,7 +1609,7 @@ THREADED_TEST(SwitchFromAccessorToInterceptorWithInheritance) {
}
THREADED_TEST(SwitchFromInterceptorToJSAccessor) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Handle<FunctionTemplate> templ = FunctionTemplate::New();
AddInterceptor(templ, InterceptorGetter, InterceptorSetter);
LocalContext env;
@@ -1633,7 +1633,7 @@ THREADED_TEST(SwitchFromInterceptorToJSAccessor) {
}
THREADED_TEST(SwitchFromJSAccessorToInterceptor) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Handle<FunctionTemplate> templ = FunctionTemplate::New();
AddInterceptor(templ, InterceptorGetter, InterceptorSetter);
LocalContext env;
@@ -1657,7 +1657,7 @@ THREADED_TEST(SwitchFromJSAccessorToInterceptor) {
}
THREADED_TEST(SwitchFromInterceptorToProperty) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Handle<FunctionTemplate> parent = FunctionTemplate::New();
Handle<FunctionTemplate> child = FunctionTemplate::New();
child->Inherit(parent);
@@ -1674,7 +1674,7 @@ THREADED_TEST(SwitchFromInterceptorToProperty) {
}
THREADED_TEST(SwitchFromPropertyToInterceptor) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Handle<FunctionTemplate> parent = FunctionTemplate::New();
Handle<FunctionTemplate> child = FunctionTemplate::New();
child->Inherit(parent);
@@ -1692,7 +1692,7 @@ THREADED_TEST(SwitchFromPropertyToInterceptor) {
THREADED_TEST(NamedPropertyHandlerGetter) {
echo_named_call_count = 0;
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::FunctionTemplate> templ = v8::FunctionTemplate::New();
templ->InstanceTemplate()->SetNamedPropertyHandler(EchoNamedProperty,
0, 0, 0, 0,
@@ -1727,7 +1727,7 @@ static v8::Handle<Value> EchoIndexedProperty(uint32_t index,
THREADED_TEST(IndexedPropertyHandlerGetter) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::FunctionTemplate> templ = v8::FunctionTemplate::New();
templ->InstanceTemplate()->SetIndexedPropertyHandler(EchoIndexedProperty,
0, 0, 0, 0,
@@ -1828,8 +1828,8 @@ v8::Handle<v8::Array> CheckThisNamedPropertyEnumerator(
THREADED_TEST(PropertyHandlerInPrototype) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
// Set up a prototype chain with three interceptors.
v8::Handle<v8::FunctionTemplate> templ = v8::FunctionTemplate::New();
@@ -1897,7 +1897,7 @@ static v8::Handle<v8::Integer> PrePropertyHandlerQuery(Local<String> key,
THREADED_TEST(PrePropertyHandler) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::FunctionTemplate> desc = v8::FunctionTemplate::New();
desc->InstanceTemplate()->SetNamedPropertyHandler(PrePropertyHandlerGet,
0,
@@ -1915,8 +1915,8 @@ THREADED_TEST(PrePropertyHandler) {
THREADED_TEST(UndefinedIsNotEnumerable) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::Handle<Value> result = Script::Compile(v8_str(
"this.propertyIsEnumerable(undefined)"))->Run();
CHECK(result->IsFalse());
@@ -1952,7 +1952,7 @@ static v8::Handle<Value> CallFunctionRecursivelyCall(
THREADED_TEST(DeepCrossLanguageRecursion) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> global = ObjectTemplate::New();
global->Set(v8_str("callScriptRecursively"),
v8::FunctionTemplate::New(CallScriptRecursivelyCall));
@@ -1986,7 +1986,7 @@ static v8::Handle<Value> ThrowingPropertyHandlerSet(Local<String> key,
THREADED_TEST(CallbackExceptionRegression) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New();
obj->SetNamedPropertyHandler(ThrowingPropertyHandlerGet,
ThrowingPropertyHandlerSet);
@@ -2002,7 +2002,7 @@ THREADED_TEST(CallbackExceptionRegression) {
THREADED_TEST(FunctionPrototype) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<v8::FunctionTemplate> Foo = v8::FunctionTemplate::New();
Foo->PrototypeTemplate()->Set(v8_str("plak"), v8_num(321));
LocalContext env;
@@ -2013,8 +2013,8 @@ THREADED_TEST(FunctionPrototype) {
THREADED_TEST(InternalFields) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
Local<v8::FunctionTemplate> templ = v8::FunctionTemplate::New();
Local<v8::ObjectTemplate> instance_templ = templ->InstanceTemplate();
@@ -2028,7 +2028,7 @@ THREADED_TEST(InternalFields) {
THREADED_TEST(GlobalObjectInternalFields) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<v8::ObjectTemplate> global_template = v8::ObjectTemplate::New();
global_template->SetInternalFieldCount(1);
LocalContext env(NULL, global_template);
@@ -2051,8 +2051,8 @@ static void CheckAlignedPointerInInternalField(Handle<v8::Object> obj,
THREADED_TEST(InternalFieldsAlignedPointers) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
Local<v8::FunctionTemplate> templ = v8::FunctionTemplate::New();
Local<v8::ObjectTemplate> instance_templ = templ->InstanceTemplate();
@@ -2090,8 +2090,8 @@ static void* AlignedTestPointer(int i) {
THREADED_TEST(EmbedderDataAlignedPointers) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
CheckAlignedPointerInEmbedderData(&env, 0, NULL);
@@ -2124,8 +2124,8 @@ static void CheckEmbedderData(LocalContext* env,
}
THREADED_TEST(EmbedderData) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
CheckEmbedderData(&env, 3, v8::String::New("The quick brown fox jumps"));
CheckEmbedderData(&env, 2, v8::String::New("over the lazy dog."));
@@ -2135,8 +2135,8 @@ THREADED_TEST(EmbedderData) {
THREADED_TEST(IdentityHash) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
// Ensure that the test starts with an fresh heap to test whether the hash
// code is based on the address.
@@ -2179,8 +2179,8 @@ THREADED_TEST(IdentityHash) {
THREADED_TEST(HiddenProperties) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::Local<v8::Object> obj = v8::Object::New();
v8::Local<v8::String> key = v8_str("api-test::hidden-key");
@@ -2234,8 +2234,8 @@ THREADED_TEST(Regress97784) {
// Regression test for crbug.com/97784
// Messing with the Object.prototype should not have effect on
// hidden properties.
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::Local<v8::Object> obj = v8::Object::New();
v8::Local<v8::String> key = v8_str("hidden");
@@ -2267,8 +2267,8 @@ static v8::Handle<Value> InterceptorForHiddenProperties(
THREADED_TEST(HiddenPropertiesWithInterceptors) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
interceptor_for_hidden_properties_called = false;
@@ -2287,7 +2287,7 @@ THREADED_TEST(HiddenPropertiesWithInterceptors) {
THREADED_TEST(External) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
int x = 3;
Local<v8::External> ext = v8::External::New(&x);
LocalContext env;
@@ -2322,7 +2322,7 @@ THREADED_TEST(GlobalHandle) {
v8::Isolate* isolate = v8::Isolate::GetCurrent();
v8::Persistent<String> global;
{
- v8::HandleScope scope;
+ v8::HandleScope scope(isolate);
Local<String> str = v8_str("str");
global = v8::Persistent<String>::New(isolate, str);
}
@@ -2330,7 +2330,7 @@ THREADED_TEST(GlobalHandle) {
global.Dispose(isolate);
{
- v8::HandleScope scope;
+ v8::HandleScope scope(isolate);
Local<String> str = v8_str("str");
global = v8::Persistent<String>::New(isolate, str);
}
@@ -2340,7 +2340,7 @@ THREADED_TEST(GlobalHandle) {
THREADED_TEST(LocalHandle) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Local<String> local = v8::Local<String>::New(v8_str("str"));
CHECK_EQ(local->Length(), 3);
@@ -2372,9 +2372,9 @@ static void WeakPointerCallback(v8::Isolate* isolate,
THREADED_TEST(ApiObjectGroups) {
- HandleScope scope;
LocalContext env;
v8::Isolate* iso = env->GetIsolate();
+ HandleScope scope(iso);
Persistent<Object> g1s1;
Persistent<Object> g1s2;
@@ -2386,7 +2386,7 @@ THREADED_TEST(ApiObjectGroups) {
WeakCallCounter counter(1234);
{
- HandleScope scope;
+ HandleScope scope(iso);
g1s1 = Persistent<Object>::New(iso, Object::New());
g1s2 = Persistent<Object>::New(iso, Object::New());
g1c1 = Persistent<Object>::New(iso, Object::New());
@@ -2458,9 +2458,9 @@ THREADED_TEST(ApiObjectGroups) {
THREADED_TEST(ApiObjectGroupsCycle) {
- HandleScope scope;
LocalContext env;
v8::Isolate* iso = env->GetIsolate();
+ HandleScope scope(iso);
WeakCallCounter counter(1234);
@@ -2474,7 +2474,7 @@ THREADED_TEST(ApiObjectGroupsCycle) {
Persistent<Object> g4s2;
{
- HandleScope scope;
+ HandleScope scope(iso);
g1s1 = Persistent<Object>::New(iso, Object::New());
g1s2 = Persistent<Object>::New(iso, Object::New());
g1s1.MakeWeak(iso, reinterpret_cast<void*>(&counter), &WeakPointerCallback);
@@ -2568,9 +2568,9 @@ THREADED_TEST(ApiObjectGroupsCycle) {
TEST(ApiObjectGroupsCycleForScavenger) {
i::FLAG_stress_compaction = false;
i::FLAG_gc_global = false;
- HandleScope scope;
LocalContext env;
v8::Isolate* iso = env->GetIsolate();
+ HandleScope scope(iso);
WeakCallCounter counter(1234);
@@ -2582,7 +2582,7 @@ TEST(ApiObjectGroupsCycleForScavenger) {
Persistent<Object> g3s2;
{
- HandleScope scope;
+ HandleScope scope(iso);
g1s1 = Persistent<Object>::New(iso, Object::New());
g1s2 = Persistent<Object>::New(iso, Object::New());
g1s1.MakeWeak(iso, reinterpret_cast<void*>(&counter), &WeakPointerCallback);
@@ -2661,8 +2661,8 @@ TEST(ApiObjectGroupsCycleForScavenger) {
THREADED_TEST(ScriptException) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
Local<Script> script = Script::Compile(v8_str("throw 'panama!';"));
v8::TryCatch try_catch;
Local<Value> result = script->Run();
@@ -2674,8 +2674,8 @@ THREADED_TEST(ScriptException) {
TEST(TryCatchCustomException) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::TryCatch try_catch;
CompileRun("function CustomError() { this.a = 'b'; }"
"(function f() { throw new CustomError(); })();");
@@ -2699,7 +2699,7 @@ static void check_message_0(v8::Handle<v8::Message> message,
THREADED_TEST(MessageHandler0) {
message_received = false;
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
CHECK(!message_received);
v8::V8::AddMessageListener(check_message_0, v8_num(5.76));
LocalContext context;
@@ -2725,7 +2725,7 @@ static void check_message_1(v8::Handle<v8::Message> message,
TEST(MessageHandler1) {
message_received = false;
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
CHECK(!message_received);
v8::V8::AddMessageListener(check_message_1);
LocalContext context;
@@ -2749,7 +2749,7 @@ static void check_message_2(v8::Handle<v8::Message> message,
TEST(MessageHandler2) {
message_received = false;
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
CHECK(!message_received);
v8::V8::AddMessageListener(check_message_2);
LocalContext context;
@@ -2765,8 +2765,8 @@ TEST(MessageHandler2) {
THREADED_TEST(GetSetProperty) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
context->Global()->Set(v8_str("foo"), v8_num(14));
context->Global()->Set(v8_str("12"), v8_num(92));
context->Global()->Set(v8::Integer::New(16), v8_num(32));
@@ -2792,8 +2792,8 @@ THREADED_TEST(GetSetProperty) {
THREADED_TEST(PropertyAttributes) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
// none
Local<String> prop = v8_str("none");
context->Global()->Set(prop, v8_num(7));
@@ -2836,8 +2836,8 @@ THREADED_TEST(PropertyAttributes) {
THREADED_TEST(Array) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
Local<v8::Array> array = v8::Array::New();
CHECK_EQ(0, array->Length());
CHECK(array->Get(0)->IsUndefined());
@@ -2864,7 +2864,7 @@ THREADED_TEST(Array) {
v8::Handle<Value> HandleF(const v8::Arguments& args) {
- v8::HandleScope scope;
+ v8::HandleScope scope(args.GetIsolate());
ApiTestFuzzer::Fuzz();
Local<v8::Array> result = v8::Array::New(args.Length());
for (int i = 0; i < args.Length(); i++)
@@ -2874,7 +2874,7 @@ v8::Handle<Value> HandleF(const v8::Arguments& args) {
THREADED_TEST(Vector) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> global = ObjectTemplate::New();
global->Set(v8_str("f"), v8::FunctionTemplate::New(HandleF));
LocalContext context(0, global);
@@ -2912,8 +2912,8 @@ THREADED_TEST(Vector) {
THREADED_TEST(FunctionCall) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
CompileRun(
"function Foo() {"
" var result = [];"
@@ -2980,8 +2980,8 @@ TEST(OutOfMemory) {
v8::SetResourceConstraints(&constraints);
// Execute a script that causes out of memory.
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::V8::IgnoreOutOfMemoryException();
Local<Script> script =
Script::Compile(String::New(js_code_causing_out_of_memory));
@@ -2996,8 +2996,8 @@ TEST(OutOfMemory) {
v8::Handle<Value> ProvokeOutOfMemory(const v8::Arguments& args) {
ApiTestFuzzer::Fuzz();
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
Local<Script> script =
Script::Compile(String::New(js_code_causing_out_of_memory));
Local<Value> result = script->Run();
@@ -3020,7 +3020,7 @@ TEST(OutOfMemoryNested) {
constraints.set_max_old_space_size(4 * K * K);
v8::SetResourceConstraints(&constraints);
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->Set(v8_str("ProvokeOutOfMemory"),
v8::FunctionTemplate::New(ProvokeOutOfMemory));
@@ -3052,8 +3052,8 @@ TEST(HugeConsStringOutOfMemory) {
// Execute a script that causes out of memory.
v8::V8::IgnoreOutOfMemoryException();
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
// Build huge string. This should fail with out of memory exception.
Local<Value> result = CompileRun(
@@ -3067,8 +3067,8 @@ TEST(HugeConsStringOutOfMemory) {
THREADED_TEST(ConstructCall) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
CompileRun(
"function Foo() {"
" var result = [];"
@@ -3127,8 +3127,8 @@ static void CheckUncle(v8::TryCatch* try_catch) {
THREADED_TEST(ConversionNumber) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
// Very large number.
CompileRun("var obj = Math.pow(2,32) * 1237;");
Local<Value> obj = env->Global()->Get(v8_str("obj"));
@@ -3175,8 +3175,8 @@ THREADED_TEST(ConversionNumber) {
THREADED_TEST(isNumberType) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
// Very large number.
CompileRun("var obj = Math.pow(2,32) * 1237;");
Local<Value> obj = env->Global()->Get(v8_str("obj"));
@@ -3226,8 +3226,8 @@ THREADED_TEST(isNumberType) {
THREADED_TEST(ConversionException) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
CompileRun(
"function TestClass() { };"
"TestClass.prototype.toString = function () { throw 'uncle?'; };"
@@ -3287,7 +3287,7 @@ v8::Handle<Value> ThrowFromC(const v8::Arguments& args) {
v8::Handle<Value> CCatcher(const v8::Arguments& args) {
if (args.Length() < 1) return v8::False();
- v8::HandleScope scope;
+ v8::HandleScope scope(args.GetIsolate());
v8::TryCatch try_catch;
Local<Value> result = v8::Script::Compile(args[0]->ToString())->Run();
CHECK(!try_catch.HasCaught() || result.IsEmpty());
@@ -3296,7 +3296,7 @@ v8::Handle<Value> CCatcher(const v8::Arguments& args) {
THREADED_TEST(APICatch) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->Set(v8_str("ThrowFromC"),
v8::FunctionTemplate::New(ThrowFromC));
@@ -3314,7 +3314,7 @@ THREADED_TEST(APICatch) {
THREADED_TEST(APIThrowTryCatch) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->Set(v8_str("ThrowFromC"),
v8::FunctionTemplate::New(ThrowFromC));
@@ -3333,7 +3333,7 @@ THREADED_TEST(APIThrowTryCatch) {
// JS stack. This test therefore fails on the simulator. The test is
// not threaded to allow the threading tests to run on the simulator.
TEST(TryCatchInTryFinally) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->Set(v8_str("CCatcher"),
v8::FunctionTemplate::New(CCatcher));
@@ -3368,7 +3368,7 @@ static v8::Handle<Value> Fail(const v8::Arguments& args) {
// formatting. However, they are invoked when performing normal error
// string conversions.
TEST(APIThrowMessageOverwrittenToString) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::V8::AddMessageListener(check_reference_error_message);
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->Set(v8_str("fail"), v8::FunctionTemplate::New(Fail));
@@ -3414,9 +3414,9 @@ static void check_custom_error_message(
TEST(CustomErrorToString) {
- v8::HandleScope scope;
- v8::V8::AddMessageListener(check_custom_error_message);
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
+ v8::V8::AddMessageListener(check_custom_error_message);
CompileRun(
"function MyError(name, message) { "
" this.name = name; "
@@ -3440,7 +3440,7 @@ static void receive_message(v8::Handle<v8::Message> message,
TEST(APIThrowMessage) {
message_received = false;
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::V8::AddMessageListener(receive_message);
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->Set(v8_str("ThrowFromC"),
@@ -3454,7 +3454,7 @@ TEST(APIThrowMessage) {
TEST(APIThrowMessageAndVerboseTryCatch) {
message_received = false;
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::V8::AddMessageListener(receive_message);
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->Set(v8_str("ThrowFromC"),
@@ -3472,9 +3472,9 @@ TEST(APIThrowMessageAndVerboseTryCatch) {
TEST(APIStackOverflowAndVerboseTryCatch) {
message_received = false;
- v8::HandleScope scope;
- v8::V8::AddMessageListener(receive_message);
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
+ v8::V8::AddMessageListener(receive_message);
v8::TryCatch try_catch;
try_catch.SetVerbose(true);
Local<Value> result = CompileRun("function foo() { foo(); } foo();");
@@ -3486,7 +3486,7 @@ TEST(APIStackOverflowAndVerboseTryCatch) {
THREADED_TEST(ExternalScriptException) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->Set(v8_str("ThrowFromC"),
v8::FunctionTemplate::New(ThrowFromC));
@@ -3553,8 +3553,8 @@ v8::Handle<Value> JSCheck(const v8::Arguments& args) {
THREADED_TEST(EvalInTryFinally) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::TryCatch try_catch;
CompileRun("(function() {"
" try {"
@@ -3588,7 +3588,7 @@ THREADED_TEST(EvalInTryFinally) {
// JS stack. This test therefore fails on the simulator. The test is
// not threaded to allow the threading tests to run on the simulator.
TEST(ExceptionOrder) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->Set(v8_str("check"), v8::FunctionTemplate::New(JSCheck));
templ->Set(v8_str("CThrowCountDown"),
@@ -3652,7 +3652,7 @@ v8::Handle<Value> ThrowValue(const v8::Arguments& args) {
THREADED_TEST(ThrowValues) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->Set(v8_str("Throw"), v8::FunctionTemplate::New(ThrowValue));
LocalContext context(0, templ);
@@ -3678,8 +3678,8 @@ THREADED_TEST(ThrowValues) {
THREADED_TEST(CatchZero) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::TryCatch try_catch;
CHECK(!try_catch.HasCaught());
Script::Compile(v8_str("throw 10"))->Run();
@@ -3694,8 +3694,8 @@ THREADED_TEST(CatchZero) {
THREADED_TEST(CatchExceptionFromWith) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::TryCatch try_catch;
CHECK(!try_catch.HasCaught());
Script::Compile(v8_str("var o = {}; with (o) { throw 42; }"))->Run();
@@ -3704,8 +3704,8 @@ THREADED_TEST(CatchExceptionFromWith) {
THREADED_TEST(TryCatchAndFinallyHidingException) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::TryCatch try_catch;
CHECK(!try_catch.HasCaught());
CompileRun("function f(k) { try { this[k]; } finally { return 0; } };");
@@ -3721,8 +3721,8 @@ v8::Handle<v8::Value> WithTryCatch(const v8::Arguments& args) {
THREADED_TEST(TryCatchAndFinally) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
context->Global()->Set(
v8_str("native_with_try_catch"),
v8::FunctionTemplate::New(WithTryCatch)->GetFunction());
@@ -3753,8 +3753,8 @@ static void TryCatchNestedHelper(int depth) {
TEST(TryCatchNested) {
v8::V8::Initialize();
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::TryCatch try_catch;
TryCatchNestedHelper(5);
CHECK(try_catch.HasCaught());
@@ -3763,9 +3763,9 @@ TEST(TryCatchNested) {
THREADED_TEST(Equality) {
- v8::HandleScope scope;
LocalContext context;
v8::Isolate* isolate = context->GetIsolate();
+ v8::HandleScope scope(context->GetIsolate());
// Check that equality works at all before relying on CHECK_EQ
CHECK(v8_str("a")->Equals(v8_str("a")));
CHECK(!v8_str("a")->Equals(v8_str("b")));
@@ -3797,8 +3797,8 @@ THREADED_TEST(Equality) {
THREADED_TEST(MultiRun) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
Local<Script> script = Script::Compile(v8_str("x"));
for (int i = 0; i < 10; i++)
script->Run();
@@ -3815,10 +3815,10 @@ static v8::Handle<Value> GetXValue(Local<String> name,
THREADED_TEST(SimplePropertyRead) {
- v8::HandleScope scope;
+ LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetAccessor(v8_str("x"), GetXValue, NULL, v8_str("donut"));
- LocalContext context;
context->Global()->Set(v8_str("obj"), templ->NewInstance());
Local<Script> script = Script::Compile(v8_str("obj.x"));
for (int i = 0; i < 10; i++) {
@@ -3828,10 +3828,10 @@ THREADED_TEST(SimplePropertyRead) {
}
THREADED_TEST(DefinePropertyOnAPIAccessor) {
- v8::HandleScope scope;
+ LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetAccessor(v8_str("x"), GetXValue, NULL, v8_str("donut"));
- LocalContext context;
context->Global()->Set(v8_str("obj"), templ->NewInstance());
// Uses getOwnPropertyDescriptor to check the configurable status
@@ -3875,7 +3875,7 @@ THREADED_TEST(DefinePropertyOnAPIAccessor) {
}
THREADED_TEST(DefinePropertyOnDefineGetterSetter) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetAccessor(v8_str("x"), GetXValue, NULL, v8_str("donut"));
LocalContext context;
@@ -3927,7 +3927,7 @@ static v8::Handle<v8::Object> GetGlobalProperty(LocalContext* context,
THREADED_TEST(DefineAPIAccessorOnObject) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
LocalContext context;
@@ -4001,7 +4001,7 @@ THREADED_TEST(DefineAPIAccessorOnObject) {
THREADED_TEST(DontDeleteAPIAccessorsCannotBeOverriden) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
LocalContext context;
@@ -4057,7 +4057,7 @@ static v8::Handle<Value> Get239Value(Local<String> name,
THREADED_TEST(ElementAPIAccessor) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
LocalContext context;
@@ -4095,7 +4095,7 @@ static void SetXValue(Local<String> name,
THREADED_TEST(SimplePropertyWrite) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetAccessor(v8_str("x"), GetXValue, SetXValue, v8_str("donut"));
LocalContext context;
@@ -4112,7 +4112,7 @@ THREADED_TEST(SimplePropertyWrite) {
THREADED_TEST(SetterOnly) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetAccessor(v8_str("x"), NULL, SetXValue, v8_str("donut"));
LocalContext context;
@@ -4129,7 +4129,7 @@ THREADED_TEST(SetterOnly) {
THREADED_TEST(NoAccessors) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetAccessor(v8_str("x"), NULL, NULL, v8_str("donut"));
LocalContext context;
@@ -4150,7 +4150,7 @@ static v8::Handle<Value> XPropertyGetter(Local<String> property,
THREADED_TEST(NamedInterceptorPropertyRead) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetNamedPropertyHandler(XPropertyGetter);
LocalContext context;
@@ -4164,7 +4164,7 @@ THREADED_TEST(NamedInterceptorPropertyRead) {
THREADED_TEST(NamedInterceptorDictionaryIC) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetNamedPropertyHandler(XPropertyGetter);
LocalContext context;
@@ -4194,7 +4194,7 @@ THREADED_TEST(NamedInterceptorDictionaryIC) {
THREADED_TEST(NamedInterceptorDictionaryICMultipleContext) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Persistent<Context> context1 = Context::New();
@@ -4248,7 +4248,7 @@ static v8::Handle<Value> SetXOnPrototypeGetter(Local<String> property,
// This is a regression test for http://crbug.com/20104. Map
// transitions should not interfere with post interceptor lookup.
THREADED_TEST(NamedInterceptorMapTransitionRead) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<v8::FunctionTemplate> function_template = v8::FunctionTemplate::New();
Local<v8::ObjectTemplate> instance_template
= function_template->InstanceTemplate();
@@ -4285,7 +4285,7 @@ static v8::Handle<Value> IndexedPropertySetter(uint32_t index,
THREADED_TEST(IndexedInterceptorWithIndexedAccessor) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetIndexedPropertyHandler(IndexedPropertyGetter,
IndexedPropertySetter);
@@ -4352,7 +4352,7 @@ Handle<v8::Array> UnboxedDoubleIndexedPropertyEnumerator(
// Make sure that the the interceptor code in the runtime properly handles
// merging property name lists for double-array-backed arrays.
THREADED_TEST(IndexedInterceptorUnboxedDoubleWithIndexedAccessor) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetIndexedPropertyHandler(UnboxedDoubleIndexedPropertyGetter,
UnboxedDoubleIndexedPropertySetter,
@@ -4404,7 +4404,7 @@ static v8::Handle<Value> NonStrictIndexedPropertyGetter(
// Make sure that the the interceptor code in the runtime properly handles
// merging property name lists for non-string arguments arrays.
THREADED_TEST(IndexedInterceptorNonStrictArgsWithIndexedAccessor) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetIndexedPropertyHandler(NonStrictIndexedPropertyGetter,
0,
@@ -4430,7 +4430,7 @@ static v8::Handle<Value> IdentityIndexedPropertyGetter(
THREADED_TEST(IndexedInterceptorWithGetOwnPropertyDescriptor) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetIndexedPropertyHandler(IdentityIndexedPropertyGetter);
@@ -4451,7 +4451,7 @@ THREADED_TEST(IndexedInterceptorWithGetOwnPropertyDescriptor) {
THREADED_TEST(IndexedInterceptorWithNoSetter) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetIndexedPropertyHandler(IdentityIndexedPropertyGetter);
@@ -4474,7 +4474,7 @@ THREADED_TEST(IndexedInterceptorWithNoSetter) {
THREADED_TEST(IndexedInterceptorWithAccessorCheck) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetIndexedPropertyHandler(IdentityIndexedPropertyGetter);
@@ -4499,7 +4499,7 @@ THREADED_TEST(IndexedInterceptorWithAccessorCheck) {
THREADED_TEST(IndexedInterceptorWithAccessorCheckSwitchedOn) {
i::FLAG_allow_natives_syntax = true;
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetIndexedPropertyHandler(IdentityIndexedPropertyGetter);
@@ -4528,7 +4528,7 @@ THREADED_TEST(IndexedInterceptorWithAccessorCheckSwitchedOn) {
THREADED_TEST(IndexedInterceptorWithDifferentIndices) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetIndexedPropertyHandler(IdentityIndexedPropertyGetter);
@@ -4551,7 +4551,7 @@ THREADED_TEST(IndexedInterceptorWithDifferentIndices) {
THREADED_TEST(IndexedInterceptorWithNegativeIndices) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetIndexedPropertyHandler(IdentityIndexedPropertyGetter);
@@ -4590,7 +4590,7 @@ THREADED_TEST(IndexedInterceptorWithNegativeIndices) {
THREADED_TEST(IndexedInterceptorWithNotSmiLookup) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetIndexedPropertyHandler(IdentityIndexedPropertyGetter);
@@ -4619,7 +4619,7 @@ THREADED_TEST(IndexedInterceptorWithNotSmiLookup) {
THREADED_TEST(IndexedInterceptorGoingMegamorphic) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetIndexedPropertyHandler(IdentityIndexedPropertyGetter);
@@ -4649,7 +4649,7 @@ THREADED_TEST(IndexedInterceptorGoingMegamorphic) {
THREADED_TEST(IndexedInterceptorReceiverTurningSmi) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetIndexedPropertyHandler(IdentityIndexedPropertyGetter);
@@ -4679,7 +4679,7 @@ THREADED_TEST(IndexedInterceptorReceiverTurningSmi) {
THREADED_TEST(IndexedInterceptorOnProto) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetIndexedPropertyHandler(IdentityIndexedPropertyGetter);
@@ -4703,7 +4703,7 @@ THREADED_TEST(IndexedInterceptorOnProto) {
THREADED_TEST(MultiContexts) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<ObjectTemplate> templ = ObjectTemplate::New();
templ->Set(v8_str("dummy"), v8::FunctionTemplate::New(DummyCallHandler));
@@ -4739,7 +4739,7 @@ THREADED_TEST(FunctionPrototypeAcrossContexts) {
// Make sure that functions created by cloning boilerplates cannot
// communicate through their __proto__ field.
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
LocalContext env0;
v8::Handle<v8::Object> global0 =
@@ -4772,7 +4772,7 @@ THREADED_TEST(Regress892105) {
// to Object.prototype and Array.prototype and create a new
// environment. This should succeed.
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<String> source = v8_str("Object.prototype.obj = 1234;"
"Array.prototype.arr = 4567;"
@@ -4789,8 +4789,8 @@ THREADED_TEST(Regress892105) {
THREADED_TEST(UndetectableObject) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
Local<v8::FunctionTemplate> desc =
v8::FunctionTemplate::New(0, v8::Handle<Value>());
@@ -4833,8 +4833,8 @@ THREADED_TEST(UndetectableObject) {
THREADED_TEST(VoidLiteral) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
Local<v8::FunctionTemplate> desc =
v8::FunctionTemplate::New(0, v8::Handle<Value>());
@@ -4877,8 +4877,8 @@ THREADED_TEST(VoidLiteral) {
THREADED_TEST(ExtensibleOnUndetectable) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
Local<v8::FunctionTemplate> desc =
v8::FunctionTemplate::New(0, v8::Handle<Value>());
@@ -4910,8 +4910,8 @@ THREADED_TEST(ExtensibleOnUndetectable) {
THREADED_TEST(UndetectableString) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
Local<String> obj = String::NewUndetectable("foo");
env->Global()->Set(v8_str("undetectable"), obj);
@@ -4951,8 +4951,8 @@ THREADED_TEST(UndetectableString) {
TEST(UndetectableOptimized) {
i::FLAG_allow_natives_syntax = true;
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
Local<String> obj = String::NewUndetectable("foo");
env->Global()->Set(v8_str("undetectable"), obj);
@@ -5007,7 +5007,7 @@ static v8::Handle<Value> HandleLogDelegator(const v8::Arguments& args) {
THREADED_TEST(GlobalObjectTemplate) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> global_template = ObjectTemplate::New();
global_template->Set(v8_str("JSNI_Log"),
v8::FunctionTemplate::New(HandleLogDelegator));
@@ -5025,7 +5025,7 @@ static const char* kSimpleExtensionSource =
THREADED_TEST(SimpleExtensions) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
v8::RegisterExtension(new Extension("simpletest", kSimpleExtensionSource));
const char* extension_names[] = { "simpletest" };
v8::ExtensionConfiguration extensions(1, extension_names);
@@ -5037,7 +5037,7 @@ THREADED_TEST(SimpleExtensions) {
THREADED_TEST(NullExtensions) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
v8::RegisterExtension(new Extension("nulltest", NULL));
const char* extension_names[] = { "nulltest" };
v8::ExtensionConfiguration extensions(1, extension_names);
@@ -5055,7 +5055,7 @@ static const int kEmbeddedExtensionSourceValidLen = 34;
THREADED_TEST(ExtensionMissingSourceLength) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
v8::RegisterExtension(new Extension("srclentest_fail",
kEmbeddedExtensionSource));
const char* extension_names[] = { "srclentest_fail" };
@@ -5068,7 +5068,7 @@ THREADED_TEST(ExtensionMissingSourceLength) {
THREADED_TEST(ExtensionWithSourceLength) {
for (int source_len = kEmbeddedExtensionSourceValidLen - 1;
source_len <= kEmbeddedExtensionSourceValidLen + 1; ++source_len) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
i::ScopedVector<char> extension_name(32);
i::OS::SNPrintF(extension_name, "ext #%d", source_len);
v8::RegisterExtension(new Extension(extension_name.start(),
@@ -5107,7 +5107,7 @@ static const char* kEvalExtensionSource2 =
THREADED_TEST(UseEvalFromExtension) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
v8::RegisterExtension(new Extension("evaltest1", kEvalExtensionSource1));
v8::RegisterExtension(new Extension("evaltest2", kEvalExtensionSource2));
const char* extension_names[] = { "evaltest1", "evaltest2" };
@@ -5140,7 +5140,7 @@ static const char* kWithExtensionSource2 =
THREADED_TEST(UseWithFromExtension) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
v8::RegisterExtension(new Extension("withtest1", kWithExtensionSource1));
v8::RegisterExtension(new Extension("withtest2", kWithExtensionSource2));
const char* extension_names[] = { "withtest1", "withtest2" };
@@ -5155,7 +5155,7 @@ THREADED_TEST(UseWithFromExtension) {
THREADED_TEST(AutoExtensions) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
Extension* extension = new Extension("autotest", kSimpleExtensionSource);
extension->set_auto_enable(true);
v8::RegisterExtension(extension);
@@ -5173,7 +5173,7 @@ static const char* kSyntaxErrorInExtensionSource =
// Test that a syntax error in an extension does not cause a fatal
// error but results in an empty context.
THREADED_TEST(SyntaxErrorExtensions) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
v8::RegisterExtension(new Extension("syntaxerror",
kSyntaxErrorInExtensionSource));
const char* extension_names[] = { "syntaxerror" };
@@ -5190,7 +5190,7 @@ static const char* kExceptionInExtensionSource =
// Test that an exception when installing an extension does not cause
// a fatal error but results in an empty context.
THREADED_TEST(ExceptionExtensions) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
v8::RegisterExtension(new Extension("exception",
kExceptionInExtensionSource));
const char* extension_names[] = { "exception" };
@@ -5211,7 +5211,7 @@ static const char* kNativeCallTest =
// Test that a native runtime calls are supported in extensions.
THREADED_TEST(NativeCallInExtensions) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
v8::RegisterExtension(new Extension("nativecall",
kNativeCallInExtensionSource));
const char* extension_names[] = { "nativecall" };
@@ -5246,7 +5246,7 @@ class NativeFunctionExtension : public Extension {
THREADED_TEST(NativeFunctionDeclaration) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
const char* name = "nativedecl";
v8::RegisterExtension(new NativeFunctionExtension(name,
"native function foo();"));
@@ -5260,7 +5260,7 @@ THREADED_TEST(NativeFunctionDeclaration) {
THREADED_TEST(NativeFunctionDeclarationError) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
const char* name = "nativedeclerr";
// Syntax error in extension code.
v8::RegisterExtension(new NativeFunctionExtension(name,
@@ -5273,7 +5273,7 @@ THREADED_TEST(NativeFunctionDeclarationError) {
THREADED_TEST(NativeFunctionDeclarationErrorEscape) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
const char* name = "nativedeclerresc";
// Syntax error in extension code - escape code in "native" means that
// it's not treated as a keyword.
@@ -5288,7 +5288,7 @@ THREADED_TEST(NativeFunctionDeclarationErrorEscape) {
static void CheckDependencies(const char* name, const char* expected) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
v8::ExtensionConfiguration config(1, &name);
LocalContext context(&config);
CHECK_EQ(String::New(expected), context->Global()->Get(v8_str("loaded")));
@@ -5316,7 +5316,7 @@ THREADED_TEST(ExtensionDependency) {
CheckDependencies("C", "undefinedAC");
CheckDependencies("D", "undefinedABCD");
CheckDependencies("E", "undefinedABCDE");
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
static const char* exts[2] = { "C", "E" };
v8::ExtensionConfiguration config(2, exts);
LocalContext context(&config);
@@ -5371,7 +5371,7 @@ v8::Handle<v8::FunctionTemplate> FunctionExtension::GetNativeFunction(
THREADED_TEST(FunctionLookup) {
v8::RegisterExtension(new FunctionExtension());
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
static const char* exts[1] = { "functiontest" };
v8::ExtensionConfiguration config(1, exts);
LocalContext context(&config);
@@ -5384,7 +5384,7 @@ THREADED_TEST(FunctionLookup) {
THREADED_TEST(NativeFunctionConstructCall) {
v8::RegisterExtension(new FunctionExtension());
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
static const char* exts[1] = { "functiontest" };
v8::ExtensionConfiguration config(1, exts);
LocalContext context(&config);
@@ -5443,7 +5443,7 @@ void OOMCallback(const char* location, const char* message) {
TEST(RegexpOutOfMemory) {
// Execute a script that causes out of memory when flattening a string.
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::V8::SetFatalErrorHandler(OOMCallback);
LocalContext context;
Local<Script> script =
@@ -5465,8 +5465,8 @@ static void MissingScriptInfoMessageListener(v8::Handle<v8::Message> message,
THREADED_TEST(ErrorWithMissingScriptInfo) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::V8::AddMessageListener(MissingScriptInfoMessageListener);
Script::Compile(v8_str("throw Error()"))->Run();
v8::V8::RemoveMessageListeners(MissingScriptInfoMessageListener);
@@ -5530,7 +5530,7 @@ v8::Handle<Value> WhammyPropertyGetter(Local<String> name,
}
THREADED_TEST(WeakReference) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ= v8::ObjectTemplate::New();
Whammy* whammy = new Whammy(v8::Isolate::GetCurrent());
templ->SetNamedPropertyHandler(WhammyPropertyGetter,
@@ -5576,7 +5576,7 @@ THREADED_TEST(IndependentWeakHandle) {
v8::Persistent<v8::Object> object_a, object_b;
{
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(iso);
object_a = v8::Persistent<v8::Object>::New(iso, v8::Object::New());
object_b = v8::Persistent<v8::Object>::New(iso, v8::Object::New());
}
@@ -5641,7 +5641,7 @@ THREADED_TEST(GCFromWeakCallbacks) {
for (int inner_gc = 0; inner_gc < kNumberOfGCTypes; inner_gc++) {
v8::Persistent<v8::Object> object;
{
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(isolate);
object = v8::Persistent<v8::Object>::New(isolate, v8::Object::New());
}
bool disposed = false;
@@ -5669,7 +5669,7 @@ THREADED_TEST(IndependentHandleRevival) {
v8::Persistent<v8::Object> object;
{
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(isolate);
object = v8::Persistent<v8::Object>::New(isolate, v8::Object::New());
object->Set(v8_str("x"), v8::Integer::New(1));
v8::Local<String> y_str = v8_str("y");
@@ -5682,7 +5682,7 @@ THREADED_TEST(IndependentHandleRevival) {
CHECK(revived);
HEAP->CollectAllGarbage(i::Heap::kAbortIncrementalMarkingMask);
{
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(isolate);
v8::Local<String> y_str = v8_str("y");
CHECK_EQ(v8::Integer::New(1), object->Get(v8_str("x")));
CHECK(object->Get(y_str)->Equals(y_str));
@@ -5701,14 +5701,14 @@ static v8::Handle<Value> ArgumentsTestCallback(const v8::Arguments& args) {
CHECK_EQ(v8::Integer::New(2), args[1]);
CHECK_EQ(v8::Integer::New(3), args[2]);
CHECK_EQ(v8::Undefined(), args[3]);
- v8::HandleScope scope;
+ v8::HandleScope scope(args.GetIsolate());
HEAP->CollectAllGarbage(i::Heap::kNoGCFlags);
return v8::Undefined();
}
THREADED_TEST(Arguments) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> global = ObjectTemplate::New();
global->Set(v8_str("f"), v8::FunctionTemplate::New(ArgumentsTestCallback));
LocalContext context(NULL, global);
@@ -5749,7 +5749,7 @@ static v8::Handle<v8::Boolean> IDeleter(uint32_t index, const AccessorInfo&) {
THREADED_TEST(Deleter) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New();
obj->SetNamedPropertyHandler(NoBlockGetterX, NULL, NULL, PDeleter, NULL);
obj->SetIndexedPropertyHandler(NoBlockGetterI, NULL, NULL, IDeleter, NULL);
@@ -5812,7 +5812,7 @@ static v8::Handle<v8::Array> IndexedEnum(const AccessorInfo&) {
THREADED_TEST(Enumerators) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New();
obj->SetNamedPropertyHandler(GetK, NULL, NULL, NULL, NamedEnum);
obj->SetIndexedPropertyHandler(IndexedGetK, NULL, NULL, NULL, IndexedEnum);
@@ -5926,7 +5926,7 @@ static v8::Handle<Value> PGetter2(Local<String> name,
THREADED_TEST(GetterHolders) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New();
obj->SetAccessor(v8_str("p1"), PGetter);
obj->SetAccessor(v8_str("p2"), PGetter);
@@ -5939,7 +5939,7 @@ THREADED_TEST(GetterHolders) {
THREADED_TEST(PreInterceptorHolders) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New();
obj->SetNamedPropertyHandler(PGetter2);
p_getter_count2 = 0;
@@ -5949,13 +5949,13 @@ THREADED_TEST(PreInterceptorHolders) {
THREADED_TEST(ObjectInstantiation) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = ObjectTemplate::New();
templ->SetAccessor(v8_str("t"), PGetter2);
LocalContext context;
context->Global()->Set(v8_str("o"), templ->NewInstance());
for (int i = 0; i < 100; i++) {
- v8::HandleScope inner_scope;
+ v8::HandleScope inner_scope(v8::Isolate::GetCurrent());
v8::Handle<v8::Object> obj = templ->NewInstance();
CHECK_NE(obj, context->Global()->Get(v8_str("o")));
context->Global()->Set(v8_str("o2"), obj);
@@ -6001,7 +6001,7 @@ int GetUtf8Length(Handle<String> str) {
THREADED_TEST(StringWrite) {
LocalContext context;
- v8::HandleScope scope;
+ v8::HandleScope scope(context->GetIsolate());
v8::Handle<String> str = v8_str("abcde");
// abc<Icelandic eth><Unicode snowman>.
v8::Handle<String> str2 = v8_str("abc\303\260\342\230\203");
@@ -6345,7 +6345,7 @@ static void WriteUtf8Helper(
THREADED_TEST(Utf16) {
LocalContext context;
- v8::HandleScope scope;
+ v8::HandleScope scope(context->GetIsolate());
CompileRun(
"var pad = '01234567890123456789';"
"var p = [];"
@@ -6411,7 +6411,7 @@ static void SameSymbolHelper(const char* a, const char* b) {
THREADED_TEST(Utf16Symbol) {
LocalContext context;
- v8::HandleScope scope;
+ v8::HandleScope scope(context->GetIsolate());
Handle<String> symbol1 = v8::String::NewSymbol("abc");
Handle<String> symbol2 = v8::String::NewSymbol("abc");
@@ -6463,8 +6463,8 @@ THREADED_TEST(Utf16Symbol) {
THREADED_TEST(ToArrayIndex) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::Handle<String> str = v8_str("42");
v8::Handle<v8::Uint32> index = str->ToArrayIndex();
@@ -6494,8 +6494,8 @@ THREADED_TEST(ToArrayIndex) {
THREADED_TEST(ErrorConstruction) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::Handle<String> foo = v8_str("foo");
v8::Handle<String> message = v8_str("message");
@@ -6534,7 +6534,7 @@ static void YSetter(Local<String> name,
THREADED_TEST(DeleteAccessor) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> obj = ObjectTemplate::New();
obj->SetAccessor(v8_str("y"), YGetter, YSetter);
LocalContext context;
@@ -6547,7 +6547,7 @@ THREADED_TEST(DeleteAccessor) {
THREADED_TEST(TypeSwitch) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::FunctionTemplate> templ1 = v8::FunctionTemplate::New();
v8::Handle<v8::FunctionTemplate> templ2 = v8::FunctionTemplate::New();
v8::Handle<v8::FunctionTemplate> templ3 = v8::FunctionTemplate::New();
@@ -6625,8 +6625,8 @@ static void ApiUncaughtExceptionTestListener(v8::Handle<v8::Message>,
// also have uncaught exceptions.
TEST(ApiUncaughtException) {
report_count = 0;
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::V8::AddMessageListener(ApiUncaughtExceptionTestListener);
Local<v8::FunctionTemplate> fun = v8::FunctionTemplate::New(TroubleCallback);
@@ -6664,8 +6664,8 @@ static void ExceptionInNativeScriptTestListener(v8::Handle<v8::Message> message,
}
TEST(ExceptionInNativeScript) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::V8::AddMessageListener(ExceptionInNativeScriptTestListener);
Local<v8::FunctionTemplate> fun = v8::FunctionTemplate::New(TroubleCallback);
@@ -6684,8 +6684,8 @@ TEST(ExceptionInNativeScript) {
TEST(CompilationErrorUsingTryCatchHandler) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::TryCatch try_catch;
Script::Compile(v8_str("This doesn't &*&@#$&*^ compile."));
CHECK_NE(NULL, *try_catch.Exception());
@@ -6694,8 +6694,8 @@ TEST(CompilationErrorUsingTryCatchHandler) {
TEST(TryCatchFinallyUsingTryCatchHandler) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::TryCatch try_catch;
Script::Compile(v8_str("try { throw ''; } catch (e) {}"))->Run();
CHECK(!try_catch.HasCaught());
@@ -6715,7 +6715,7 @@ TEST(TryCatchFinallyUsingTryCatchHandler) {
// SecurityHandler can't be run twice
TEST(SecurityHandler) {
- v8::HandleScope scope0;
+ v8::HandleScope scope0(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> global_template = v8::ObjectTemplate::New();
global_template->SetAccessCheckCallbacks(NamedSecurityTestCallback,
IndexedSecurityTestCallback);
@@ -6734,7 +6734,7 @@ TEST(SecurityHandler) {
CHECK_EQ(999, z0->Int32Value());
// Create another environment, should fail security checks.
- v8::HandleScope scope1;
+ v8::HandleScope scope1(v8::Isolate::GetCurrent());
v8::Persistent<Context> context1 =
Context::New(NULL, global_template);
@@ -6755,7 +6755,7 @@ TEST(SecurityHandler) {
// Create another environment, should pass security checks.
{ g_security_callback_result = true; // allow security handler to pass.
- v8::HandleScope scope2;
+ v8::HandleScope scope2(v8::Isolate::GetCurrent());
LocalContext context2;
v8::Handle<v8::Object> global2 = context2->Global();
global2->Set(v8_str("othercontext"), global0);
@@ -6777,8 +6777,8 @@ TEST(SecurityHandler) {
THREADED_TEST(SecurityChecks) {
- v8::HandleScope handle_scope;
LocalContext env1;
+ v8::HandleScope handle_scope(env1->GetIsolate());
v8::Persistent<Context> env2 = Context::New();
Local<Value> foo = v8_str("foo");
@@ -6822,8 +6822,8 @@ THREADED_TEST(SecurityChecks) {
// Regression test case for issue 1183439.
THREADED_TEST(SecurityChecksForPrototypeChain) {
- v8::HandleScope scope;
LocalContext current;
+ v8::HandleScope scope(current->GetIsolate());
v8::Persistent<Context> other = Context::New();
// Change context to be able to get to the Object function in the
@@ -6890,8 +6890,8 @@ THREADED_TEST(SecurityChecksForPrototypeChain) {
THREADED_TEST(CrossDomainDelete) {
- v8::HandleScope handle_scope;
LocalContext env1;
+ v8::HandleScope handle_scope(env1->GetIsolate());
v8::Persistent<Context> env2 = Context::New();
Local<Value> foo = v8_str("foo");
@@ -6923,8 +6923,8 @@ THREADED_TEST(CrossDomainDelete) {
THREADED_TEST(CrossDomainIsPropertyEnumerable) {
- v8::HandleScope handle_scope;
LocalContext env1;
+ v8::HandleScope handle_scope(env1->GetIsolate());
v8::Persistent<Context> env2 = Context::New();
Local<Value> foo = v8_str("foo");
@@ -6958,8 +6958,8 @@ THREADED_TEST(CrossDomainIsPropertyEnumerable) {
THREADED_TEST(CrossDomainForIn) {
- v8::HandleScope handle_scope;
LocalContext env1;
+ v8::HandleScope handle_scope(env1->GetIsolate());
v8::Persistent<Context> env2 = Context::New();
Local<Value> foo = v8_str("foo");
@@ -6991,8 +6991,8 @@ THREADED_TEST(CrossDomainForIn) {
TEST(ContextDetachGlobal) {
- v8::HandleScope handle_scope;
LocalContext env1;
+ v8::HandleScope handle_scope(env1->GetIsolate());
v8::Persistent<Context> env2 = Context::New();
Local<v8::Object> global1 = env1->Global();
@@ -7055,8 +7055,8 @@ TEST(ContextDetachGlobal) {
TEST(DetachAndReattachGlobal) {
- v8::HandleScope scope;
LocalContext env1;
+ v8::HandleScope scope(env1->GetIsolate());
// Create second environment.
v8::Persistent<Context> env2 = Context::New();
@@ -7181,7 +7181,7 @@ static void UnreachableSetter(Local<String>, Local<Value>,
TEST(AccessControl) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> global_template = v8::ObjectTemplate::New();
global_template->SetAccessCheckCallbacks(NamedAccessBlocker,
@@ -7227,7 +7227,7 @@ TEST(AccessControl) {
Local<Value> el_getter = global0->Get(v8_str("el_getter"));
Local<Value> el_setter = global0->Get(v8_str("el_setter"));
- v8::HandleScope scope1;
+ v8::HandleScope scope1(v8::Isolate::GetCurrent());
v8::Persistent<Context> context1 = Context::New();
context1->Enter();
@@ -7425,7 +7425,7 @@ TEST(AccessControl) {
TEST(AccessControlES5) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> global_template = v8::ObjectTemplate::New();
global_template->SetAccessCheckCallbacks(NamedAccessBlocker,
@@ -7511,7 +7511,7 @@ static bool GetOwnPropertyNamesIndexedBlocker(Local<v8::Object> global,
THREADED_TEST(AccessControlGetOwnPropertyNames) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> obj_template = v8::ObjectTemplate::New();
obj_template->Set(v8_str("x"), v8::Integer::New(42));
@@ -7524,7 +7524,7 @@ THREADED_TEST(AccessControlGetOwnPropertyNames) {
v8::Handle<v8::Object> global0 = context0->Global();
- v8::HandleScope scope1;
+ v8::HandleScope scope1(v8::Isolate::GetCurrent());
v8::Persistent<Context> context1 = Context::New();
context1->Enter();
@@ -7570,7 +7570,7 @@ static v8::Handle<v8::Array> NamedPropertyEnumerator(const AccessorInfo& info) {
THREADED_TEST(GetOwnPropertyNamesWithInterceptor) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> obj_template = v8::ObjectTemplate::New();
obj_template->Set(v8_str("7"), v8::Integer::New(7));
@@ -7605,7 +7605,7 @@ static v8::Handle<Value> ConstTenGetter(Local<String> name,
THREADED_TEST(CrossDomainAccessors) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
v8::Handle<v8::FunctionTemplate> func_template = v8::FunctionTemplate::New();
@@ -7635,7 +7635,7 @@ THREADED_TEST(CrossDomainAccessors) {
global->Set(v8_str("accessible"), v8_num(11));
// Enter a new context.
- v8::HandleScope scope1;
+ v8::HandleScope scope1(v8::Isolate::GetCurrent());
v8::Persistent<Context> context1 = Context::New();
context1->Enter();
@@ -7683,7 +7683,7 @@ TEST(AccessControlIC) {
named_access_count = 0;
indexed_access_count = 0;
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
// Create an environment.
v8::Persistent<Context> context0 = Context::New();
@@ -7696,7 +7696,7 @@ TEST(AccessControlIC) {
IndexedAccessCounter);
Local<v8::Object> object = object_template->NewInstance();
- v8::HandleScope scope1;
+ v8::HandleScope scope1(v8::Isolate::GetCurrent());
// Create another environment.
v8::Persistent<Context> context1 = Context::New();
@@ -7832,7 +7832,7 @@ THREADED_TEST(AccessControlFlatten) {
named_access_count = 0;
indexed_access_count = 0;
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
// Create an environment.
v8::Persistent<Context> context0 = Context::New();
@@ -7845,7 +7845,7 @@ THREADED_TEST(AccessControlFlatten) {
IndexedAccessFlatten);
Local<v8::Object> object = object_template->NewInstance();
- v8::HandleScope scope1;
+ v8::HandleScope scope1(v8::Isolate::GetCurrent());
// Create another environment.
v8::Persistent<Context> context1 = Context::New();
@@ -7896,7 +7896,7 @@ THREADED_TEST(AccessControlInterceptorIC) {
named_access_count = 0;
indexed_access_count = 0;
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
// Create an environment.
v8::Persistent<Context> context0 = Context::New();
@@ -7914,7 +7914,7 @@ THREADED_TEST(AccessControlInterceptorIC) {
AccessControlIndexedSetter);
Local<v8::Object> object = object_template->NewInstance();
- v8::HandleScope scope1;
+ v8::HandleScope scope1(v8::Isolate::GetCurrent());
// Create another environment.
v8::Persistent<Context> context1 = Context::New();
@@ -7971,8 +7971,8 @@ static v8::Handle<Value> InstanceFunctionCallback(const v8::Arguments& args) {
THREADED_TEST(InstanceProperties) {
- v8::HandleScope handle_scope;
LocalContext context;
+ v8::HandleScope handle_scope(context->GetIsolate());
Local<v8::FunctionTemplate> t = v8::FunctionTemplate::New();
Local<ObjectTemplate> instance = t->InstanceTemplate();
@@ -8000,7 +8000,7 @@ GlobalObjectInstancePropertiesGet(Local<String> key, const AccessorInfo&) {
THREADED_TEST(GlobalObjectInstanceProperties) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
Local<Value> global_object;
@@ -8056,7 +8056,7 @@ THREADED_TEST(GlobalObjectInstanceProperties) {
THREADED_TEST(CallKnownGlobalReceiver) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
Local<Value> global_object;
@@ -8134,7 +8134,7 @@ static v8::Handle<Value> ShadowNamedGet(Local<String> key,
THREADED_TEST(ShadowObject) {
shadow_y = shadow_y_setter_call_count = shadow_y_getter_call_count = 0;
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> global_template = v8::ObjectTemplate::New();
LocalContext context(NULL, global_template);
@@ -8174,8 +8174,8 @@ THREADED_TEST(ShadowObject) {
THREADED_TEST(HiddenPrototype) {
- v8::HandleScope handle_scope;
LocalContext context;
+ v8::HandleScope handle_scope(context->GetIsolate());
Local<v8::FunctionTemplate> t0 = v8::FunctionTemplate::New();
t0->InstanceTemplate()->Set(v8_str("x"), v8_num(0));
@@ -8218,8 +8218,8 @@ THREADED_TEST(HiddenPrototype) {
THREADED_TEST(HiddenPrototypeSet) {
- v8::HandleScope handle_scope;
LocalContext context;
+ v8::HandleScope handle_scope(context->GetIsolate());
Local<v8::FunctionTemplate> ot = v8::FunctionTemplate::New();
Local<v8::FunctionTemplate> ht = v8::FunctionTemplate::New();
@@ -8260,8 +8260,8 @@ THREADED_TEST(HiddenPrototypeSet) {
// Regression test for issue 2457.
THREADED_TEST(HiddenPrototypeIdentityHash) {
- v8::HandleScope handle_scope;
LocalContext context;
+ v8::HandleScope handle_scope(context->GetIsolate());
Handle<FunctionTemplate> t = FunctionTemplate::New();
t->SetHiddenPrototype(true);
@@ -8278,8 +8278,8 @@ THREADED_TEST(HiddenPrototypeIdentityHash) {
THREADED_TEST(SetPrototype) {
- v8::HandleScope handle_scope;
LocalContext context;
+ v8::HandleScope handle_scope(context->GetIsolate());
Local<v8::FunctionTemplate> t0 = v8::FunctionTemplate::New();
t0->InstanceTemplate()->Set(v8_str("x"), v8_num(0));
@@ -8339,8 +8339,8 @@ THREADED_TEST(SetPrototype) {
// crash the runtime.
THREADED_TEST(Regress91517) {
i::FLAG_allow_natives_syntax = true;
- v8::HandleScope handle_scope;
LocalContext context;
+ v8::HandleScope handle_scope(context->GetIsolate());
Local<v8::FunctionTemplate> t1 = v8::FunctionTemplate::New();
t1->SetHiddenPrototype(true);
@@ -8389,8 +8389,8 @@ THREADED_TEST(Regress91517) {
THREADED_TEST(FunctionReadOnlyPrototype) {
- v8::HandleScope handle_scope;
LocalContext context;
+ v8::HandleScope handle_scope(context->GetIsolate());
Local<v8::FunctionTemplate> t1 = v8::FunctionTemplate::New();
t1->PrototypeTemplate()->Set(v8_str("x"), v8::Integer::New(42));
@@ -8420,8 +8420,8 @@ THREADED_TEST(FunctionReadOnlyPrototype) {
THREADED_TEST(SetPrototypeThrows) {
- v8::HandleScope handle_scope;
LocalContext context;
+ v8::HandleScope handle_scope(context->GetIsolate());
Local<v8::FunctionTemplate> t = v8::FunctionTemplate::New();
@@ -8441,8 +8441,8 @@ THREADED_TEST(SetPrototypeThrows) {
THREADED_TEST(GetterSetterExceptions) {
- v8::HandleScope handle_scope;
LocalContext context;
+ v8::HandleScope handle_scope(context->GetIsolate());
CompileRun(
"function Foo() { };"
"function Throw() { throw 5; };"
@@ -8464,8 +8464,8 @@ THREADED_TEST(GetterSetterExceptions) {
THREADED_TEST(Constructor) {
- v8::HandleScope handle_scope;
LocalContext context;
+ v8::HandleScope handle_scope(context->GetIsolate());
Local<v8::FunctionTemplate> templ = v8::FunctionTemplate::New();
templ->SetClassName(v8_str("Fun"));
Local<Function> cons = templ->GetFunction();
@@ -8505,8 +8505,8 @@ static Handle<Value> FakeConstructorCallback(const Arguments& args) {
THREADED_TEST(ConstructorForObject) {
- v8::HandleScope handle_scope;
LocalContext context;
+ v8::HandleScope handle_scope(context->GetIsolate());
{ Local<ObjectTemplate> instance_template = ObjectTemplate::New();
instance_template->SetCallAsFunctionHandler(ConstructorCallback);
@@ -8672,8 +8672,8 @@ THREADED_TEST(ConstructorForObject) {
THREADED_TEST(FunctionDescriptorException) {
- v8::HandleScope handle_scope;
LocalContext context;
+ v8::HandleScope handle_scope(context->GetIsolate());
Local<v8::FunctionTemplate> templ = v8::FunctionTemplate::New();
templ->SetClassName(v8_str("Fun"));
Local<Function> cons = templ->GetFunction();
@@ -8697,8 +8697,8 @@ THREADED_TEST(FunctionDescriptorException) {
THREADED_TEST(EvalAliasedDynamic) {
- v8::HandleScope scope;
LocalContext current;
+ v8::HandleScope scope(current->GetIsolate());
// Tests where aliased eval can only be resolved dynamically.
Local<Script> script =
@@ -8733,7 +8733,7 @@ THREADED_TEST(EvalAliasedDynamic) {
THREADED_TEST(CrossEval) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
LocalContext other;
LocalContext current;
@@ -8816,7 +8816,7 @@ THREADED_TEST(CrossEval) {
// its global throws an exception. This behavior is consistent with
// other JavaScript implementations.
THREADED_TEST(EvalInDetachedGlobal) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Persistent<Context> context0 = Context::New();
v8::Persistent<Context> context1 = Context::New();
@@ -8851,7 +8851,7 @@ THREADED_TEST(EvalInDetachedGlobal) {
THREADED_TEST(CrossLazyLoad) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
LocalContext other;
LocalContext current;
@@ -8886,8 +8886,8 @@ static v8::Handle<Value> call_as_function(const v8::Arguments& args) {
// non-function objects created through the API to be called as
// functions.
THREADED_TEST(CallAsFunction) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
{ Local<v8::FunctionTemplate> t = v8::FunctionTemplate::New();
Local<ObjectTemplate> instance_template = t->InstanceTemplate();
@@ -8999,8 +8999,8 @@ THREADED_TEST(CallAsFunction) {
// Check whether a non-function object is callable.
THREADED_TEST(CallableObject) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
{ Local<ObjectTemplate> instance_template = ObjectTemplate::New();
instance_template->SetCallAsFunctionHandler(call_as_function);
@@ -9046,7 +9046,7 @@ static int CountHandles() {
static int Recurse(int depth, int iterations) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
if (depth == 0) return CountHandles();
for (int i = 0; i < iterations; i++) {
Local<v8::Number> n(v8::Integer::New(42));
@@ -9060,7 +9060,7 @@ THREADED_TEST(HandleIteration) {
static const int kNesting = 200;
CHECK_EQ(0, CountHandles());
{
- v8::HandleScope scope1;
+ v8::HandleScope scope1(v8::Isolate::GetCurrent());
CHECK_EQ(0, CountHandles());
for (int i = 0; i < kIterations; i++) {
Local<v8::Number> n(v8::Integer::New(42));
@@ -9069,7 +9069,7 @@ THREADED_TEST(HandleIteration) {
CHECK_EQ(kIterations, CountHandles());
{
- v8::HandleScope scope2;
+ v8::HandleScope scope2(v8::Isolate::GetCurrent());
for (int j = 0; j < kIterations; j++) {
Local<v8::Number> n(v8::Integer::New(42));
CHECK_EQ(j + 1 + kIterations, CountHandles());
@@ -9091,8 +9091,8 @@ static v8::Handle<Value> InterceptorHasOwnPropertyGetter(
THREADED_TEST(InterceptorHasOwnProperty) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
Local<v8::FunctionTemplate> fun_templ = v8::FunctionTemplate::New();
Local<v8::ObjectTemplate> instance_templ = fun_templ->InstanceTemplate();
instance_templ->SetNamedPropertyHandler(InterceptorHasOwnPropertyGetter);
@@ -9123,8 +9123,8 @@ static v8::Handle<Value> InterceptorHasOwnPropertyGetterGC(
THREADED_TEST(InterceptorHasOwnPropertyCausingGC) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
Local<v8::FunctionTemplate> fun_templ = v8::FunctionTemplate::New();
Local<v8::ObjectTemplate> instance_templ = fun_templ->InstanceTemplate();
instance_templ->SetNamedPropertyHandler(InterceptorHasOwnPropertyGetterGC);
@@ -9158,7 +9158,7 @@ typedef v8::Handle<Value> (*NamedPropertyGetter)(Local<String> property,
static void CheckInterceptorLoadIC(NamedPropertyGetter getter,
const char* source,
int expected) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = ObjectTemplate::New();
templ->SetNamedPropertyHandler(getter, 0, 0, 0, 0, v8_str("data"));
LocalContext context;
@@ -9367,7 +9367,7 @@ static void SetOnThis(Local<String> name,
THREADED_TEST(InterceptorLoadICWithCallbackOnHolder) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = ObjectTemplate::New();
templ->SetNamedPropertyHandler(InterceptorLoadXICGetter);
templ->SetAccessor(v8_str("y"), Return239);
@@ -9396,7 +9396,7 @@ THREADED_TEST(InterceptorLoadICWithCallbackOnHolder) {
THREADED_TEST(InterceptorLoadICWithCallbackOnProto) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ_o = ObjectTemplate::New();
templ_o->SetNamedPropertyHandler(InterceptorLoadXICGetter);
v8::Handle<v8::ObjectTemplate> templ_p = ObjectTemplate::New();
@@ -9429,7 +9429,7 @@ THREADED_TEST(InterceptorLoadICWithCallbackOnProto) {
THREADED_TEST(InterceptorLoadICForCallbackWithOverride) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = ObjectTemplate::New();
templ->SetNamedPropertyHandler(InterceptorLoadXICGetter);
templ->SetAccessor(v8_str("y"), Return239);
@@ -9457,7 +9457,7 @@ THREADED_TEST(InterceptorLoadICForCallbackWithOverride) {
// Test the case when we stored callback into
// a stub, but interceptor produced value on its own.
THREADED_TEST(InterceptorLoadICCallbackNotNeeded) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ_o = ObjectTemplate::New();
templ_o->SetNamedPropertyHandler(InterceptorLoadXICGetter);
v8::Handle<v8::ObjectTemplate> templ_p = ObjectTemplate::New();
@@ -9485,7 +9485,7 @@ THREADED_TEST(InterceptorLoadICCallbackNotNeeded) {
// Test the case when we stored callback into
// a stub, but it got invalidated later on.
THREADED_TEST(InterceptorLoadICInvalidatedCallback) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ_o = ObjectTemplate::New();
templ_o->SetNamedPropertyHandler(InterceptorLoadXICGetter);
v8::Handle<v8::ObjectTemplate> templ_p = ObjectTemplate::New();
@@ -9517,7 +9517,7 @@ THREADED_TEST(InterceptorLoadICInvalidatedCallback) {
// a stub, but it got invalidated later on due to override on
// global object which is between interceptor and callbacks' holders.
THREADED_TEST(InterceptorLoadICInvalidatedCallbackViaGlobal) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ_o = ObjectTemplate::New();
templ_o->SetNamedPropertyHandler(InterceptorLoadXICGetter);
v8::Handle<v8::ObjectTemplate> templ_p = ObjectTemplate::New();
@@ -9569,7 +9569,7 @@ static v8::Handle<Value> InterceptorStoreICSetter(
// This test should hit the store IC for the interceptor case.
THREADED_TEST(InterceptorStoreIC) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = ObjectTemplate::New();
templ->SetNamedPropertyHandler(InterceptorLoadICGetter,
InterceptorStoreICSetter,
@@ -9584,7 +9584,7 @@ THREADED_TEST(InterceptorStoreIC) {
THREADED_TEST(InterceptorStoreICWithNoSetter) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = ObjectTemplate::New();
templ->SetNamedPropertyHandler(InterceptorLoadXICGetter);
LocalContext context;
@@ -9614,7 +9614,7 @@ static v8::Handle<Value> InterceptorCallICGetter(Local<String> name,
// This test should hit the call IC for the interceptor case.
THREADED_TEST(InterceptorCallIC) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = ObjectTemplate::New();
templ->SetNamedPropertyHandler(InterceptorCallICGetter);
LocalContext context;
@@ -9633,7 +9633,7 @@ THREADED_TEST(InterceptorCallIC) {
// This test checks that if interceptor doesn't provide
// a value, we can fetch regular value.
THREADED_TEST(InterceptorCallICSeesOthers) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = ObjectTemplate::New();
templ->SetNamedPropertyHandler(NoBlockGetterX);
LocalContext context;
@@ -9661,7 +9661,7 @@ static v8::Handle<Value> InterceptorCallICGetter4(Local<String> name,
// even if we cached shadowed variant, interceptor's function
// is invoked
THREADED_TEST(InterceptorCallICCacheableNotNeeded) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = ObjectTemplate::New();
templ->SetNamedPropertyHandler(InterceptorCallICGetter4);
LocalContext context;
@@ -9681,7 +9681,7 @@ THREADED_TEST(InterceptorCallICCacheableNotNeeded) {
// Test the case when we stored cacheable lookup into
// a stub, but it got invalidated later on
THREADED_TEST(InterceptorCallICInvalidatedCacheable) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = ObjectTemplate::New();
templ->SetNamedPropertyHandler(NoBlockGetterX);
LocalContext context;
@@ -9708,7 +9708,7 @@ THREADED_TEST(InterceptorCallICInvalidatedCacheable) {
// This test checks that if interceptor doesn't provide a function,
// cached constant function is used
THREADED_TEST(InterceptorCallICConstantFunctionUsed) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = ObjectTemplate::New();
templ->SetNamedPropertyHandler(NoBlockGetterX);
LocalContext context;
@@ -9740,7 +9740,7 @@ static v8::Handle<Value> InterceptorCallICGetter5(Local<String> name,
// even if we cached constant function, interceptor's function
// is invoked
THREADED_TEST(InterceptorCallICConstantFunctionNotNeeded) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = ObjectTemplate::New();
templ->SetNamedPropertyHandler(InterceptorCallICGetter5);
LocalContext context;
@@ -9774,7 +9774,7 @@ static v8::Handle<Value> InterceptorCallICGetter6(Local<String> name,
// to test the optimized compiler.
THREADED_TEST(InterceptorCallICConstantFunctionNotNeededWrapped) {
i::FLAG_allow_natives_syntax = true;
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = ObjectTemplate::New();
templ->SetNamedPropertyHandler(InterceptorCallICGetter6);
LocalContext context;
@@ -9804,7 +9804,7 @@ THREADED_TEST(InterceptorCallICConstantFunctionNotNeededWrapped) {
// Test the case when we stored constant function into
// a stub, but it got invalidated later on
THREADED_TEST(InterceptorCallICInvalidatedConstantFunction) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = ObjectTemplate::New();
templ->SetNamedPropertyHandler(NoBlockGetterX);
LocalContext context;
@@ -9834,7 +9834,7 @@ THREADED_TEST(InterceptorCallICInvalidatedConstantFunction) {
// a stub, but it got invalidated later on due to override on
// global object which is between interceptor and constant function' holders.
THREADED_TEST(InterceptorCallICInvalidatedConstantFunctionViaGlobal) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = ObjectTemplate::New();
templ->SetNamedPropertyHandler(NoBlockGetterX);
LocalContext context;
@@ -9859,7 +9859,7 @@ THREADED_TEST(InterceptorCallICInvalidatedConstantFunctionViaGlobal) {
// Test the case when actual function to call sits on global object.
THREADED_TEST(InterceptorCallICCachedFromGlobal) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ_o = ObjectTemplate::New();
templ_o->SetNamedPropertyHandler(NoBlockGetterX);
@@ -9943,8 +9943,8 @@ v8::Handle<v8::Value> DirectApiCallback(const v8::Arguments& args) {
THREADED_TEST(CallICFastApi_DirectCall_GCMoveStub) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::Handle<v8::ObjectTemplate> nativeobject_templ = v8::ObjectTemplate::New();
nativeobject_templ->Set("callback",
v8::FunctionTemplate::New(DirectApiCallback));
@@ -9967,8 +9967,8 @@ v8::Handle<v8::Value> ThrowingDirectApiCallback(const v8::Arguments& args) {
THREADED_TEST(CallICFastApi_DirectCall_Throw) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::Handle<v8::ObjectTemplate> nativeobject_templ = v8::ObjectTemplate::New();
nativeobject_templ->Set("callback",
v8::FunctionTemplate::New(ThrowingDirectApiCallback));
@@ -9998,8 +9998,8 @@ v8::Handle<v8::Value> DirectGetterCallback(Local<String> name,
THREADED_TEST(LoadICFastApi_DirectCall_GCMoveStub) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::Handle<v8::ObjectTemplate> obj = v8::ObjectTemplate::New();
obj->SetAccessor(v8_str("p1"), DirectGetterCallback);
context->Global()->Set(v8_str("o1"), obj->NewInstance());
@@ -10020,8 +10020,8 @@ v8::Handle<v8::Value> ThrowingDirectGetterCallback(
THREADED_TEST(LoadICFastApi_DirectCall_Throw) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::Handle<v8::ObjectTemplate> obj = v8::ObjectTemplate::New();
obj->SetAccessor(v8_str("p1"), ThrowingDirectGetterCallback);
context->Global()->Set(v8_str("o1"), obj->NewInstance());
@@ -10037,7 +10037,7 @@ THREADED_TEST(LoadICFastApi_DirectCall_Throw) {
THREADED_TEST(InterceptorCallICFastApi_TrivialSignature) {
int interceptor_call_count = 0;
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::FunctionTemplate> fun_templ = v8::FunctionTemplate::New();
v8::Handle<v8::FunctionTemplate> method_templ =
v8::FunctionTemplate::New(FastApiCallback_TrivialSignature,
@@ -10064,7 +10064,7 @@ THREADED_TEST(InterceptorCallICFastApi_TrivialSignature) {
THREADED_TEST(InterceptorCallICFastApi_SimpleSignature) {
int interceptor_call_count = 0;
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::FunctionTemplate> fun_templ = v8::FunctionTemplate::New();
v8::Handle<v8::FunctionTemplate> method_templ =
v8::FunctionTemplate::New(FastApiCallback_SimpleSignature,
@@ -10095,7 +10095,7 @@ THREADED_TEST(InterceptorCallICFastApi_SimpleSignature) {
THREADED_TEST(InterceptorCallICFastApi_SimpleSignature_Miss1) {
int interceptor_call_count = 0;
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::FunctionTemplate> fun_templ = v8::FunctionTemplate::New();
v8::Handle<v8::FunctionTemplate> method_templ =
v8::FunctionTemplate::New(FastApiCallback_SimpleSignature,
@@ -10132,7 +10132,7 @@ THREADED_TEST(InterceptorCallICFastApi_SimpleSignature_Miss1) {
THREADED_TEST(InterceptorCallICFastApi_SimpleSignature_Miss2) {
int interceptor_call_count = 0;
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::FunctionTemplate> fun_templ = v8::FunctionTemplate::New();
v8::Handle<v8::FunctionTemplate> method_templ =
v8::FunctionTemplate::New(FastApiCallback_SimpleSignature,
@@ -10169,7 +10169,7 @@ THREADED_TEST(InterceptorCallICFastApi_SimpleSignature_Miss2) {
THREADED_TEST(InterceptorCallICFastApi_SimpleSignature_Miss3) {
int interceptor_call_count = 0;
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::FunctionTemplate> fun_templ = v8::FunctionTemplate::New();
v8::Handle<v8::FunctionTemplate> method_templ =
v8::FunctionTemplate::New(FastApiCallback_SimpleSignature,
@@ -10209,7 +10209,7 @@ THREADED_TEST(InterceptorCallICFastApi_SimpleSignature_Miss3) {
THREADED_TEST(InterceptorCallICFastApi_SimpleSignature_TypeError) {
int interceptor_call_count = 0;
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::FunctionTemplate> fun_templ = v8::FunctionTemplate::New();
v8::Handle<v8::FunctionTemplate> method_templ =
v8::FunctionTemplate::New(FastApiCallback_SimpleSignature,
@@ -10248,7 +10248,7 @@ THREADED_TEST(InterceptorCallICFastApi_SimpleSignature_TypeError) {
}
THREADED_TEST(CallICFastApi_TrivialSignature) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::FunctionTemplate> fun_templ = v8::FunctionTemplate::New();
v8::Handle<v8::FunctionTemplate> method_templ =
v8::FunctionTemplate::New(FastApiCallback_TrivialSignature,
@@ -10272,7 +10272,7 @@ THREADED_TEST(CallICFastApi_TrivialSignature) {
}
THREADED_TEST(CallICFastApi_SimpleSignature) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::FunctionTemplate> fun_templ = v8::FunctionTemplate::New();
v8::Handle<v8::FunctionTemplate> method_templ =
v8::FunctionTemplate::New(FastApiCallback_SimpleSignature,
@@ -10300,7 +10300,7 @@ THREADED_TEST(CallICFastApi_SimpleSignature) {
}
THREADED_TEST(CallICFastApi_SimpleSignature_Miss1) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::FunctionTemplate> fun_templ = v8::FunctionTemplate::New();
v8::Handle<v8::FunctionTemplate> method_templ =
v8::FunctionTemplate::New(FastApiCallback_SimpleSignature,
@@ -10333,7 +10333,7 @@ THREADED_TEST(CallICFastApi_SimpleSignature_Miss1) {
}
THREADED_TEST(CallICFastApi_SimpleSignature_Miss2) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::FunctionTemplate> fun_templ = v8::FunctionTemplate::New();
v8::Handle<v8::FunctionTemplate> method_templ =
v8::FunctionTemplate::New(FastApiCallback_SimpleSignature,
@@ -10369,7 +10369,7 @@ THREADED_TEST(CallICFastApi_SimpleSignature_Miss2) {
}
THREADED_TEST(CallICFastApi_SimpleSignature_TypeError) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::FunctionTemplate> fun_templ = v8::FunctionTemplate::New();
v8::Handle<v8::FunctionTemplate> method_templ =
v8::FunctionTemplate::New(FastApiCallback_SimpleSignature,
@@ -10420,7 +10420,7 @@ static v8::Handle<Value> InterceptorKeyedCallICGetter(
// Test the case when we stored cacheable lookup into
// a stub, but the function name changed (to another cacheable function).
THREADED_TEST(InterceptorKeyedCallICKeyChange1) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = ObjectTemplate::New();
templ->SetNamedPropertyHandler(NoBlockGetterX);
LocalContext context;
@@ -10444,7 +10444,7 @@ THREADED_TEST(InterceptorKeyedCallICKeyChange1) {
// a stub, but the function name changed (and the new function is present
// both before and after the interceptor in the prototype chain).
THREADED_TEST(InterceptorKeyedCallICKeyChange2) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = ObjectTemplate::New();
templ->SetNamedPropertyHandler(InterceptorKeyedCallICGetter);
LocalContext context;
@@ -10471,7 +10471,7 @@ THREADED_TEST(InterceptorKeyedCallICKeyChange2) {
// Same as InterceptorKeyedCallICKeyChange1 only the cacheable function sit
// on the global object.
THREADED_TEST(InterceptorKeyedCallICKeyChangeOnGlobal) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = ObjectTemplate::New();
templ->SetNamedPropertyHandler(NoBlockGetterX);
LocalContext context;
@@ -10496,7 +10496,7 @@ THREADED_TEST(InterceptorKeyedCallICKeyChangeOnGlobal) {
// Test the case when actual function to call sits on global object.
THREADED_TEST(InterceptorKeyedCallICFromGlobal) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ_o = ObjectTemplate::New();
templ_o->SetNamedPropertyHandler(NoBlockGetterX);
LocalContext context;
@@ -10520,7 +10520,7 @@ THREADED_TEST(InterceptorKeyedCallICFromGlobal) {
// Test the map transition before the interceptor.
THREADED_TEST(InterceptorKeyedCallICMapChangeBefore) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ_o = ObjectTemplate::New();
templ_o->SetNamedPropertyHandler(NoBlockGetterX);
LocalContext context;
@@ -10542,7 +10542,7 @@ THREADED_TEST(InterceptorKeyedCallICMapChangeBefore) {
// Test the map transition after the interceptor.
THREADED_TEST(InterceptorKeyedCallICMapChangeAfter) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ_o = ObjectTemplate::New();
templ_o->SetNamedPropertyHandler(NoBlockGetterX);
LocalContext context;
@@ -10578,7 +10578,7 @@ static v8::Handle<Value> InterceptorICRefErrorGetter(Local<String> name,
// Once in a while, the interceptor will reply that a property was not
// found in which case we should get a reference error.
THREADED_TEST(InterceptorICReferenceErrors) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = ObjectTemplate::New();
templ->SetNamedPropertyHandler(InterceptorICRefErrorGetter);
LocalContext context(0, templ, v8::Handle<Value>());
@@ -10625,7 +10625,7 @@ static v8::Handle<Value> InterceptorICExceptionGetter(
// exception once in a while.
THREADED_TEST(InterceptorICGetterExceptions) {
interceptor_ic_exception_get_count = 0;
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = ObjectTemplate::New();
templ->SetNamedPropertyHandler(InterceptorICExceptionGetter);
LocalContext context(0, templ, v8::Handle<Value>());
@@ -10668,7 +10668,7 @@ static v8::Handle<Value> InterceptorICExceptionSetter(
// once in a while.
THREADED_TEST(InterceptorICSetterExceptions) {
interceptor_ic_exception_set_count = 0;
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = ObjectTemplate::New();
templ->SetNamedPropertyHandler(0, InterceptorICExceptionSetter);
LocalContext context(0, templ, v8::Handle<Value>());
@@ -10686,7 +10686,7 @@ THREADED_TEST(InterceptorICSetterExceptions) {
// Test that we ignore null interceptors.
THREADED_TEST(NullNamedInterceptor) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = ObjectTemplate::New();
templ->SetNamedPropertyHandler(0);
LocalContext context;
@@ -10701,7 +10701,7 @@ THREADED_TEST(NullNamedInterceptor) {
// Test that we ignore null interceptors.
THREADED_TEST(NullIndexedInterceptor) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = ObjectTemplate::New();
templ->SetIndexedPropertyHandler(0);
LocalContext context;
@@ -10715,7 +10715,7 @@ THREADED_TEST(NullIndexedInterceptor) {
THREADED_TEST(NamedPropertyHandlerGetterAttributes) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::FunctionTemplate> templ = v8::FunctionTemplate::New();
templ->InstanceTemplate()->SetNamedPropertyHandler(InterceptorLoadXICGetter);
LocalContext env;
@@ -10735,8 +10735,8 @@ static Handle<Value> ThrowingGetter(Local<String> name,
THREADED_TEST(VariousGetPropertiesAndThrowingCallbacks) {
- HandleScope scope;
LocalContext context;
+ HandleScope scope(context->GetIsolate());
Local<FunctionTemplate> templ = FunctionTemplate::New();
Local<ObjectTemplate> instance_templ = templ->InstanceTemplate();
@@ -10826,8 +10826,8 @@ static void WebKitLike(Handle<Message> message, Handle<Value> data) {
}
THREADED_TEST(ExceptionsDoNotPropagatePastTryCatch) {
- HandleScope scope;
LocalContext context;
+ HandleScope scope(context->GetIsolate());
Local<Function> func =
FunctionTemplate::New(ThrowingCallbackWithTryCatch)->GetFunction();
@@ -10870,8 +10870,8 @@ static v8::Handle<Value> ChildGetter(Local<String> name,
THREADED_TEST(Overriding) {
i::FLAG_es5_readonly = true;
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
// Parent template.
Local<v8::FunctionTemplate> parent_templ = v8::FunctionTemplate::New();
@@ -10933,7 +10933,7 @@ static v8::Handle<Value> IsConstructHandler(const v8::Arguments& args) {
THREADED_TEST(IsConstructCall) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
// Function template with call handler.
Local<v8::FunctionTemplate> templ = v8::FunctionTemplate::New();
@@ -10950,7 +10950,7 @@ THREADED_TEST(IsConstructCall) {
THREADED_TEST(ObjectProtoToString) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<v8::FunctionTemplate> templ = v8::FunctionTemplate::New();
templ->SetClassName(v8_str("MyClass"));
@@ -10984,8 +10984,8 @@ THREADED_TEST(ObjectProtoToString) {
THREADED_TEST(ObjectGetConstructorName) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8_compile("function Parent() {};"
"function Child() {};"
"Child.prototype = new Parent();"
@@ -11176,7 +11176,7 @@ static v8::Handle<Value> ThrowInJS(const v8::Arguments& args) {
const char* code = "throw 7;";
{
v8::Locker nested_locker(CcTest::default_isolate());
- v8::HandleScope scope;
+ v8::HandleScope scope(args.GetIsolate());
v8::Handle<Value> exception;
{ v8::TryCatch try_catch;
v8::Handle<Value> value = CompileRun(code);
@@ -11199,7 +11199,7 @@ static v8::Handle<Value> ThrowInJSNoCatch(const v8::Arguments& args) {
const char* code = "throw 7;";
{
v8::Locker nested_locker(CcTest::default_isolate());
- v8::HandleScope scope;
+ v8::HandleScope scope(args.GetIsolate());
v8::Handle<Value> value = CompileRun(code);
CHECK(value.IsEmpty());
return v8_str("foo");
@@ -11212,8 +11212,8 @@ static v8::Handle<Value> ThrowInJSNoCatch(const v8::Arguments& args) {
TEST(NestedLockers) {
v8::Locker locker(CcTest::default_isolate());
CHECK(v8::Locker::IsLocked(CcTest::default_isolate()));
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
Local<v8::FunctionTemplate> fun_templ = v8::FunctionTemplate::New(ThrowInJS);
Local<Function> fun = fun_templ->GetFunction();
env->Global()->Set(v8_str("throw_in_js"), fun);
@@ -11233,8 +11233,8 @@ TEST(NestedLockers) {
// as part of the locking aggregation tests.
TEST(NestedLockersNoTryCatch) {
v8::Locker locker(CcTest::default_isolate());
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
Local<v8::FunctionTemplate> fun_templ =
v8::FunctionTemplate::New(ThrowInJSNoCatch);
Local<Function> fun = fun_templ->GetFunction();
@@ -11270,7 +11270,7 @@ static v8::Handle<Value> UnlockForAMoment(const v8::Arguments& args) {
THREADED_TEST(LockUnlockLock) {
{
v8::Locker locker(CcTest::default_isolate());
- v8::HandleScope scope;
+ v8::HandleScope scope(CcTest::default_isolate());
LocalContext env;
Local<v8::FunctionTemplate> fun_templ =
v8::FunctionTemplate::New(UnlockForAMoment);
@@ -11284,7 +11284,7 @@ THREADED_TEST(LockUnlockLock) {
}
{
v8::Locker locker(CcTest::default_isolate());
- v8::HandleScope scope;
+ v8::HandleScope scope(CcTest::default_isolate());
LocalContext env;
Local<v8::FunctionTemplate> fun_templ =
v8::FunctionTemplate::New(UnlockForAMoment);
@@ -11331,27 +11331,27 @@ TEST(DontLeakGlobalObjects) {
v8::V8::Initialize();
for (int i = 0; i < 5; i++) {
- { v8::HandleScope scope;
+ { v8::HandleScope scope(v8::Isolate::GetCurrent());
LocalContext context;
}
v8::V8::ContextDisposedNotification();
CheckSurvivingGlobalObjectsCount(0);
- { v8::HandleScope scope;
+ { v8::HandleScope scope(v8::Isolate::GetCurrent());
LocalContext context;
v8_compile("Date")->Run();
}
v8::V8::ContextDisposedNotification();
CheckSurvivingGlobalObjectsCount(0);
- { v8::HandleScope scope;
+ { v8::HandleScope scope(v8::Isolate::GetCurrent());
LocalContext context;
v8_compile("/aaa/")->Run();
}
v8::V8::ContextDisposedNotification();
CheckSurvivingGlobalObjectsCount(0);
- { v8::HandleScope scope;
+ { v8::HandleScope scope(v8::Isolate::GetCurrent());
const char* extension_list[] = { "v8/gc" };
v8::ExtensionConfiguration extensions(1, extension_list);
LocalContext context(&extensions);
@@ -11369,7 +11369,7 @@ v8::Persistent<v8::Object> bad_handle;
void NewPersistentHandleCallback(v8::Isolate* isolate,
v8::Persistent<v8::Value> handle,
void*) {
- v8::HandleScope scope;
+ v8::HandleScope scope(isolate);
bad_handle = v8::Persistent<v8::Object>::New(isolate, some_object);
handle.Dispose(isolate);
}
@@ -11381,7 +11381,7 @@ THREADED_TEST(NewPersistentHandleFromWeakCallback) {
v8::Persistent<v8::Object> handle1, handle2;
{
- v8::HandleScope scope;
+ v8::HandleScope scope(isolate);
some_object = v8::Persistent<v8::Object>::New(isolate, v8::Object::New());
handle1 = v8::Persistent<v8::Object>::New(isolate, v8::Object::New());
handle2 = v8::Persistent<v8::Object>::New(isolate, v8::Object::New());
@@ -11413,7 +11413,7 @@ THREADED_TEST(DoNotUseDeletedNodesInSecondLevelGc) {
v8::Persistent<v8::Object> handle1, handle2;
{
- v8::HandleScope scope;
+ v8::HandleScope scope(isolate);
handle1 = v8::Persistent<v8::Object>::New(isolate, v8::Object::New());
handle2 = v8::Persistent<v8::Object>::New(isolate, v8::Object::New());
}
@@ -11431,7 +11431,7 @@ void DisposingCallback(v8::Isolate* isolate,
void HandleCreatingCallback(v8::Isolate* isolate,
v8::Persistent<v8::Value> handle,
void*) {
- v8::HandleScope scope;
+ v8::HandleScope scope(isolate);
v8::Persistent<v8::Object>::New(isolate, v8::Object::New());
handle.Dispose(isolate);
}
@@ -11443,7 +11443,7 @@ THREADED_TEST(NoGlobalHandlesOrphaningDueToWeakCallback) {
v8::Persistent<v8::Object> handle1, handle2, handle3;
{
- v8::HandleScope scope;
+ v8::HandleScope scope(isolate);
handle3 = v8::Persistent<v8::Object>::New(isolate, v8::Object::New());
handle2 = v8::Persistent<v8::Object>::New(isolate, v8::Object::New());
handle1 = v8::Persistent<v8::Object>::New(isolate, v8::Object::New());
@@ -11465,11 +11465,11 @@ THREADED_TEST(CheckForCrossContextObjectLiterals) {
for (int i = 0; i < nof; i++) {
const char* source = sources[i];
- { v8::HandleScope scope;
+ { v8::HandleScope scope(v8::Isolate::GetCurrent());
LocalContext context;
CompileRun(source);
}
- { v8::HandleScope scope;
+ { v8::HandleScope scope(v8::Isolate::GetCurrent());
LocalContext context;
CompileRun(source);
}
@@ -11478,7 +11478,7 @@ THREADED_TEST(CheckForCrossContextObjectLiterals) {
static v8::Handle<Value> NestedScope(v8::Persistent<Context> env) {
- v8::HandleScope inner;
+ v8::HandleScope inner(env->GetIsolate());
env->Enter();
v8::Handle<Value> three = v8_num(3);
v8::Handle<Value> value = inner.Close(three);
@@ -11488,7 +11488,7 @@ static v8::Handle<Value> NestedScope(v8::Persistent<Context> env) {
THREADED_TEST(NestedHandleScopeAndContexts) {
- v8::HandleScope outer;
+ v8::HandleScope outer(v8::Isolate::GetCurrent());
v8::Persistent<Context> env = Context::New();
env->Enter();
v8::Handle<Value> value = NestedScope(env);
@@ -11527,7 +11527,7 @@ static void RunLoopInNewEnv() {
bar_ptr = NULL;
foo_ptr = NULL;
- v8::HandleScope outer;
+ v8::HandleScope outer(v8::Isolate::GetCurrent());
v8::Persistent<Context> env = Context::New();
env->Enter();
@@ -11767,7 +11767,7 @@ TEST(SetJitCodeEventHandler) {
isolate->Enter();
{
- v8::HandleScope scope;
+ v8::HandleScope scope(isolate);
i::HashMap code(MatchPointers);
code_map = &code;
@@ -11820,7 +11820,7 @@ TEST(SetJitCodeEventHandler) {
// Verify that we get callbacks for existing code objects when we
// request enumeration of existing code.
{
- v8::HandleScope scope;
+ v8::HandleScope scope(isolate);
LocalContext env;
CompileRun(script);
@@ -11853,7 +11853,7 @@ static int64_t cast(intptr_t x) { return static_cast<int64_t>(x); }
THREADED_TEST(ExternalAllocatedMemory) {
- v8::HandleScope outer;
+ v8::HandleScope outer(v8::Isolate::GetCurrent());
v8::Persistent<Context> env(Context::New());
CHECK(!env.IsEmpty());
const intptr_t kSize = 1024*1024;
@@ -11866,8 +11866,8 @@ THREADED_TEST(ExternalAllocatedMemory) {
THREADED_TEST(DisposeEnteredContext) {
- v8::HandleScope scope;
LocalContext outer;
+ v8::HandleScope scope(outer->GetIsolate());
{ v8::Persistent<v8::Context> inner = v8::Context::New();
inner->Enter();
inner.Dispose(inner->GetIsolate());
@@ -11881,12 +11881,12 @@ THREADED_TEST(DisposeEnteredContext) {
// but no accessors or interceptors did not get their internal field
// count set on instances.
THREADED_TEST(Regress54) {
- v8::HandleScope outer;
LocalContext context;
v8::Isolate* isolate = context->GetIsolate();
+ v8::HandleScope outer(isolate);
static v8::Persistent<v8::ObjectTemplate> templ;
if (templ.IsEmpty()) {
- v8::HandleScope inner;
+ v8::HandleScope inner(isolate);
v8::Handle<v8::ObjectTemplate> local = v8::ObjectTemplate::New();
local->SetInternalFieldCount(1);
templ =
@@ -11900,8 +11900,8 @@ THREADED_TEST(Regress54) {
// If part of the threaded tests, this test makes ThreadingTest fail
// on mac.
TEST(CatchStackOverflow) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::TryCatch try_catch;
v8::Handle<v8::Script> script = v8::Script::Compile(v8::String::New(
"function f() {"
@@ -11917,7 +11917,7 @@ TEST(CatchStackOverflow) {
static void CheckTryCatchSourceInfo(v8::Handle<v8::Script> script,
const char* resource_name,
int line_offset) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::TryCatch try_catch;
v8::Handle<v8::Value> result = script->Run();
CHECK(result.IsEmpty());
@@ -11937,8 +11937,8 @@ static void CheckTryCatchSourceInfo(v8::Handle<v8::Script> script,
THREADED_TEST(TryCatchSourceInfo) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::Handle<v8::String> source = v8::String::New(
"function Foo() {\n"
" return Bar();\n"
@@ -11973,8 +11973,8 @@ THREADED_TEST(TryCatchSourceInfo) {
THREADED_TEST(CompilationCache) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::Handle<v8::String> source0 = v8::String::New("1234");
v8::Handle<v8::String> source1 = v8::String::New("1234");
v8::Handle<v8::Script> script0 =
@@ -11996,8 +11996,8 @@ static v8::Handle<Value> FunctionNameCallback(const v8::Arguments& args) {
THREADED_TEST(CallbackFunctionName) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
Local<ObjectTemplate> t = ObjectTemplate::New();
t->Set(v8_str("asdf"), v8::FunctionTemplate::New(FunctionNameCallback));
context->Global()->Set(v8_str("obj"), t->NewInstance());
@@ -12009,8 +12009,8 @@ THREADED_TEST(CallbackFunctionName) {
THREADED_TEST(DateAccess) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::Handle<v8::Value> date = v8::Date::New(1224744689038.0);
CHECK(date->IsDate());
CHECK_EQ(1224744689038.0, date.As<v8::Date>()->NumberValue());
@@ -12042,8 +12042,8 @@ void CheckOwnProperties(v8::Handle<v8::Value> val,
THREADED_TEST(PropertyEnumeration) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::Handle<v8::Value> obj = v8::Script::Compile(v8::String::New(
"var result = [];"
"result[0] = {};"
@@ -12076,8 +12076,8 @@ THREADED_TEST(PropertyEnumeration) {
}
THREADED_TEST(PropertyEnumeration2) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::Handle<v8::Value> obj = v8::Script::Compile(v8::String::New(
"var result = [];"
"result[0] = {};"
@@ -12118,8 +12118,8 @@ static bool IndexedSetAccessBlocker(Local<v8::Object> obj,
THREADED_TEST(DisableAccessChecksWhileConfiguring) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetAccessCheckCallbacks(NamedSetAccessBlocker,
IndexedSetAccessBlocker);
@@ -12149,8 +12149,8 @@ static bool IndexedGetAccessBlocker(Local<v8::Object> obj,
THREADED_TEST(AccessChecksReenabledCorrectly) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetAccessCheckCallbacks(NamedGetAccessBlocker,
IndexedGetAccessBlocker);
@@ -12188,7 +12188,7 @@ THREADED_TEST(AccessChecksReenabledCorrectly) {
// This tests that access check information remains on the global
// object template when creating contexts.
THREADED_TEST(AccessControlRepeatedContextCreation) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> global_template = v8::ObjectTemplate::New();
global_template->SetAccessCheckCallbacks(NamedSetAccessBlocker,
IndexedSetAccessBlocker);
@@ -12205,7 +12205,7 @@ THREADED_TEST(AccessControlRepeatedContextCreation) {
THREADED_TEST(TurnOnAccessCheck) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
// Create an environment with access check to the global object disabled by
// default.
@@ -12285,7 +12285,7 @@ static bool NamedGetAccessBlockAandH(Local<v8::Object> obj,
THREADED_TEST(TurnOnAccessCheckAndRecompile) {
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
// Create an environment with access check to the global object disabled by
// default. When the registered access checker will block access to properties
@@ -12449,8 +12449,8 @@ TEST(PreCompileDeserializationError) {
// Attempts to deserialize bad data.
TEST(PreCompileInvalidPreparseDataError) {
v8::V8::Initialize();
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
const char* script = "function foo(){ return 5;}\n"
"function bar(){ return 6 + 7;} foo();";
@@ -12496,7 +12496,7 @@ TEST(PreCompileInvalidPreparseDataError) {
// the same results (at least for one trivial case).
TEST(PreCompileAPIVariationsAreSame) {
v8::V8::Initialize();
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
const char* cstring = "function foo(a) { return a+1; }";
@@ -12533,7 +12533,7 @@ TEST(PreCompileAPIVariationsAreSame) {
// arise because we share code between contexts via the compilation
// cache.
THREADED_TEST(DictionaryICLoadedFunction) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
// Test LoadIC.
for (int i = 0; i < 2; i++) {
LocalContext context;
@@ -12554,7 +12554,7 @@ THREADED_TEST(DictionaryICLoadedFunction) {
// Test that cross-context new calls use the context of the callee to
// create the new JavaScript object.
THREADED_TEST(CrossContextNew) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Persistent<Context> context0 = Context::New();
v8::Persistent<Context> context1 = Context::New();
@@ -12689,7 +12689,7 @@ class RegExpInterruptTest {
TEST(RegExpInterruption) {
v8::Locker lock(CcTest::default_isolate());
v8::V8::Initialize();
- v8::HandleScope scope;
+ v8::HandleScope scope(CcTest::default_isolate());
Local<Context> local_env;
{
LocalContext env;
@@ -12798,7 +12798,7 @@ class ApplyInterruptTest {
TEST(ApplyInterruption) {
v8::Locker lock(CcTest::default_isolate());
v8::V8::Initialize();
- v8::HandleScope scope;
+ v8::HandleScope scope(CcTest::default_isolate());
Local<Context> local_env;
{
LocalContext env;
@@ -12818,8 +12818,8 @@ TEST(ApplyInterruption) {
// Verify that we can clone an object
TEST(ObjectClone) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
const char* sample =
"var rv = {};" \
@@ -12906,8 +12906,8 @@ THREADED_TEST(MorphCompositeStringTest) {
" to come to the aid of the party";
uint16_t* two_byte_string = AsciiToTwoByteString(c_string);
{
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
AsciiVectorResource ascii_resource(
i::Vector<const char>(c_string, i::StrLength(c_string)));
UC16VectorResource uc16_resource(
@@ -12969,8 +12969,8 @@ THREADED_TEST(MorphCompositeStringTest) {
TEST(CompileExternalTwoByteSource) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
// This is a very short list of sources, which currently is to check for a
// regression caused by r2703.
@@ -13078,7 +13078,7 @@ class RegExpStringModificationTest {
morphs_ < kMaxModifications) {
int morphs_before = morphs_;
{
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
// Match 15-30 "a"'s against 14 and a "b".
const char* c_source =
"/a?a?a?a?a?a?a?a?a?a?a?a?a?a?aaaaaaaaaaaaaaaa/"
@@ -13111,7 +13111,7 @@ class RegExpStringModificationTest {
TEST(RegExpStringModification) {
v8::Locker lock(CcTest::default_isolate());
v8::V8::Initialize();
- v8::HandleScope scope;
+ v8::HandleScope scope(CcTest::default_isolate());
Local<Context> local_env;
{
LocalContext env;
@@ -13133,7 +13133,7 @@ TEST(RegExpStringModification) {
// is a read-only property in the prototype chain.
TEST(ReadOnlyPropertyInGlobalProto) {
i::FLAG_es5_readonly = true;
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = v8::ObjectTemplate::New();
LocalContext context(0, templ);
v8::Handle<v8::Object> global = context->Global();
@@ -13186,7 +13186,7 @@ TEST(ForceSet) {
force_set_set_count = 0;
pass_on_get = false;
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = v8::ObjectTemplate::New();
v8::Handle<v8::String> access_property = v8::String::New("a");
templ->SetAccessor(access_property, ForceSetGetter, ForceSetSetter);
@@ -13227,7 +13227,7 @@ TEST(ForceSetWithInterceptor) {
force_set_set_count = 0;
pass_on_get = false;
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = v8::ObjectTemplate::New();
templ->SetNamedPropertyHandler(ForceSetGetter, ForceSetInterceptSetter);
LocalContext context(NULL, templ);
@@ -13270,7 +13270,7 @@ TEST(ForceSetWithInterceptor) {
THREADED_TEST(ForceDelete) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = v8::ObjectTemplate::New();
LocalContext context(NULL, templ);
v8::Handle<v8::Object> global = context->Global();
@@ -13308,7 +13308,7 @@ THREADED_TEST(ForceDeleteWithInterceptor) {
force_delete_interceptor_count = 0;
pass_on_delete = false;
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::ObjectTemplate> templ = v8::ObjectTemplate::New();
templ->SetNamedPropertyHandler(0, 0, 0, ForceDeleteDeleter);
LocalContext context(NULL, templ);
@@ -13340,8 +13340,8 @@ THREADED_TEST(ForceDeleteWithInterceptor) {
// Make sure that forcing a delete invalidates any IC stubs, so we
// don't read the hole value.
THREADED_TEST(ForceDeleteIC) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
// Create a DontDelete variable on the global object.
CompileRun("this.__proto__ = { foo: 'horse' };"
"var foo = 'fish';"
@@ -13361,13 +13361,13 @@ THREADED_TEST(ForceDeleteIC) {
TEST(InlinedFunctionAcrossContexts) {
i::FLAG_allow_natives_syntax = true;
- v8::HandleScope outer_scope;
+ v8::HandleScope outer_scope(v8::Isolate::GetCurrent());
v8::Persistent<v8::Context> ctx1 = v8::Context::New();
v8::Persistent<v8::Context> ctx2 = v8::Context::New();
ctx1->Enter();
{
- v8::HandleScope inner_scope;
+ v8::HandleScope inner_scope(v8::Isolate::GetCurrent());
CompileRun("var G = 42; function foo() { return G; }");
v8::Local<v8::Value> foo = ctx1->Global()->Get(v8_str("foo"));
ctx2->Enter();
@@ -13417,7 +13417,7 @@ static v8::Handle<Value> GetCallingContextCallback(const v8::Arguments& args) {
THREADED_TEST(GetCallingContext) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
calling_context0 = Context::New();
calling_context1 = Context::New();
@@ -13467,8 +13467,8 @@ THREADED_TEST(GetCallingContext) {
// value does shadow an existing property in the prototype chain.
THREADED_TEST(InitGlobalVarInProtoChain) {
i::FLAG_es52_globals = true;
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
// Introduce a variable in the prototype chain.
CompileRun("__proto__.x = 42");
v8::Handle<v8::Value> result = CompileRun("var x = 43; x");
@@ -13483,8 +13483,8 @@ THREADED_TEST(InitGlobalVarInProtoChain) {
// original should not affect the clone.
// See http://code.google.com/p/v8/issues/detail?id=398
THREADED_TEST(ReplaceConstantFunction) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::Handle<v8::Object> obj = v8::Object::New();
v8::Handle<v8::FunctionTemplate> func_templ = v8::FunctionTemplate::New();
v8::Handle<v8::String> foo_string = v8::String::New("foo");
@@ -13497,8 +13497,8 @@ THREADED_TEST(ReplaceConstantFunction) {
// Regression test for http://crbug.com/16276.
THREADED_TEST(Regress16276) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
// Force the IC in f to be a dictionary load IC.
CompileRun("function f(obj) { return obj.x; }\n"
"var obj = { x: { foo: 42 }, y: 87 };\n"
@@ -13514,8 +13514,8 @@ THREADED_TEST(Regress16276) {
THREADED_TEST(PixelArray) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
const int kElementCount = 260;
uint8_t* pixel_data = reinterpret_cast<uint8_t*>(malloc(kElementCount));
i::Handle<i::ExternalPixelArray> pixels =
@@ -13904,8 +13904,8 @@ THREADED_TEST(PixelArray) {
THREADED_TEST(PixelArrayInfo) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
for (int size = 0; size < 100; size += 10) {
uint8_t* pixel_data = reinterpret_cast<uint8_t*>(malloc(size));
v8::Handle<v8::Object> obj = v8::Object::New();
@@ -13936,8 +13936,8 @@ static v8::Handle<Value> NotHandledIndexedPropertySetter(
THREADED_TEST(PixelArrayWithInterceptor) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
const int kElementCount = 260;
uint8_t* pixel_data = reinterpret_cast<uint8_t*>(malloc(kElementCount));
i::Handle<i::ExternalPixelArray> pixels =
@@ -14000,8 +14000,8 @@ template <class ExternalArrayClass, class ElementType>
static void ExternalArrayTestHelper(v8::ExternalArrayType array_type,
int64_t low,
int64_t high) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
const int kElementCount = 40;
int element_size = ExternalArrayElementSize(array_type);
ElementType* array_data =
@@ -14571,8 +14571,8 @@ THREADED_TEST(ExternalArrays) {
void ExternalArrayInfoTestHelper(v8::ExternalArrayType array_type) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
for (int size = 0; size < 100; size += 10) {
int element_size = ExternalArrayElementSize(array_type);
void* external_data = malloc(size * element_size);
@@ -14613,8 +14613,8 @@ void ExternalArrayLimitTestHelper(v8::ExternalArrayType array_type, int size) {
TEST(ExternalArrayLimits) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
ExternalArrayLimitTestHelper(v8::kExternalByteArray, 0x40000000);
ExternalArrayLimitTestHelper(v8::kExternalByteArray, 0xffffffff);
ExternalArrayLimitTestHelper(v8::kExternalUnsignedByteArray, 0x40000000);
@@ -14637,8 +14637,8 @@ TEST(ExternalArrayLimits) {
THREADED_TEST(ScriptContextDependence) {
- v8::HandleScope scope;
LocalContext c1;
+ v8::HandleScope scope(c1->GetIsolate());
const char *source = "foo";
v8::Handle<v8::Script> dep = v8::Script::Compile(v8::String::New(source));
v8::Handle<v8::Script> indep = v8::Script::New(v8::String::New(source));
@@ -14653,8 +14653,8 @@ THREADED_TEST(ScriptContextDependence) {
THREADED_TEST(StackTrace) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::TryCatch try_catch;
const char *source = "function foo() { FAIL.FAIL; }; foo();";
v8::Handle<v8::String> src = v8::String::New(source);
@@ -14671,7 +14671,7 @@ void checkStackFrame(const char* expected_script_name,
const char* expected_func_name, int expected_line_number,
int expected_column, bool is_eval, bool is_constructor,
v8::Handle<v8::StackFrame> frame) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::String::Utf8Value func_name(frame->GetFunctionName());
v8::String::Utf8Value script_name(frame->GetScriptName());
if (*script_name == NULL) {
@@ -14689,7 +14689,7 @@ void checkStackFrame(const char* expected_script_name,
v8::Handle<Value> AnalyzeStackInNativeCode(const v8::Arguments& args) {
- v8::HandleScope scope;
+ v8::HandleScope scope(args.GetIsolate());
const char* origin = "capture-stack-trace-test";
const int kOverviewTest = 1;
const int kDetailedTest = 2;
@@ -14744,7 +14744,7 @@ v8::Handle<Value> AnalyzeStackInNativeCode(const v8::Arguments& args) {
// TODO(3074796): Reenable this as a THREADED_TEST once it passes.
// THREADED_TEST(CaptureStackTrace) {
TEST(CaptureStackTrace) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Handle<v8::String> origin = v8::String::New("capture-stack-trace-test");
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->Set(v8_str("AnalyzeStackInNativeCode"),
@@ -14803,8 +14803,8 @@ static void StackTraceForUncaughtExceptionListener(
TEST(CaptureStackTraceForUncaughtException) {
report_count = 0;
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::V8::AddMessageListener(StackTraceForUncaughtExceptionListener);
v8::V8::SetCaptureStackTraceForUncaughtExceptions(true);
@@ -14825,8 +14825,8 @@ TEST(CaptureStackTraceForUncaughtException) {
TEST(CaptureStackTraceForUncaughtExceptionAndSetters) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::V8::SetCaptureStackTraceForUncaughtExceptions(true,
1024,
v8::StackTrace::kDetailed);
@@ -14861,8 +14861,8 @@ static void RethrowStackTraceHandler(v8::Handle<v8::Message> message,
// Test that we only return the stack trace at the site where the exception
// is first thrown (not where it is rethrown).
TEST(RethrowStackTrace) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
// We make sure that
// - the stack trace of the ReferenceError in g() is reported.
// - the stack trace is not overwritten when e1 is rethrown by t().
@@ -14903,8 +14903,8 @@ static void RethrowPrimitiveStackTraceHandler(v8::Handle<v8::Message> message,
// Test that we do not recognize identity for primitive exceptions.
TEST(RethrowPrimitiveStackTrace) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
// We do not capture stack trace for non Error objects on creation time.
// Instead, we capture the stack trace on last throw.
const char* source =
@@ -14937,8 +14937,8 @@ static void RethrowExistingStackTraceHandler(v8::Handle<v8::Message> message,
// Test that the stack trace is captured when the error object is created and
// not where it is thrown.
TEST(RethrowExistingStackTrace) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
const char* source =
"var e = new Error(); \n"
"throw e; \n";
@@ -14962,8 +14962,8 @@ static void RethrowBogusErrorStackTraceHandler(v8::Handle<v8::Message> message,
// Test that the stack trace is captured where the bogus Error object is thrown.
TEST(RethrowBogusErrorStackTrace) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
const char* source =
"var e = {__proto__: new Error()} \n"
"throw e; \n";
@@ -14976,7 +14976,7 @@ TEST(RethrowBogusErrorStackTrace) {
v8::Handle<Value> AnalyzeStackOfEvalWithSourceURL(const v8::Arguments& args) {
- v8::HandleScope scope;
+ v8::HandleScope scope(args.GetIsolate());
v8::Handle<v8::StackTrace> stackTrace =
v8::StackTrace::CurrentStackTrace(10, v8::StackTrace::kDetailed);
CHECK_EQ(5, stackTrace->GetFrameCount());
@@ -14992,7 +14992,7 @@ v8::Handle<Value> AnalyzeStackOfEvalWithSourceURL(const v8::Arguments& args) {
TEST(SourceURLInStackTrace) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->Set(v8_str("AnalyzeStackOfEvalWithSourceURL"),
v8::FunctionTemplate::New(AnalyzeStackOfEvalWithSourceURL));
@@ -15016,7 +15016,7 @@ TEST(SourceURLInStackTrace) {
v8::Handle<Value> AnalyzeStackOfInlineScriptWithSourceURL(
const v8::Arguments& args) {
- v8::HandleScope scope;
+ v8::HandleScope scope(args.GetIsolate());
v8::Handle<v8::StackTrace> stackTrace =
v8::StackTrace::CurrentStackTrace(10, v8::StackTrace::kDetailed);
CHECK_EQ(4, stackTrace->GetFrameCount());
@@ -15032,7 +15032,7 @@ v8::Handle<Value> AnalyzeStackOfInlineScriptWithSourceURL(
TEST(InlineScriptWithSourceURLInStackTrace) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->Set(v8_str("AnalyzeStackOfInlineScriptWithSourceURL"),
v8::FunctionTemplate::New(
@@ -15058,7 +15058,7 @@ TEST(InlineScriptWithSourceURLInStackTrace) {
v8::Handle<Value> AnalyzeStackOfDynamicScriptWithSourceURL(
const v8::Arguments& args) {
- v8::HandleScope scope;
+ v8::HandleScope scope(args.GetIsolate());
v8::Handle<v8::StackTrace> stackTrace =
v8::StackTrace::CurrentStackTrace(10, v8::StackTrace::kDetailed);
CHECK_EQ(4, stackTrace->GetFrameCount());
@@ -15074,7 +15074,7 @@ v8::Handle<Value> AnalyzeStackOfDynamicScriptWithSourceURL(
TEST(DynamicWithSourceURLInStackTrace) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->Set(v8_str("AnalyzeStackOfDynamicScriptWithSourceURL"),
v8::FunctionTemplate::New(
@@ -15098,7 +15098,7 @@ TEST(DynamicWithSourceURLInStackTrace) {
}
static void CreateGarbageInOldSpace() {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
i::AlwaysAllocateScope always_allocate;
for (int i = 0; i < 1000; i++) {
FACTORY->NewFixedArray(1000, i::TENURED);
@@ -15108,8 +15108,8 @@ static void CreateGarbageInOldSpace() {
// Test that idle notification can be handled and eventually returns true.
TEST(IdleNotification) {
const intptr_t MB = 1024 * 1024;
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
intptr_t initial_size = HEAP->SizeOfObjects();
CreateGarbageInOldSpace();
intptr_t size_with_garbage = HEAP->SizeOfObjects();
@@ -15128,8 +15128,8 @@ TEST(IdleNotification) {
TEST(IdleNotificationWithSmallHint) {
const intptr_t MB = 1024 * 1024;
const int IdlePauseInMs = 900;
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
intptr_t initial_size = HEAP->SizeOfObjects();
CreateGarbageInOldSpace();
intptr_t size_with_garbage = HEAP->SizeOfObjects();
@@ -15148,8 +15148,8 @@ TEST(IdleNotificationWithSmallHint) {
TEST(IdleNotificationWithLargeHint) {
const intptr_t MB = 1024 * 1024;
const int IdlePauseInMs = 900;
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
intptr_t initial_size = HEAP->SizeOfObjects();
CreateGarbageInOldSpace();
intptr_t size_with_garbage = HEAP->SizeOfObjects();
@@ -15168,8 +15168,8 @@ TEST(Regress2107) {
const intptr_t MB = 1024 * 1024;
const int kShortIdlePauseInMs = 100;
const int kLongIdlePauseInMs = 1000;
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
intptr_t initial_size = HEAP->SizeOfObjects();
// Send idle notification to start a round of incremental GCs.
v8::V8::IdleNotification(kShortIdlePauseInMs);
@@ -15228,8 +15228,8 @@ TEST(SetResourceConstraints) {
CHECK(v8::SetResourceConstraints(&constraints));
// Execute a script.
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
Local<v8::FunctionTemplate> fun_templ =
v8::FunctionTemplate::New(GetStackLimitCallback);
Local<Function> fun = fun_templ->GetFunction();
@@ -15253,7 +15253,7 @@ TEST(SetResourceConstraintsInThread) {
CHECK(v8::SetResourceConstraints(&constraints));
// Execute a script.
- v8::HandleScope scope;
+ v8::HandleScope scope(CcTest::default_isolate());
LocalContext env;
Local<v8::FunctionTemplate> fun_templ =
v8::FunctionTemplate::New(GetStackLimitCallback);
@@ -15271,8 +15271,8 @@ TEST(SetResourceConstraintsInThread) {
THREADED_TEST(GetHeapStatistics) {
- v8::HandleScope scope;
LocalContext c1;
+ v8::HandleScope scope(c1->GetIsolate());
v8::HeapStatistics heap_statistics;
CHECK_EQ(static_cast<int>(heap_statistics.total_heap_size()), 0);
CHECK_EQ(static_cast<int>(heap_statistics.used_heap_size()), 0);
@@ -15318,8 +15318,8 @@ class VisitorImpl : public v8::ExternalResourceVisitor {
};
TEST(VisitExternalStrings) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
const char* string = "Some string";
uint16_t* two_byte_string = AsciiToTwoByteString(string);
TestResource* resource[4];
@@ -15384,8 +15384,8 @@ static double DoubleFromBits(uint32_t high_bits, uint32_t low_bits) {
THREADED_TEST(QuietSignalingNaNs) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::TryCatch try_catch;
// Special double values.
@@ -15468,7 +15468,7 @@ THREADED_TEST(QuietSignalingNaNs) {
static v8::Handle<Value> SpaghettiIncident(const v8::Arguments& args) {
- v8::HandleScope scope;
+ v8::HandleScope scope(args.GetIsolate());
v8::TryCatch tc;
v8::Handle<v8::String> str(args[0]->ToString());
USE(str);
@@ -15481,7 +15481,7 @@ static v8::Handle<Value> SpaghettiIncident(const v8::Arguments& args) {
// Test that an exception can be propagated down through a spaghetti
// stack using ReThrow.
THREADED_TEST(SpaghettiStackReThrow) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
LocalContext context;
context->Global()->Set(
v8::String::New("s"),
@@ -15509,7 +15509,7 @@ THREADED_TEST(SpaghettiStackReThrow) {
TEST(Regress528) {
v8::V8::Initialize();
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
v8::Persistent<Context> context;
v8::Persistent<Context> other_context;
int gc_count;
@@ -15523,7 +15523,7 @@ TEST(Regress528) {
const char* source_simple = "1";
context = Context::New();
{
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
context->Enter();
Local<v8::String> obj = v8::String::New("");
@@ -15548,7 +15548,7 @@ TEST(Regress528) {
const char* source_eval = "function f(){eval('1')}; f()";
context = Context::New();
{
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
context->Enter();
CompileRun(source_eval);
@@ -15571,7 +15571,7 @@ TEST(Regress528) {
const char* source_exception = "function f(){throw 1;} f()";
context = Context::New();
{
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
context->Enter();
v8::TryCatch try_catch;
@@ -15600,8 +15600,8 @@ TEST(Regress528) {
THREADED_TEST(ScriptOrigin) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::ScriptOrigin origin = v8::ScriptOrigin(v8::String::New("test"));
v8::Handle<v8::String> script = v8::String::New(
"function f() {}\n\nfunction g() {}");
@@ -15621,8 +15621,8 @@ THREADED_TEST(ScriptOrigin) {
}
THREADED_TEST(FunctionGetInferredName) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::ScriptOrigin origin = v8::ScriptOrigin(v8::String::New("test"));
v8::Handle<v8::String> script = v8::String::New(
"var foo = { bar : { baz : function() {}}}; var f = foo.bar.baz;");
@@ -15633,8 +15633,8 @@ THREADED_TEST(FunctionGetInferredName) {
}
THREADED_TEST(ScriptLineNumber) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::ScriptOrigin origin = v8::ScriptOrigin(v8::String::New("test"));
v8::Handle<v8::String> script = v8::String::New(
"function f() {}\n\nfunction g() {}");
@@ -15649,8 +15649,8 @@ THREADED_TEST(ScriptLineNumber) {
THREADED_TEST(ScriptColumnNumber) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::ScriptOrigin origin = v8::ScriptOrigin(v8::String::New("test"),
v8::Integer::New(3), v8::Integer::New(2));
v8::Handle<v8::String> script = v8::String::New(
@@ -15666,8 +15666,8 @@ THREADED_TEST(ScriptColumnNumber) {
THREADED_TEST(FunctionGetScriptId) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::ScriptOrigin origin = v8::ScriptOrigin(v8::String::New("test"),
v8::Integer::New(3), v8::Integer::New(2));
v8::Handle<v8::String> scriptSource = v8::String::New(
@@ -15721,7 +15721,7 @@ Handle<Value> FooSetInterceptor(Local<String> name,
TEST(SetterOnConstructorPrototype) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetAccessor(v8_str("x"),
GetterWhichReturns42,
@@ -15771,7 +15771,7 @@ static v8::Handle<Value> NamedPropertySetterWhichSetsYOnThisTo23(
THREADED_TEST(InterceptorOnConstructorPrototype) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetNamedPropertyHandler(NamedPropertyGetterWhichReturns42,
NamedPropertySetterWhichSetsYOnThisTo23);
@@ -15810,8 +15810,8 @@ TEST(Bug618) {
"};"
"C1.prototype = P;";
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::Local<v8::Script> script;
// Use a simple object as prototype.
@@ -15906,7 +15906,7 @@ TEST(GCCallbacks) {
THREADED_TEST(AddToJSFunctionResultCache) {
i::FLAG_allow_natives_syntax = true;
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
LocalContext context;
@@ -15933,9 +15933,8 @@ static const int k0CacheSize = 16;
THREADED_TEST(FillJSFunctionResultCache) {
i::FLAG_allow_natives_syntax = true;
- v8::HandleScope scope;
-
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
const char* code =
"(function() {"
@@ -15955,9 +15954,8 @@ THREADED_TEST(FillJSFunctionResultCache) {
THREADED_TEST(RoundRobinGetFromCache) {
i::FLAG_allow_natives_syntax = true;
- v8::HandleScope scope;
-
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
const char* code =
"(function() {"
@@ -15980,9 +15978,8 @@ THREADED_TEST(RoundRobinGetFromCache) {
THREADED_TEST(ReverseGetFromCache) {
i::FLAG_allow_natives_syntax = true;
- v8::HandleScope scope;
-
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
const char* code =
"(function() {"
@@ -16005,9 +16002,8 @@ THREADED_TEST(ReverseGetFromCache) {
THREADED_TEST(TestEviction) {
i::FLAG_allow_natives_syntax = true;
- v8::HandleScope scope;
-
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
const char* code =
"(function() {"
@@ -16023,9 +16019,9 @@ THREADED_TEST(TestEviction) {
THREADED_TEST(TwoByteStringInAsciiCons) {
// See Chromium issue 47824.
- v8::HandleScope scope;
-
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
+
const char* init_code =
"var str1 = 'abelspendabel';"
"var str2 = str1 + str1 + str1;"
@@ -16124,7 +16120,7 @@ TEST(GCInFailedAccessCheckCallback) {
v8::V8::Initialize();
v8::V8::SetFailedAccessCheckCallbackFunction(&FailedAccessCheckCallbackGC);
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
// Create an ObjectTemplate for global objects and install access
// check callbacks that will block access.
@@ -16217,10 +16213,10 @@ TEST(IsolateNewDispose) {
}
TEST(IsolateEnterExitDefault) {
- v8::HandleScope scope;
- LocalContext context;
v8::Isolate* current_isolate = v8::Isolate::GetCurrent();
CHECK(current_isolate != NULL); // Default isolate.
+ v8::HandleScope scope(current_isolate);
+ LocalContext context;
ExpectString("'hello'", "hello");
current_isolate->Enter();
ExpectString("'still working'", "still working");
@@ -16238,7 +16234,7 @@ TEST(DisposeDefaultIsolate) {
v8::V8::SetFatalErrorHandler(StoringErrorCallback);
// Run some V8 code to trigger default isolate to become 'current'.
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
LocalContext context;
ExpectString("'run some V8'", "run some V8");
@@ -16252,7 +16248,7 @@ TEST(DisposeDefaultIsolate) {
}
TEST(RunDefaultAndAnotherIsolate) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
LocalContext context;
// Enter new isolate.
@@ -16261,7 +16257,7 @@ TEST(RunDefaultAndAnotherIsolate) {
isolate->Enter();
{ // Need this block because subsequent Exit() will deallocate Heap,
// so we need all scope objects to be deconstructed when it happens.
- v8::HandleScope scope_new;
+ v8::HandleScope scope_new(isolate);
LocalContext context_new;
// Run something in new isolate.
@@ -16297,7 +16293,7 @@ TEST(DisposeIsolateWhenInUse) {
v8::Isolate* isolate = v8::Isolate::New();
CHECK(isolate);
isolate->Enter();
- v8::HandleScope scope;
+ v8::HandleScope scope(isolate);
LocalContext context;
// Run something in this isolate.
ExpectTrue("true");
@@ -16317,7 +16313,7 @@ TEST(RunTwoIsolatesOnSingleThread) {
{
v8::Context::Scope cscope(context1);
- v8::HandleScope scope;
+ v8::HandleScope scope(isolate1);
// Run something in new isolate.
CompileRun("var foo = 'isolate 1';");
ExpectString("function f() { return foo; }; f()", "isolate 1");
@@ -16331,7 +16327,7 @@ TEST(RunTwoIsolatesOnSingleThread) {
v8::Isolate::Scope iscope(isolate2);
context2 = v8::Context::New();
v8::Context::Scope cscope(context2);
- v8::HandleScope scope;
+ v8::HandleScope scope(isolate2);
// Run something in new isolate.
CompileRun("var foo = 'isolate 2';");
@@ -16340,7 +16336,7 @@ TEST(RunTwoIsolatesOnSingleThread) {
{
v8::Context::Scope cscope(context1);
- v8::HandleScope scope;
+ v8::HandleScope scope(isolate1);
// Now again in isolate 1
ExpectString("function f() { return foo; }; f()", "isolate 1");
}
@@ -16352,7 +16348,7 @@ TEST(RunTwoIsolatesOnSingleThread) {
{
v8::Context::Scope cscope(context_default);
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
// Variables in other isolates should be not available, verify there
// is an exception.
ExpectTrue("function f() {"
@@ -16372,13 +16368,13 @@ TEST(RunTwoIsolatesOnSingleThread) {
{
v8::Isolate::Scope iscope(isolate2);
v8::Context::Scope cscope(context2);
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
ExpectString("function f() { return foo; }; f()", "isolate 2");
}
{
v8::Context::Scope cscope(context1);
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
ExpectString("function f() { return foo; }; f()", "isolate 1");
}
@@ -16404,14 +16400,14 @@ TEST(RunTwoIsolatesOnSingleThread) {
// Check that default isolate still runs.
{
v8::Context::Scope cscope(context_default);
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
ExpectTrue("function f() { return isDefaultIsolate; }; f()");
}
}
static int CalcFibonacci(v8::Isolate* isolate, int limit) {
v8::Isolate::Scope isolate_scope(isolate);
- v8::HandleScope scope;
+ v8::HandleScope scope(isolate);
LocalContext context;
i::ScopedVector<char> code(1024);
i::OS::SNPrintF(code, "function fib(n) {"
@@ -16477,7 +16473,7 @@ TEST(IsolateDifferentContexts) {
Persistent<v8::Context> context;
{
v8::Isolate::Scope isolate_scope(isolate);
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(isolate);
context = v8::Context::New();
v8::Context::Scope context_scope(context);
Local<Value> v = CompileRun("2");
@@ -16486,7 +16482,7 @@ TEST(IsolateDifferentContexts) {
}
{
v8::Isolate::Scope isolate_scope(isolate);
- v8::HandleScope handle_scope;
+ v8::HandleScope handle_scope(isolate);
context = v8::Context::New();
v8::Context::Scope context_scope(context);
Local<Value> v = CompileRun("22");
@@ -16592,8 +16588,8 @@ TEST(StringCheckMultipleContexts) {
{
// Run the code twice in the first context to initialize the call IC.
- v8::HandleScope scope;
LocalContext context1;
+ v8::HandleScope scope(context1->GetIsolate());
ExpectString(code, "a");
ExpectString(code, "a");
}
@@ -16601,8 +16597,8 @@ TEST(StringCheckMultipleContexts) {
{
// Change the String.prototype in the second context and check
// that the right function gets called.
- v8::HandleScope scope;
LocalContext context2;
+ v8::HandleScope scope(context2->GetIsolate());
CompileRun("String.prototype.charAt = function() { return \"not a\"; }");
ExpectString(code, "not a");
}
@@ -16615,8 +16611,8 @@ TEST(NumberCheckMultipleContexts) {
{
// Run the code twice in the first context to initialize the call IC.
- v8::HandleScope scope;
LocalContext context1;
+ v8::HandleScope scope(context1->GetIsolate());
ExpectString(code, "42");
ExpectString(code, "42");
}
@@ -16624,8 +16620,8 @@ TEST(NumberCheckMultipleContexts) {
{
// Change the Number.prototype in the second context and check
// that the right function gets called.
- v8::HandleScope scope;
LocalContext context2;
+ v8::HandleScope scope(context2->GetIsolate());
CompileRun("Number.prototype.toString = function() { return \"not 42\"; }");
ExpectString(code, "not 42");
}
@@ -16638,8 +16634,8 @@ TEST(BooleanCheckMultipleContexts) {
{
// Run the code twice in the first context to initialize the call IC.
- v8::HandleScope scope;
LocalContext context1;
+ v8::HandleScope scope(context1->GetIsolate());
ExpectString(code, "true");
ExpectString(code, "true");
}
@@ -16647,8 +16643,8 @@ TEST(BooleanCheckMultipleContexts) {
{
// Change the Boolean.prototype in the second context and check
// that the right function gets called.
- v8::HandleScope scope;
LocalContext context2;
+ v8::HandleScope scope(context2->GetIsolate());
CompileRun("Boolean.prototype.toString = function() { return \"\"; }");
ExpectString(code, "");
}
@@ -16662,8 +16658,8 @@ TEST(DontDeleteCellLoadIC) {
{
// Run the code twice in the first context to initialize the load
// IC for a don't delete cell.
- v8::HandleScope scope;
LocalContext context1;
+ v8::HandleScope scope(context1->GetIsolate());
CompileRun("var cell = \"first\";");
ExpectBoolean("delete cell", false);
CompileRun(function_code);
@@ -16673,8 +16669,8 @@ TEST(DontDeleteCellLoadIC) {
{
// Use a deletable cell in the second context.
- v8::HandleScope scope;
LocalContext context2;
+ v8::HandleScope scope(context2->GetIsolate());
CompileRun("cell = \"second\";");
CompileRun(function_code);
ExpectString("readCell()", "second");
@@ -16701,8 +16697,8 @@ TEST(DontDeleteCellLoadICForceDelete) {
// Run the code twice to initialize the load IC for a don't delete
// cell.
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
CompileRun("var cell = \"value\";");
ExpectBoolean("delete cell", false);
CompileRun(function_code);
@@ -16729,8 +16725,8 @@ TEST(DontDeleteCellLoadICAPI) {
// Run the code twice to initialize the load IC for a don't delete
// cell created using the API.
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
context->Global()->Set(v8_str("cell"), v8_str("value"), v8::DontDelete);
ExpectBoolean("delete cell", false);
CompileRun(function_code);
@@ -16774,9 +16770,9 @@ class Visitor42 : public v8::PersistentHandleVisitor {
TEST(PersistentHandleVisitor) {
- v8::HandleScope scope;
LocalContext context;
v8::Isolate* isolate = context->GetIsolate();
+ v8::HandleScope scope(isolate);
v8::Persistent<v8::Object> object =
v8::Persistent<v8::Object>::New(isolate, v8::Object::New());
CHECK_EQ(0, object.WrapperClassId(isolate));
@@ -16792,9 +16788,9 @@ TEST(PersistentHandleVisitor) {
TEST(WrapperClassId) {
- v8::HandleScope scope;
LocalContext context;
v8::Isolate* isolate = context->GetIsolate();
+ v8::HandleScope scope(isolate);
v8::Persistent<v8::Object> object =
v8::Persistent<v8::Object>::New(isolate, v8::Object::New());
CHECK_EQ(0, object.WrapperClassId(isolate));
@@ -16805,9 +16801,9 @@ TEST(WrapperClassId) {
TEST(PersistentHandleInNewSpaceVisitor) {
- v8::HandleScope scope;
LocalContext context;
v8::Isolate* isolate = context->GetIsolate();
+ v8::HandleScope scope(isolate);
v8::Persistent<v8::Object> object1 =
v8::Persistent<v8::Object>::New(isolate, v8::Object::New());
CHECK_EQ(0, object1.WrapperClassId(isolate));
@@ -16832,8 +16828,8 @@ TEST(PersistentHandleInNewSpaceVisitor) {
TEST(RegExp) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::Handle<v8::RegExp> re = v8::RegExp::New(v8_str("foo"), v8::RegExp::kNone);
CHECK(re->IsRegExp());
@@ -16902,8 +16898,8 @@ TEST(RegExp) {
THREADED_TEST(Equals) {
- v8::HandleScope handleScope;
LocalContext localContext;
+ v8::HandleScope handleScope(localContext->GetIsolate());
v8::Handle<v8::Object> globalProxy = localContext->Global();
v8::Handle<Value> global = globalProxy->GetPrototype();
@@ -16934,8 +16930,8 @@ static v8::Handle<v8::Array> Enumerator(const v8::AccessorInfo& info) {
TEST(NamedEnumeratorAndForIn) {
- v8::HandleScope handle_scope;
LocalContext context;
+ v8::HandleScope handle_scope(context->GetIsolate());
v8::Context::Scope context_scope(context.local());
v8::Handle<v8::ObjectTemplate> tmpl = v8::ObjectTemplate::New();
@@ -16949,8 +16945,8 @@ TEST(NamedEnumeratorAndForIn) {
TEST(DefinePropertyPostDetach) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
v8::Handle<v8::Object> proxy = context->Global();
v8::Handle<v8::Function> define_property =
CompileRun("(function() {"
@@ -16977,7 +16973,7 @@ static void CheckContextId(v8::Handle<Object> object, int expected) {
THREADED_TEST(CreationContext) {
- HandleScope handle_scope;
+ HandleScope handle_scope(v8::Isolate::GetCurrent());
Persistent<Context> context1 = Context::New();
InstallContextId(context1, 1);
Persistent<Context> context2 = Context::New();
@@ -17064,7 +17060,7 @@ THREADED_TEST(CreationContext) {
THREADED_TEST(CreationContextOfJsFunction) {
- HandleScope handle_scope;
+ HandleScope handle_scope(v8::Isolate::GetCurrent());
Persistent<Context> context = Context::New();
InstallContextId(context, 1);
@@ -17123,8 +17119,8 @@ Handle<Value> HasOwnPropertyAccessorGetter(Local<String> property,
TEST(HasOwnProperty) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
{ // Check normal properties and defined getters.
Handle<Value> value = CompileRun(
"function Foo() {"
@@ -17196,7 +17192,7 @@ TEST(HasOwnProperty) {
TEST(IndexedInterceptorWithStringProto) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Handle<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetIndexedPropertyHandler(NULL,
NULL,
@@ -17258,8 +17254,8 @@ bool CodeGenerationDisallowed(Local<Context> context) {
THREADED_TEST(AllowCodeGenFromStrings) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
// eval and the Function constructor allowed by default.
CHECK(context->IsCodeGenerationFromStringsAllowed());
@@ -17288,8 +17284,8 @@ THREADED_TEST(AllowCodeGenFromStrings) {
TEST(SetErrorMessageForCodeGenFromStrings) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
TryCatch try_catch;
Handle<String> message = v8_str("Message") ;
@@ -17311,8 +17307,8 @@ static v8::Handle<Value> NonObjectThis(const v8::Arguments& args) {
THREADED_TEST(CallAPIFunctionOnNonObject) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
Handle<FunctionTemplate> templ = v8::FunctionTemplate::New(NonObjectThis);
Handle<Function> function = templ->GetFunction();
context->Global()->Set(v8_str("f"), function);
@@ -17323,7 +17319,7 @@ THREADED_TEST(CallAPIFunctionOnNonObject) {
// Regression test for issue 1470.
THREADED_TEST(ReadOnlyIndexedProperties) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Local<ObjectTemplate> templ = ObjectTemplate::New();
LocalContext context;
@@ -17344,10 +17340,10 @@ THREADED_TEST(ReadOnlyIndexedProperties) {
THREADED_TEST(Regress1516) {
- v8::HandleScope scope;
-
LocalContext context;
- { v8::HandleScope temp_scope;
+ v8::HandleScope scope(context->GetIsolate());
+
+ { v8::HandleScope temp_scope(context->GetIsolate());
CompileRun("({'a': 0})");
}
@@ -17388,7 +17384,7 @@ static bool BlockProtoNamedSecurityTestCallback(Local<v8::Object> global,
THREADED_TEST(Regress93759) {
- HandleScope scope;
+ HandleScope scope(v8::Isolate::GetCurrent());
// Template for object with security check.
Local<ObjectTemplate> no_proto_template = v8::ObjectTemplate::New();
@@ -17479,7 +17475,7 @@ THREADED_TEST(Regress93759) {
THREADED_TEST(Regress125988) {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
Handle<FunctionTemplate> intercept = FunctionTemplate::New();
AddInterceptor(intercept, EmptyInterceptorGetter, EmptyInterceptorSetter);
LocalContext env;
@@ -17513,7 +17509,7 @@ static void TestReceiver(Local<Value> expected_result,
THREADED_TEST(ForeignFunctionReceiver) {
- HandleScope scope;
+ HandleScope scope(v8::Isolate::GetCurrent());
// Create two contexts with different "id" properties ('i' and 'o').
// Call a function both from its own context and from a the foreign
@@ -17641,8 +17637,8 @@ Handle<Value> RecursiveCall(const Arguments& args) {
TEST(CallCompletedCallback) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::Handle<v8::FunctionTemplate> recursive_runtime =
v8::FunctionTemplate::New(RecursiveCall);
env->Global()->Set(v8_str("recursion"),
@@ -17674,28 +17670,28 @@ TEST(CallCompletedCallback) {
void CallCompletedCallbackNoException() {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
CompileRun("1+1;");
}
void CallCompletedCallbackException() {
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
CompileRun("throw 'second exception';");
}
TEST(CallCompletedCallbackOneException) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::V8::AddCallCompletedCallback(CallCompletedCallbackNoException);
CompileRun("throw 'exception';");
}
TEST(CallCompletedCallbackTwoExceptions) {
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
v8::V8::AddCallCompletedCallback(CallCompletedCallbackException);
CompileRun("throw 'first exception';");
}
@@ -17743,8 +17739,8 @@ static void StubCacheHelper(bool primary) {
i::FLAG_test_secondary_stub_cache = true;
}
i::FLAG_crankshaft = false;
- v8::HandleScope scope;
LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
int initial_probes = probes_counter;
int initial_misses = misses_counter;
int initial_updates = updates_counter;
@@ -17777,9 +17773,9 @@ static void CountingErrorCallback(const char* location, const char* message) {
TEST(StaticGetters) {
- v8::HandleScope scope;
LocalContext context;
v8::Isolate* isolate = v8::Isolate::GetCurrent();
+ v8::HandleScope scope(isolate);
i::Handle<i::Object> undefined_value = FACTORY->undefined_value();
CHECK(*v8::Utils::OpenHandle(*v8::Undefined()) == *undefined_value);
CHECK(*v8::Utils::OpenHandle(*v8::Undefined(isolate)) == *undefined_value);
@@ -17839,9 +17835,9 @@ TEST(IsolateEmbedderData) {
TEST(StringEmpty) {
- v8::HandleScope scope;
LocalContext context;
v8::Isolate* isolate = v8::Isolate::GetCurrent();
+ v8::HandleScope scope(isolate);
i::Handle<i::Object> empty_string = FACTORY->empty_string();
CHECK(*v8::Utils::OpenHandle(*v8::String::Empty()) == *empty_string);
CHECK(*v8::Utils::OpenHandle(*v8::String::Empty(isolate)) == *empty_string);
@@ -17942,8 +17938,8 @@ static void CheckInstanceCheckedAccessors(bool expects_callbacks) {
THREADED_TEST(InstanceCheckOnInstanceAccessor) {
v8::internal::FLAG_allow_natives_syntax = true;
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
Local<FunctionTemplate> templ = FunctionTemplate::New();
Local<ObjectTemplate> inst = templ->InstanceTemplate();
@@ -17970,8 +17966,8 @@ THREADED_TEST(InstanceCheckOnInstanceAccessor) {
THREADED_TEST(InstanceCheckOnInstanceAccessorWithInterceptor) {
v8::internal::FLAG_allow_natives_syntax = true;
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
Local<FunctionTemplate> templ = FunctionTemplate::New();
Local<ObjectTemplate> inst = templ->InstanceTemplate();
@@ -17999,8 +17995,8 @@ THREADED_TEST(InstanceCheckOnInstanceAccessorWithInterceptor) {
THREADED_TEST(InstanceCheckOnPrototypeAccessor) {
v8::internal::FLAG_allow_natives_syntax = true;
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
Local<FunctionTemplate> templ = FunctionTemplate::New();
Local<ObjectTemplate> proto = templ->PrototypeTemplate();
@@ -18034,8 +18030,8 @@ THREADED_TEST(InstanceCheckOnPrototypeAccessor) {
TEST(TryFinallyMessage) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
{
// Test that the original error message is not lost if there is a
// recursive call into Javascript is done in the finally block, e.g. to
@@ -18126,7 +18122,7 @@ static void Helper137002(bool do_store,
THREADED_TEST(Regress137002a) {
i::FLAG_allow_natives_syntax = true;
i::FLAG_compilation_cache = false;
- v8::HandleScope scope;
+ v8::HandleScope scope(v8::Isolate::GetCurrent());
for (int i = 0; i < 16; i++) {
Helper137002(i & 8, i & 4, i & 2, i & 1);
}
@@ -18135,8 +18131,8 @@ THREADED_TEST(Regress137002a) {
THREADED_TEST(Regress137002b) {
i::FLAG_allow_natives_syntax = true;
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetAccessor(v8_str("foo"),
GetterWhichReturns42,
@@ -18203,8 +18199,8 @@ THREADED_TEST(Regress137002b) {
THREADED_TEST(Regress142088) {
i::FLAG_allow_natives_syntax = true;
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
Local<ObjectTemplate> templ = ObjectTemplate::New();
templ->SetAccessor(v8_str("foo"),
GetterWhichReturns42,
@@ -18220,8 +18216,8 @@ THREADED_TEST(Regress142088) {
THREADED_TEST(Regress137496) {
i::FLAG_expose_gc = true;
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
// Compile a try-finally clause where the finally block causes a GC
// while there still is a message pending for external reporting.
@@ -18233,8 +18229,8 @@ THREADED_TEST(Regress137496) {
THREADED_TEST(Regress149912) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
Handle<FunctionTemplate> templ = FunctionTemplate::New();
AddInterceptor(templ, EmptyInterceptorGetter, EmptyInterceptorSetter);
context->Global()->Set(v8_str("Bug"), templ->GetFunction());
@@ -18243,8 +18239,8 @@ THREADED_TEST(Regress149912) {
THREADED_TEST(Regress157124) {
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
Local<ObjectTemplate> templ = ObjectTemplate::New();
Local<Object> obj = templ->NewInstance();
obj->GetIdentityHash();
@@ -18254,8 +18250,8 @@ THREADED_TEST(Regress157124) {
THREADED_TEST(Regress2535) {
i::FLAG_harmony_collections = true;
- v8::HandleScope scope;
LocalContext context;
+ v8::HandleScope scope(context->GetIsolate());
Local<Value> set_value = CompileRun("new Set();");
Local<Object> set_object(Object::Cast(*set_value));
CHECK_EQ(0, set_object->InternalFieldCount());
« no previous file with comments | « test/cctest/test-alloc.cc ('k') | test/cctest/test-assembler-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698