| Index: src/api.cc | 
| diff --git a/src/api.cc b/src/api.cc | 
| index 6eb37893bf2d3bbfd3109cd6f4783dd2e52b6988..017652a0ac26f9656eeabe9f8419e5be205818a4 100644 | 
| --- a/src/api.cc | 
| +++ b/src/api.cc | 
| @@ -473,16 +473,7 @@ void V8::SetFlagsFromCommandLine(int* argc, char** argv, bool remove_flags) { | 
|  | 
|  | 
| v8::Handle<Value> ThrowException(v8::Handle<v8::Value> value) { | 
| -  i::Isolate* isolate = i::Isolate::Current(); | 
| -  ENTER_V8(isolate); | 
| -  // If we're passed an empty handle, we throw an undefined exception | 
| -  // to deal more gracefully with out of memory situations. | 
| -  if (value.IsEmpty()) { | 
| -    isolate->ScheduleThrow(isolate->heap()->undefined_value()); | 
| -  } else { | 
| -    isolate->ScheduleThrow(*Utils::OpenHandle(*value)); | 
| -  } | 
| -  return v8::Undefined(); | 
| +  return v8::Isolate::GetCurrent()->ThrowException(value); | 
| } | 
|  | 
|  | 
| @@ -1926,7 +1917,7 @@ v8::TryCatch::~TryCatch() { | 
| isolate_->RestorePendingMessageFromTryCatch(this); | 
| } | 
| isolate_->UnregisterTryCatchHandler(this); | 
| -    v8::ThrowException(exc); | 
| +    reinterpret_cast<Isolate*>(isolate_)->ThrowException(exc); | 
| ASSERT(!isolate_->thread_local_top()->rethrowing_message_); | 
| } else { | 
| isolate_->UnregisterTryCatchHandler(this); | 
| @@ -6361,6 +6352,20 @@ v8::Local<v8::Context> Isolate::GetEnteredContext() { | 
| } | 
|  | 
|  | 
| +v8::Local<Value> Isolate::ThrowException(v8::Local<v8::Value> value) { | 
| +  i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this); | 
| +  ENTER_V8(isolate); | 
| +  // If we're passed an empty handle, we throw an undefined exception | 
| +  // to deal more gracefully with out of memory situations. | 
| +  if (value.IsEmpty()) { | 
| +    isolate->ScheduleThrow(isolate->heap()->undefined_value()); | 
| +  } else { | 
| +    isolate->ScheduleThrow(*Utils::OpenHandle(*value)); | 
| +  } | 
| +  return v8::Undefined(); | 
| +} | 
| + | 
| + | 
| void Isolate::SetObjectGroupId(const Persistent<Value>& object, | 
| UniqueId id) { | 
| i::Isolate* internal_isolate = reinterpret_cast<i::Isolate*>(this); | 
|  |