| Index: src/api.cc | 
| diff --git a/src/api.cc b/src/api.cc | 
| index 61e565f97b7a5dfd2aa910ebfe9398cd752b6b22..4ab786dd0c1d86d7dc54b962f976a442a4d3b009 100644 | 
| --- a/src/api.cc | 
| +++ b/src/api.cc | 
| @@ -1943,15 +1943,17 @@ v8::Local<Value> v8::TryCatch::StackTrace() const { | 
| i::HandleScope scope(isolate_); | 
| i::Handle<i::JSObject> obj(i::JSObject::cast(raw_obj), isolate_); | 
| i::Handle<i::String> name = isolate_->factory()->stack_string(); | 
| +    { | 
| +      EXCEPTION_PREAMBLE(isolate_); | 
| +      Maybe<bool> maybe = i::JSReceiver::HasProperty(obj, name); | 
| +      has_pending_exception = !maybe.has_value; | 
| +      EXCEPTION_BAILOUT_CHECK(isolate_, v8::Local<Value>()); | 
| +      if (!maybe.value) return v8::Local<Value>(); | 
| +    } | 
| +    i::Handle<i::Object> value; | 
| EXCEPTION_PREAMBLE(isolate_); | 
| -    Maybe<bool> maybe = i::JSReceiver::HasProperty(obj, name); | 
| -    has_pending_exception = !maybe.has_value; | 
| +    has_pending_exception = !i::Object::GetProperty(obj, name).ToHandle(&value); | 
| EXCEPTION_BAILOUT_CHECK(isolate_, v8::Local<Value>()); | 
| -    if (!maybe.value) return v8::Local<Value>(); | 
| -    i::Handle<i::Object> value; | 
| -    if (!i::Object::GetProperty(obj, name).ToHandle(&value)) { | 
| -      return v8::Local<Value>(); | 
| -    } | 
| return v8::Utils::ToLocal(scope.CloseAndEscape(value)); | 
| } else { | 
| return v8::Local<Value>(); | 
|  |