| Index: test/cctest/test-api.cc | 
| diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc | 
| index 37517104075dad1e9d9b4155cb3630c00212c740..b2b2abeaafe856b06771fe0f2b05a39aeebc6a51 100644 | 
| --- a/test/cctest/test-api.cc | 
| +++ b/test/cctest/test-api.cc | 
| @@ -1724,8 +1724,10 @@ THREADED_TEST(BooleanObject) { | 
| CHECK(!as_boxed.IsEmpty()); | 
| bool the_boolean = as_boxed->ValueOf(); | 
| CHECK_EQ(true, the_boolean); | 
| -  v8::Local<v8::Value> boxed_true = v8::BooleanObject::New(true); | 
| -  v8::Local<v8::Value> boxed_false = v8::BooleanObject::New(false); | 
| +  v8::Local<v8::Value> boxed_true = | 
| +      v8::BooleanObject::New(env->GetIsolate(), true); | 
| +  v8::Local<v8::Value> boxed_false = | 
| +      v8::BooleanObject::New(env->GetIsolate(), false); | 
| CHECK(boxed_true->IsBooleanObject()); | 
| CHECK(boxed_false->IsBooleanObject()); | 
| as_boxed = boxed_true.As<v8::BooleanObject>(); | 
| @@ -1746,7 +1748,7 @@ THREADED_TEST(PrimitiveAndWrappedBooleans) { | 
| CHECK(!primitive_false->IsTrue()); | 
| CHECK(primitive_false->IsFalse()); | 
|  | 
| -  Local<Value> false_value = BooleanObject::New(false); | 
| +  Local<Value> false_value = BooleanObject::New(env->GetIsolate(), false); | 
| CHECK(!false_value->IsBoolean()); | 
| CHECK(false_value->IsBooleanObject()); | 
| CHECK(false_value->BooleanValue(env.local()).FromJust()); | 
| @@ -1768,7 +1770,7 @@ THREADED_TEST(PrimitiveAndWrappedBooleans) { | 
| CHECK(primitive_true->IsTrue()); | 
| CHECK(!primitive_true->IsFalse()); | 
|  | 
| -  Local<Value> true_value = BooleanObject::New(true); | 
| +  Local<Value> true_value = BooleanObject::New(env->GetIsolate(), true); | 
| CHECK(!true_value->IsBoolean()); | 
| CHECK(true_value->IsBooleanObject()); | 
| CHECK(true_value->BooleanValue(env.local()).FromJust()); | 
| @@ -8702,41 +8704,6 @@ THREADED_TEST(DeleteAccessor) { | 
| } | 
|  | 
|  | 
| -THREADED_TEST(TypeSwitch) { | 
| -  v8::Isolate* isolate = CcTest::isolate(); | 
| -  v8::HandleScope scope(isolate); | 
| -  v8::Local<v8::FunctionTemplate> templ1 = v8::FunctionTemplate::New(isolate); | 
| -  v8::Local<v8::FunctionTemplate> templ2 = v8::FunctionTemplate::New(isolate); | 
| -  v8::Local<v8::FunctionTemplate> templ3 = v8::FunctionTemplate::New(isolate); | 
| -  v8::Local<v8::FunctionTemplate> templs[3] = {templ1, templ2, templ3}; | 
| -  v8::Local<v8::TypeSwitch> type_switch = v8::TypeSwitch::New(3, templs); | 
| -  LocalContext context; | 
| -  v8::Local<v8::Object> obj0 = v8::Object::New(isolate); | 
| -  v8::Local<v8::Object> obj1 = templ1->GetFunction(context.local()) | 
| -                                   .ToLocalChecked() | 
| -                                   ->NewInstance(context.local()) | 
| -                                   .ToLocalChecked(); | 
| -  v8::Local<v8::Object> obj2 = templ2->GetFunction(context.local()) | 
| -                                   .ToLocalChecked() | 
| -                                   ->NewInstance(context.local()) | 
| -                                   .ToLocalChecked(); | 
| -  v8::Local<v8::Object> obj3 = templ3->GetFunction(context.local()) | 
| -                                   .ToLocalChecked() | 
| -                                   ->NewInstance(context.local()) | 
| -                                   .ToLocalChecked(); | 
| -  for (int i = 0; i < 10; i++) { | 
| -    CHECK_EQ(0, type_switch->match(obj0)); | 
| -    CHECK_EQ(1, type_switch->match(obj1)); | 
| -    CHECK_EQ(2, type_switch->match(obj2)); | 
| -    CHECK_EQ(3, type_switch->match(obj3)); | 
| -    CHECK_EQ(3, type_switch->match(obj3)); | 
| -    CHECK_EQ(2, type_switch->match(obj2)); | 
| -    CHECK_EQ(1, type_switch->match(obj1)); | 
| -    CHECK_EQ(0, type_switch->match(obj0)); | 
| -  } | 
| -} | 
| - | 
| - | 
| static int trouble_nesting = 0; | 
| static void TroubleCallback(const v8::FunctionCallbackInfo<v8::Value>& args) { | 
| ApiTestFuzzer::Fuzz(); | 
| @@ -14741,11 +14708,12 @@ class RegExpInterruptionThread : public v8::base::Thread { | 
| }; | 
|  | 
|  | 
| -void RunBeforeGC(v8::GCType type, v8::GCCallbackFlags flags) { | 
| +void RunBeforeGC(v8::Isolate* isolate, v8::GCType type, | 
| +                 v8::GCCallbackFlags flags) { | 
| if (v8::base::NoBarrier_Load(®exp_interruption_data.loop_count) != 2) { | 
| return; | 
| } | 
| -  v8::HandleScope scope(CcTest::isolate()); | 
| +  v8::HandleScope scope(isolate); | 
| v8::Local<v8::String> string = v8::Local<v8::String>::New( | 
| CcTest::isolate(), regexp_interruption_data.string); | 
| string->MakeExternal(regexp_interruption_data.string_resource); | 
| @@ -14762,7 +14730,7 @@ TEST(RegExpInterruption) { | 
|  | 
| RegExpInterruptionThread timeout_thread(CcTest::isolate()); | 
|  | 
| -  v8::V8::AddGCPrologueCallback(RunBeforeGC); | 
| +  env->GetIsolate()->AddGCPrologueCallback(RunBeforeGC); | 
| static const char* one_byte_content = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; | 
| i::uc16* uc16_content = AsciiToTwoByteString(one_byte_content); | 
| v8::Local<v8::String> string = v8_str(one_byte_content); | 
| @@ -18091,12 +18059,6 @@ int epilogue_call_count_second = 0; | 
| int prologue_call_count_alloc = 0; | 
| int epilogue_call_count_alloc = 0; | 
|  | 
| -void PrologueCallback(v8::GCType, v8::GCCallbackFlags flags) { | 
| -  CHECK_EQ(flags, v8::kNoGCCallbackFlags); | 
| -  ++prologue_call_count; | 
| -} | 
| - | 
| - | 
| void PrologueCallback(v8::Isolate* isolate, | 
| v8::GCType, | 
| v8::GCCallbackFlags flags) { | 
| @@ -18105,13 +18067,6 @@ void PrologueCallback(v8::Isolate* isolate, | 
| ++prologue_call_count; | 
| } | 
|  | 
| - | 
| -void EpilogueCallback(v8::GCType, v8::GCCallbackFlags flags) { | 
| -  CHECK_EQ(flags, v8::kNoGCCallbackFlags); | 
| -  ++epilogue_call_count; | 
| -} | 
| - | 
| - | 
| void EpilogueCallback(v8::Isolate* isolate, | 
| v8::GCType, | 
| v8::GCCallbackFlags flags) { | 
| @@ -18121,12 +18076,6 @@ void EpilogueCallback(v8::Isolate* isolate, | 
| } | 
|  | 
|  | 
| -void PrologueCallbackSecond(v8::GCType, v8::GCCallbackFlags flags) { | 
| -  CHECK_EQ(flags, v8::kNoGCCallbackFlags); | 
| -  ++prologue_call_count_second; | 
| -} | 
| - | 
| - | 
| void PrologueCallbackSecond(v8::Isolate* isolate, | 
| v8::GCType, | 
| v8::GCCallbackFlags flags) { | 
| @@ -18136,12 +18085,6 @@ void PrologueCallbackSecond(v8::Isolate* isolate, | 
| } | 
|  | 
|  | 
| -void EpilogueCallbackSecond(v8::GCType, v8::GCCallbackFlags flags) { | 
| -  CHECK_EQ(flags, v8::kNoGCCallbackFlags); | 
| -  ++epilogue_call_count_second; | 
| -} | 
| - | 
| - | 
| void EpilogueCallbackSecond(v8::Isolate* isolate, | 
| v8::GCType, | 
| v8::GCCallbackFlags flags) { | 
| @@ -18194,29 +18137,31 @@ void EpilogueCallbackAlloc(v8::Isolate* isolate, | 
| TEST(GCCallbacksOld) { | 
| LocalContext context; | 
|  | 
| -  v8::V8::AddGCPrologueCallback(PrologueCallback); | 
| -  v8::V8::AddGCEpilogueCallback(EpilogueCallback); | 
| +  gc_callbacks_isolate = context->GetIsolate(); | 
| + | 
| +  context->GetIsolate()->AddGCPrologueCallback(PrologueCallback); | 
| +  context->GetIsolate()->AddGCEpilogueCallback(EpilogueCallback); | 
| CHECK_EQ(0, prologue_call_count); | 
| CHECK_EQ(0, epilogue_call_count); | 
| CcTest::heap()->CollectAllGarbage(); | 
| CHECK_EQ(1, prologue_call_count); | 
| CHECK_EQ(1, epilogue_call_count); | 
| -  v8::V8::AddGCPrologueCallback(PrologueCallbackSecond); | 
| -  v8::V8::AddGCEpilogueCallback(EpilogueCallbackSecond); | 
| +  context->GetIsolate()->AddGCPrologueCallback(PrologueCallbackSecond); | 
| +  context->GetIsolate()->AddGCEpilogueCallback(EpilogueCallbackSecond); | 
| CcTest::heap()->CollectAllGarbage(); | 
| CHECK_EQ(2, prologue_call_count); | 
| CHECK_EQ(2, epilogue_call_count); | 
| CHECK_EQ(1, prologue_call_count_second); | 
| CHECK_EQ(1, epilogue_call_count_second); | 
| -  v8::V8::RemoveGCPrologueCallback(PrologueCallback); | 
| -  v8::V8::RemoveGCEpilogueCallback(EpilogueCallback); | 
| +  context->GetIsolate()->RemoveGCPrologueCallback(PrologueCallback); | 
| +  context->GetIsolate()->RemoveGCEpilogueCallback(EpilogueCallback); | 
| CcTest::heap()->CollectAllGarbage(); | 
| CHECK_EQ(2, prologue_call_count); | 
| CHECK_EQ(2, epilogue_call_count); | 
| CHECK_EQ(2, prologue_call_count_second); | 
| CHECK_EQ(2, epilogue_call_count_second); | 
| -  v8::V8::RemoveGCPrologueCallback(PrologueCallbackSecond); | 
| -  v8::V8::RemoveGCEpilogueCallback(EpilogueCallbackSecond); | 
| +  context->GetIsolate()->RemoveGCPrologueCallback(PrologueCallbackSecond); | 
| +  context->GetIsolate()->RemoveGCEpilogueCallback(EpilogueCallbackSecond); | 
| CcTest::heap()->CollectAllGarbage(); | 
| CHECK_EQ(2, prologue_call_count); | 
| CHECK_EQ(2, epilogue_call_count); | 
|  |