| Index: test/cctest/test-api.cc
 | 
| diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
 | 
| index a6b3f247e9e314352b4ff235543b2c62f9363f65..4d032b654a16642196d2d372902e621f2211f564 100644
 | 
| --- a/test/cctest/test-api.cc
 | 
| +++ b/test/cctest/test-api.cc
 | 
| @@ -185,7 +185,8 @@ THREADED_TEST(IsolateOfContext) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -static void TestSignature(const char* loop_js, Local<Value> receiver) {
 | 
| +static void TestSignature(const char* loop_js, Local<Value> receiver,
 | 
| +                          v8::Isolate* isolate) {
 | 
|    i::ScopedVector<char> source(200);
 | 
|    i::SNPrintF(source,
 | 
|                "for (var i = 0; i < 10; i++) {"
 | 
| @@ -202,7 +203,7 @@ static void TestSignature(const char* loop_js, Local<Value> receiver) {
 | 
|      CHECK_EQ(10, signature_callback_count);
 | 
|    } else {
 | 
|      CHECK_EQ(v8_str("TypeError: Illegal invocation"),
 | 
| -             try_catch.Exception()->ToString());
 | 
| +             try_catch.Exception()->ToString(isolate));
 | 
|    }
 | 
|  }
 | 
|  
 | 
| @@ -267,17 +268,17 @@ THREADED_TEST(ReceiverSignature) {
 | 
|      i::SNPrintF(
 | 
|          source, "var test_object = %s; test_object", test_objects[i]);
 | 
|      Local<Value> test_object = CompileRun(source.start());
 | 
| -    TestSignature("test_object.prop();", test_object);
 | 
| -    TestSignature("test_object.accessor;", test_object);
 | 
| -    TestSignature("test_object[accessor_key];", test_object);
 | 
| -    TestSignature("test_object.accessor = 1;", test_object);
 | 
| -    TestSignature("test_object[accessor_key] = 1;", test_object);
 | 
| +    TestSignature("test_object.prop();", test_object, isolate);
 | 
| +    TestSignature("test_object.accessor;", test_object, isolate);
 | 
| +    TestSignature("test_object[accessor_key];", test_object, isolate);
 | 
| +    TestSignature("test_object.accessor = 1;", test_object, isolate);
 | 
| +    TestSignature("test_object[accessor_key] = 1;", test_object, isolate);
 | 
|      if (i >= bad_signature_start_offset) test_object = Local<Value>();
 | 
| -    TestSignature("test_object.prop_sig();", test_object);
 | 
| -    TestSignature("test_object.accessor_sig;", test_object);
 | 
| -    TestSignature("test_object[accessor_sig_key];", test_object);
 | 
| -    TestSignature("test_object.accessor_sig = 1;", test_object);
 | 
| -    TestSignature("test_object[accessor_sig_key] = 1;", test_object);
 | 
| +    TestSignature("test_object.prop_sig();", test_object, isolate);
 | 
| +    TestSignature("test_object.accessor_sig;", test_object, isolate);
 | 
| +    TestSignature("test_object[accessor_sig_key];", test_object, isolate);
 | 
| +    TestSignature("test_object.accessor_sig = 1;", test_object, isolate);
 | 
| +    TestSignature("test_object[accessor_sig_key] = 1;", test_object, isolate);
 | 
|    }
 | 
|  }
 | 
|  
 | 
| @@ -356,7 +357,7 @@ THREADED_TEST(HulIgennem) {
 | 
|    v8::Isolate* isolate = env->GetIsolate();
 | 
|    v8::HandleScope scope(isolate);
 | 
|    v8::Handle<v8::Primitive> undef = v8::Undefined(isolate);
 | 
| -  Local<String> undef_str = undef->ToString();
 | 
| +  Local<String> undef_str = undef->ToString(isolate);
 | 
|    char* value = i::NewArray<char>(undef_str->Utf8Length() + 1);
 | 
|    undef_str->WriteUtf8(value);
 | 
|    CHECK_EQ(0, strcmp(value, "undefined"));
 | 
| @@ -1233,7 +1234,8 @@ Handle<Value> TestFastReturnValues() {
 | 
|  
 | 
|  THREADED_PROFILED_TEST(FastReturnValues) {
 | 
|    LocalContext env;
 | 
| -  v8::HandleScope scope(CcTest::isolate());
 | 
| +  v8::Isolate* isolate = env->GetIsolate();
 | 
| +  v8::HandleScope scope(isolate);
 | 
|    v8::Handle<v8::Value> value;
 | 
|    // check int32_t and uint32_t
 | 
|    int32_t int_values[] = {
 | 
| @@ -1258,13 +1260,13 @@ THREADED_PROFILED_TEST(FastReturnValues) {
 | 
|    // check double
 | 
|    value = TestFastReturnValues<double>();
 | 
|    CHECK(value->IsNumber());
 | 
| -  CHECK_EQ(kFastReturnValueDouble, value->ToNumber()->Value());
 | 
| +  CHECK_EQ(kFastReturnValueDouble, value->ToNumber(isolate)->Value());
 | 
|    // check bool values
 | 
|    for (int i = 0; i < 2; i++) {
 | 
|      fast_return_value_bool = i == 0;
 | 
|      value = TestFastReturnValues<bool>();
 | 
|      CHECK(value->IsBoolean());
 | 
| -    CHECK_EQ(fast_return_value_bool, value->ToBoolean()->Value());
 | 
| +    CHECK_EQ(fast_return_value_bool, value->ToBoolean(isolate)->Value());
 | 
|    }
 | 
|    // check oddballs
 | 
|    ReturnValueOddball oddballs[] = {
 | 
| @@ -4387,13 +4389,14 @@ THREADED_TEST(ScriptException) {
 | 
|  
 | 
|  TEST(TryCatchCustomException) {
 | 
|    LocalContext env;
 | 
| -  v8::HandleScope scope(env->GetIsolate());
 | 
| +  v8::Isolate* isolate = env->GetIsolate();
 | 
| +  v8::HandleScope scope(isolate);
 | 
|    v8::TryCatch try_catch;
 | 
|    CompileRun("function CustomError() { this.a = 'b'; }"
 | 
|               "(function f() { throw new CustomError(); })();");
 | 
|    CHECK(try_catch.HasCaught());
 | 
| -  CHECK(try_catch.Exception()->ToObject()->
 | 
| -            Get(v8_str("a"))->Equals(v8_str("b")));
 | 
| +  CHECK(try_catch.Exception()->ToObject(isolate)->Get(v8_str("a"))->Equals(
 | 
| +      v8_str("b")));
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -4887,49 +4890,51 @@ static void CheckUncle(v8::TryCatch* try_catch) {
 | 
|  
 | 
|  THREADED_TEST(ConversionNumber) {
 | 
|    LocalContext env;
 | 
| -  v8::HandleScope scope(env->GetIsolate());
 | 
| +  v8::Isolate* isolate = env->GetIsolate();
 | 
| +  v8::HandleScope scope(isolate);
 | 
|    // Very large number.
 | 
|    CompileRun("var obj = Math.pow(2,32) * 1237;");
 | 
|    Local<Value> obj = env->Global()->Get(v8_str("obj"));
 | 
| -  CHECK_EQ(5312874545152.0, obj->ToNumber()->Value());
 | 
| -  CHECK_EQ(0, obj->ToInt32()->Value());
 | 
| -  CHECK(0u == obj->ToUint32()->Value());  // NOLINT - no CHECK_EQ for unsigned.
 | 
| +  CHECK_EQ(5312874545152.0, obj->ToNumber(isolate)->Value());
 | 
| +  CHECK_EQ(0, obj->ToInt32(isolate)->Value());
 | 
| +  CHECK(0u ==
 | 
| +        obj->ToUint32(isolate)->Value());  // NOLINT - no CHECK_EQ for unsigned.
 | 
|    // Large number.
 | 
|    CompileRun("var obj = -1234567890123;");
 | 
|    obj = env->Global()->Get(v8_str("obj"));
 | 
| -  CHECK_EQ(-1234567890123.0, obj->ToNumber()->Value());
 | 
| -  CHECK_EQ(-1912276171, obj->ToInt32()->Value());
 | 
| -  CHECK(2382691125u == obj->ToUint32()->Value());  // NOLINT
 | 
| +  CHECK_EQ(-1234567890123.0, obj->ToNumber(isolate)->Value());
 | 
| +  CHECK_EQ(-1912276171, obj->ToInt32(isolate)->Value());
 | 
| +  CHECK(2382691125u == obj->ToUint32(isolate)->Value());  // NOLINT
 | 
|    // Small positive integer.
 | 
|    CompileRun("var obj = 42;");
 | 
|    obj = env->Global()->Get(v8_str("obj"));
 | 
| -  CHECK_EQ(42.0, obj->ToNumber()->Value());
 | 
| -  CHECK_EQ(42, obj->ToInt32()->Value());
 | 
| -  CHECK(42u == obj->ToUint32()->Value());  // NOLINT
 | 
| +  CHECK_EQ(42.0, obj->ToNumber(isolate)->Value());
 | 
| +  CHECK_EQ(42, obj->ToInt32(isolate)->Value());
 | 
| +  CHECK(42u == obj->ToUint32(isolate)->Value());  // NOLINT
 | 
|    // Negative integer.
 | 
|    CompileRun("var obj = -37;");
 | 
|    obj = env->Global()->Get(v8_str("obj"));
 | 
| -  CHECK_EQ(-37.0, obj->ToNumber()->Value());
 | 
| -  CHECK_EQ(-37, obj->ToInt32()->Value());
 | 
| -  CHECK(4294967259u == obj->ToUint32()->Value());  // NOLINT
 | 
| +  CHECK_EQ(-37.0, obj->ToNumber(isolate)->Value());
 | 
| +  CHECK_EQ(-37, obj->ToInt32(isolate)->Value());
 | 
| +  CHECK(4294967259u == obj->ToUint32(isolate)->Value());  // NOLINT
 | 
|    // Positive non-int32 integer.
 | 
|    CompileRun("var obj = 0x81234567;");
 | 
|    obj = env->Global()->Get(v8_str("obj"));
 | 
| -  CHECK_EQ(2166572391.0, obj->ToNumber()->Value());
 | 
| -  CHECK_EQ(-2128394905, obj->ToInt32()->Value());
 | 
| -  CHECK(2166572391u == obj->ToUint32()->Value());  // NOLINT
 | 
| +  CHECK_EQ(2166572391.0, obj->ToNumber(isolate)->Value());
 | 
| +  CHECK_EQ(-2128394905, obj->ToInt32(isolate)->Value());
 | 
| +  CHECK(2166572391u == obj->ToUint32(isolate)->Value());  // NOLINT
 | 
|    // Fraction.
 | 
|    CompileRun("var obj = 42.3;");
 | 
|    obj = env->Global()->Get(v8_str("obj"));
 | 
| -  CHECK_EQ(42.3, obj->ToNumber()->Value());
 | 
| -  CHECK_EQ(42, obj->ToInt32()->Value());
 | 
| -  CHECK(42u == obj->ToUint32()->Value());  // NOLINT
 | 
| +  CHECK_EQ(42.3, obj->ToNumber(isolate)->Value());
 | 
| +  CHECK_EQ(42, obj->ToInt32(isolate)->Value());
 | 
| +  CHECK(42u == obj->ToUint32(isolate)->Value());  // NOLINT
 | 
|    // Large negative fraction.
 | 
|    CompileRun("var obj = -5726623061.75;");
 | 
|    obj = env->Global()->Get(v8_str("obj"));
 | 
| -  CHECK_EQ(-5726623061.75, obj->ToNumber()->Value());
 | 
| -  CHECK_EQ(-1431655765, obj->ToInt32()->Value());
 | 
| -  CHECK(2863311531u == obj->ToUint32()->Value());  // NOLINT
 | 
| +  CHECK_EQ(-5726623061.75, obj->ToNumber(isolate)->Value());
 | 
| +  CHECK_EQ(-1431655765, obj->ToInt32(isolate)->Value());
 | 
| +  CHECK(2863311531u == obj->ToUint32(isolate)->Value());  // NOLINT
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -4994,29 +4999,29 @@ THREADED_TEST(ConversionException) {
 | 
|      "var obj = new TestClass();");
 | 
|    Local<Value> obj = env->Global()->Get(v8_str("obj"));
 | 
|  
 | 
| -  v8::TryCatch try_catch;
 | 
| +  v8::TryCatch try_catch(isolate);
 | 
|  
 | 
| -  Local<Value> to_string_result = obj->ToString();
 | 
| +  Local<Value> to_string_result = obj->ToString(isolate);
 | 
|    CHECK(to_string_result.IsEmpty());
 | 
|    CheckUncle(&try_catch);
 | 
|  
 | 
| -  Local<Value> to_number_result = obj->ToNumber();
 | 
| +  Local<Value> to_number_result = obj->ToNumber(isolate);
 | 
|    CHECK(to_number_result.IsEmpty());
 | 
|    CheckUncle(&try_catch);
 | 
|  
 | 
| -  Local<Value> to_integer_result = obj->ToInteger();
 | 
| +  Local<Value> to_integer_result = obj->ToInteger(isolate);
 | 
|    CHECK(to_integer_result.IsEmpty());
 | 
|    CheckUncle(&try_catch);
 | 
|  
 | 
| -  Local<Value> to_uint32_result = obj->ToUint32();
 | 
| +  Local<Value> to_uint32_result = obj->ToUint32(isolate);
 | 
|    CHECK(to_uint32_result.IsEmpty());
 | 
|    CheckUncle(&try_catch);
 | 
|  
 | 
| -  Local<Value> to_int32_result = obj->ToInt32();
 | 
| +  Local<Value> to_int32_result = obj->ToInt32(isolate);
 | 
|    CHECK(to_int32_result.IsEmpty());
 | 
|    CheckUncle(&try_catch);
 | 
|  
 | 
| -  Local<Value> to_object_result = v8::Undefined(isolate)->ToObject();
 | 
| +  Local<Value> to_object_result = v8::Undefined(isolate)->ToObject(isolate);
 | 
|    CHECK(to_object_result.IsEmpty());
 | 
|    CHECK(try_catch.HasCaught());
 | 
|    try_catch.Reset();
 | 
| @@ -5052,7 +5057,7 @@ void CCatcher(const v8::FunctionCallbackInfo<v8::Value>& args) {
 | 
|    }
 | 
|    v8::HandleScope scope(args.GetIsolate());
 | 
|    v8::TryCatch try_catch;
 | 
| -  Local<Value> result = CompileRun(args[0]->ToString());
 | 
| +  Local<Value> result = CompileRun(args[0]->ToString(args.GetIsolate()));
 | 
|    CHECK(!try_catch.HasCaught() || result.IsEmpty());
 | 
|    args.GetReturnValue().Set(try_catch.HasCaught());
 | 
|  }
 | 
| @@ -6331,7 +6336,7 @@ THREADED_TEST(IndexedInterceptorUnboxedDoubleWithIndexedAccessor) {
 | 
|        "for (x in obj) {key_count++;};"
 | 
|        "obj;");
 | 
|    Local<Value> result = create_unboxed_double_script->Run();
 | 
| -  CHECK(result->ToObject()->HasRealIndexedProperty(2000));
 | 
| +  CHECK(result->ToObject(isolate)->HasRealIndexedProperty(2000));
 | 
|    Local<Script> key_count_check = v8_compile("key_count;");
 | 
|    result = key_count_check->Run();
 | 
|    CHECK_EQ(v8_num(40013), result);
 | 
| @@ -8918,7 +8923,7 @@ TEST(TryCatchFinallyUsingTryCatchHandler) {
 | 
|  
 | 
|  void CEvaluate(const v8::FunctionCallbackInfo<v8::Value>& args) {
 | 
|    v8::HandleScope scope(args.GetIsolate());
 | 
| -  CompileRun(args[0]->ToString());
 | 
| +  CompileRun(args[0]->ToString(args.GetIsolate()));
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -9192,11 +9197,11 @@ TEST(SecurityTestGCAllowed) {
 | 
|    CHECK(indexed_security_check_with_gc_called);
 | 
|  
 | 
|    named_security_check_with_gc_called = false;
 | 
| -  CHECK(CompileRun("obj.foo")->ToString()->Equals(v8_str("1001")));
 | 
| +  CHECK(CompileRun("obj.foo")->ToString(isolate)->Equals(v8_str("1001")));
 | 
|    CHECK(named_security_check_with_gc_called);
 | 
|  
 | 
|    indexed_security_check_with_gc_called = false;
 | 
| -  CHECK(CompileRun("obj[0]")->ToString()->Equals(v8_str("1002")));
 | 
| +  CHECK(CompileRun("obj[0]")->ToString(isolate)->Equals(v8_str("1002")));
 | 
|    CHECK(indexed_security_check_with_gc_called);
 | 
|  }
 | 
|  
 | 
| @@ -11057,7 +11062,7 @@ THREADED_TEST(ConstructorForObject) {
 | 
|          "(function() { var o = new obj('tipli'); return o.a; })()");
 | 
|      CHECK(!try_catch.HasCaught());
 | 
|      CHECK(value->IsString());
 | 
| -    String::Utf8Value string_value1(value->ToString());
 | 
| +    String::Utf8Value string_value1(value->ToString(isolate));
 | 
|      CHECK_EQ("tipli", *string_value1);
 | 
|  
 | 
|      Local<Value> args2[] = { v8_str("tipli") };
 | 
| @@ -11067,7 +11072,7 @@ THREADED_TEST(ConstructorForObject) {
 | 
|      value = object2->Get(v8_str("a"));
 | 
|      CHECK(!try_catch.HasCaught());
 | 
|      CHECK(value->IsString());
 | 
| -    String::Utf8Value string_value2(value->ToString());
 | 
| +    String::Utf8Value string_value2(value->ToString(isolate));
 | 
|      CHECK_EQ("tipli", *string_value2);
 | 
|  
 | 
|      // Call the Object's constructor with a Boolean.
 | 
| @@ -12863,7 +12868,7 @@ THREADED_PROFILED_TEST(InterceptorCallICFastApi_SimpleSignature_Miss3) {
 | 
|    CHECK(try_catch.HasCaught());
 | 
|    // TODO(verwaest): Adjust message.
 | 
|    CHECK_EQ(v8_str("TypeError: undefined is not a function"),
 | 
| -           try_catch.Exception()->ToString());
 | 
| +           try_catch.Exception()->ToString(isolate));
 | 
|    CHECK_EQ(42, context->Global()->Get(v8_str("saved_result"))->Int32Value());
 | 
|    CHECK_GE(interceptor_call_count, 50);
 | 
|  }
 | 
| @@ -12905,7 +12910,7 @@ THREADED_PROFILED_TEST(InterceptorCallICFastApi_SimpleSignature_TypeError) {
 | 
|        "}");
 | 
|    CHECK(try_catch.HasCaught());
 | 
|    CHECK_EQ(v8_str("TypeError: Illegal invocation"),
 | 
| -           try_catch.Exception()->ToString());
 | 
| +           try_catch.Exception()->ToString(isolate));
 | 
|    CHECK_EQ(42, context->Global()->Get(v8_str("saved_result"))->Int32Value());
 | 
|    CHECK_GE(interceptor_call_count, 50);
 | 
|  }
 | 
| @@ -13038,7 +13043,7 @@ THREADED_PROFILED_TEST(CallICFastApi_SimpleSignature_Miss2) {
 | 
|    CHECK(try_catch.HasCaught());
 | 
|    // TODO(verwaest): Adjust message.
 | 
|    CHECK_EQ(v8_str("TypeError: undefined is not a function"),
 | 
| -           try_catch.Exception()->ToString());
 | 
| +           try_catch.Exception()->ToString(isolate));
 | 
|    CHECK_EQ(42, context->Global()->Get(v8_str("saved_result"))->Int32Value());
 | 
|  }
 | 
|  
 | 
| @@ -13076,7 +13081,7 @@ THREADED_PROFILED_TEST(CallICFastApi_SimpleSignature_TypeError) {
 | 
|        "}");
 | 
|    CHECK(try_catch.HasCaught());
 | 
|    CHECK_EQ(v8_str("TypeError: Illegal invocation"),
 | 
| -           try_catch.Exception()->ToString());
 | 
| +           try_catch.Exception()->ToString(isolate));
 | 
|    CHECK_EQ(42, context->Global()->Get(v8_str("saved_result"))->Int32Value());
 | 
|  }
 | 
|  
 | 
| @@ -13663,7 +13668,7 @@ THREADED_TEST(ObjectProtoToString) {
 | 
|  
 | 
|    // Normal ToString call should call replaced Object.prototype.toString
 | 
|    Local<v8::Object> instance = templ->GetFunction()->NewInstance();
 | 
| -  Local<String> value = instance->ToString();
 | 
| +  Local<String> value = instance->ToString(isolate);
 | 
|    CHECK(value->IsString() && value->Equals(customized_tostring));
 | 
|  
 | 
|    // ObjectProtoToString should not call replace toString function.
 | 
| @@ -13700,7 +13705,7 @@ TEST(ObjectProtoToStringES6) {
 | 
|  
 | 
|    // Normal ToString call should call replaced Object.prototype.toString
 | 
|    Local<v8::Object> instance = templ->GetFunction()->NewInstance();
 | 
| -  Local<String> value = instance->ToString();
 | 
| +  Local<String> value = instance->ToString(isolate);
 | 
|    CHECK(value->IsString() && value->Equals(customized_tostring));
 | 
|  
 | 
|    // ObjectProtoToString should not call replace toString function.
 | 
| @@ -13799,8 +13804,9 @@ TEST(ObjectProtoToStringES6) {
 | 
|  
 | 
|  
 | 
|  THREADED_TEST(ObjectGetConstructorName) {
 | 
| +  v8::Isolate* isolate = CcTest::isolate();
 | 
|    LocalContext context;
 | 
| -  v8::HandleScope scope(context->GetIsolate());
 | 
| +  v8::HandleScope scope(isolate);
 | 
|    v8_compile("function Parent() {};"
 | 
|               "function Child() {};"
 | 
|               "Child.prototype = new Parent();"
 | 
| @@ -13810,16 +13816,17 @@ THREADED_TEST(ObjectGetConstructorName) {
 | 
|               "var x = new outer.inner();")->Run();
 | 
|  
 | 
|    Local<v8::Value> p = context->Global()->Get(v8_str("p"));
 | 
| -  CHECK(p->IsObject() && p->ToObject()->GetConstructorName()->Equals(
 | 
| -      v8_str("Parent")));
 | 
| +  CHECK(p->IsObject() &&
 | 
| +        p->ToObject(isolate)->GetConstructorName()->Equals(v8_str("Parent")));
 | 
|  
 | 
|    Local<v8::Value> c = context->Global()->Get(v8_str("c"));
 | 
| -  CHECK(c->IsObject() && c->ToObject()->GetConstructorName()->Equals(
 | 
| -      v8_str("Child")));
 | 
| +  CHECK(c->IsObject() &&
 | 
| +        c->ToObject(isolate)->GetConstructorName()->Equals(v8_str("Child")));
 | 
|  
 | 
|    Local<v8::Value> x = context->Global()->Get(v8_str("x"));
 | 
| -  CHECK(x->IsObject() && x->ToObject()->GetConstructorName()->Equals(
 | 
| -      v8_str("outer.inner")));
 | 
| +  CHECK(x->IsObject() &&
 | 
| +        x->ToObject(isolate)->GetConstructorName()->Equals(
 | 
| +            v8_str("outer.inner")));
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -14367,7 +14374,7 @@ THREADED_TEST(NestedHandleScopeAndContexts) {
 | 
|    v8::Local<Context> env = Context::New(isolate);
 | 
|    env->Enter();
 | 
|    v8::Handle<Value> value = NestedScope(env);
 | 
| -  v8::Handle<String> str(value->ToString());
 | 
| +  v8::Handle<String> str(value->ToString(isolate));
 | 
|    CHECK(!str.IsEmpty());
 | 
|    env->Exit();
 | 
|  }
 | 
| @@ -18802,10 +18809,11 @@ class VisitorImpl : public v8::ExternalResourceVisitor {
 | 
|  
 | 
|  
 | 
|  TEST(ExternalizeOldSpaceTwoByteCons) {
 | 
| +  v8::Isolate* isolate = CcTest::isolate();
 | 
|    LocalContext env;
 | 
| -  v8::HandleScope scope(env->GetIsolate());
 | 
| +  v8::HandleScope scope(isolate);
 | 
|    v8::Local<v8::String> cons =
 | 
| -      CompileRun("'Romeo Montague ' + 'Juliet Capulet'")->ToString();
 | 
| +      CompileRun("'Romeo Montague ' + 'Juliet Capulet'")->ToString(isolate);
 | 
|    CHECK(v8::Utils::OpenHandle(*cons)->IsConsString());
 | 
|    CcTest::heap()->CollectAllAvailableGarbage();
 | 
|    CHECK(CcTest::heap()->old_pointer_space()->Contains(
 | 
| @@ -18824,10 +18832,11 @@ TEST(ExternalizeOldSpaceTwoByteCons) {
 | 
|  
 | 
|  
 | 
|  TEST(ExternalizeOldSpaceOneByteCons) {
 | 
| +  v8::Isolate* isolate = CcTest::isolate();
 | 
|    LocalContext env;
 | 
| -  v8::HandleScope scope(env->GetIsolate());
 | 
| +  v8::HandleScope scope(isolate);
 | 
|    v8::Local<v8::String> cons =
 | 
| -      CompileRun("'Romeo Montague ' + 'Juliet Capulet'")->ToString();
 | 
| +      CompileRun("'Romeo Montague ' + 'Juliet Capulet'")->ToString(isolate);
 | 
|    CHECK(v8::Utils::OpenHandle(*cons)->IsConsString());
 | 
|    CcTest::heap()->CollectAllAvailableGarbage();
 | 
|    CHECK(CcTest::heap()->old_pointer_space()->Contains(
 | 
| @@ -18846,8 +18855,9 @@ TEST(ExternalizeOldSpaceOneByteCons) {
 | 
|  
 | 
|  
 | 
|  TEST(VisitExternalStrings) {
 | 
| +  v8::Isolate* isolate = CcTest::isolate();
 | 
|    LocalContext env;
 | 
| -  v8::HandleScope scope(env->GetIsolate());
 | 
| +  v8::HandleScope scope(isolate);
 | 
|    const char* string = "Some string";
 | 
|    uint16_t* two_byte_string = AsciiToTwoByteString(string);
 | 
|    TestResource* resource[4];
 | 
| @@ -18917,7 +18927,7 @@ TEST(ExternalInternalizedStringCollectedAtTearDown) {
 | 
|      const char* s = "One string to test them all";
 | 
|      TestOneByteResource* inscription =
 | 
|          new TestOneByteResource(i::StrDup(s), &destroyed);
 | 
| -    v8::Local<v8::String> ring = CompileRun("ring")->ToString();
 | 
| +    v8::Local<v8::String> ring = CompileRun("ring")->ToString(isolate);
 | 
|      CHECK(v8::Utils::OpenHandle(*ring)->IsInternalizedString());
 | 
|      ring->MakeExternal(inscription);
 | 
|      // Ring is still alive.  Orcs are roaming freely across our lands.
 | 
| @@ -18939,7 +18949,7 @@ TEST(ExternalInternalizedStringCollectedAtGC) {
 | 
|      const char* s = "One string to test them all";
 | 
|      TestOneByteResource* inscription =
 | 
|          new TestOneByteResource(i::StrDup(s), &destroyed);
 | 
| -    v8::Local<v8::String> ring = CompileRun("ring")->ToString();
 | 
| +    v8::Local<v8::String> ring = CompileRun("ring").As<v8::String>();
 | 
|      CHECK(v8::Utils::OpenHandle(*ring)->IsInternalizedString());
 | 
|      ring->MakeExternal(inscription);
 | 
|      // Ring is still alive.  Orcs are roaming freely across our lands.
 | 
| @@ -19078,7 +19088,7 @@ static void SpaghettiIncident(
 | 
|      const v8::FunctionCallbackInfo<v8::Value>& args) {
 | 
|    v8::HandleScope scope(args.GetIsolate());
 | 
|    v8::TryCatch tc;
 | 
| -  v8::Handle<v8::String> str(args[0]->ToString());
 | 
| +  v8::Handle<v8::String> str(args[0]->ToString(args.GetIsolate()));
 | 
|    USE(str);
 | 
|    if (tc.HasCaught())
 | 
|      tc.ReThrow();
 | 
| @@ -21013,7 +21023,7 @@ TEST(HasOwnProperty) {
 | 
|          "Bar.prototype = new Foo();"
 | 
|          "new Bar();");
 | 
|      CHECK(value->IsObject());
 | 
| -    Handle<Object> object = value->ToObject();
 | 
| +    Handle<Object> object = value->ToObject(isolate);
 | 
|      CHECK(object->Has(v8_str("foo")));
 | 
|      CHECK(!object->HasOwnProperty(v8_str("foo")));
 | 
|      CHECK(object->HasOwnProperty(v8_str("bar")));
 | 
| @@ -21263,12 +21273,11 @@ static bool BlockProtoNamedSecurityTestCallback(Local<v8::Object> global,
 | 
|                                                  v8::AccessType type,
 | 
|                                                  Local<Value> data) {
 | 
|    // Only block read access to __proto__.
 | 
| -  if (type == v8::ACCESS_GET &&
 | 
| -      name->IsString() &&
 | 
| -      name->ToString()->Length() == 9 &&
 | 
| -      name->ToString()->Utf8Length() == 9) {
 | 
| +  if (type == v8::ACCESS_GET && name->IsString() &&
 | 
| +      name.As<v8::String>()->Length() == 9 &&
 | 
| +      name.As<v8::String>()->Utf8Length() == 9) {
 | 
|      char buffer[10];
 | 
| -    CHECK_EQ(10, name->ToString()->WriteUtf8(buffer));
 | 
| +    CHECK_EQ(10, name.As<v8::String>()->WriteUtf8(buffer));
 | 
|      return strncmp(buffer, "__proto__", 9) != 0;
 | 
|    }
 | 
|  
 | 
| @@ -21315,8 +21324,7 @@ THREADED_TEST(Regress93759) {
 | 
|        context->Global();
 | 
|  
 | 
|    // Global object, the  prototype of proxy_object. No security checks.
 | 
| -  Local<Object> global_object =
 | 
| -      proxy_object->GetPrototype()->ToObject();
 | 
| +  Local<Object> global_object = proxy_object->GetPrototype()->ToObject(isolate);
 | 
|  
 | 
|    // Hidden prototype without security check.
 | 
|    Local<Object> hidden_prototype =
 | 
| @@ -21360,7 +21368,7 @@ THREADED_TEST(Regress93759) {
 | 
|  
 | 
|    Local<Value> result5 = CompileRun("Object.getPrototypeOf(hidden)");
 | 
|    CHECK(result5->Equals(
 | 
| -      object_with_hidden->GetPrototype()->ToObject()->GetPrototype()));
 | 
| +      object_with_hidden->GetPrototype()->ToObject(isolate)->GetPrototype()));
 | 
|  
 | 
|    Local<Value> result6 = CompileRun("Object.getPrototypeOf(phidden)");
 | 
|    CHECK(result6.IsEmpty());
 | 
| @@ -21396,8 +21404,8 @@ static void TestReceiver(Local<Value> expected_result,
 | 
|                           const char* code) {
 | 
|    Local<Value> result = CompileRun(code);
 | 
|    CHECK(result->IsObject());
 | 
| -  CHECK(expected_receiver->Equals(result->ToObject()->Get(1)));
 | 
| -  CHECK(expected_result->Equals(result->ToObject()->Get(0)));
 | 
| +  CHECK(expected_receiver->Equals(result.As<v8::Object>()->Get(1)));
 | 
| +  CHECK(expected_result->Equals(result.As<v8::Object>()->Get(0)));
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -21785,8 +21793,8 @@ static void DebugEventInObserver(const v8::Debug::EventDetails& event_details) {
 | 
|    Handle<Object> exec_state = event_details.GetExecutionState();
 | 
|    Handle<Value> break_id = exec_state->Get(v8_str("break_id"));
 | 
|    CompileRun("function f(id) { new FrameDetails(id, 0); }");
 | 
| -  Handle<Function> fun = Handle<Function>::Cast(
 | 
| -      CcTest::global()->Get(v8_str("f"))->ToObject());
 | 
| +  Handle<Function> fun =
 | 
| +      Handle<Function>::Cast(CcTest::global()->Get(v8_str("f")));
 | 
|    fun->Call(CcTest::global(), 1, &break_id);
 | 
|  }
 | 
|  
 | 
| @@ -22597,7 +22605,8 @@ void CatcherCallback(const v8::FunctionCallbackInfo<v8::Value>& args) {
 | 
|  
 | 
|  
 | 
|  void HasOwnPropertyCallback(const v8::FunctionCallbackInfo<v8::Value>& args) {
 | 
| -  args[0]->ToObject()->HasOwnProperty(args[1]->ToString());
 | 
| +  args[0]->ToObject(args.GetIsolate())->HasOwnProperty(
 | 
| +      args[1]->ToString(args.GetIsolate()));
 | 
|  }
 | 
|  
 | 
|  
 | 
| 
 |