| Index: src/api.cc
|
| diff --git a/src/api.cc b/src/api.cc
|
| index 8d101631df9eddeb4bcdbfd7864087e99f97dee5..fc96f0e147522270238fa49378018c6b92cce64c 100644
|
| --- a/src/api.cc
|
| +++ b/src/api.cc
|
| @@ -1707,21 +1707,16 @@ Local<Value> Script::Run() {
|
| ENTER_V8(isolate);
|
| i::Logger::TimerEventScope timer_scope(
|
| isolate, i::Logger::TimerEventScope::v8_execute);
|
| - i::Object* raw_result = NULL;
|
| - {
|
| - i::HandleScope scope(isolate);
|
| - i::Handle<i::JSFunction> fun =
|
| - i::Handle<i::JSFunction>(i::JSFunction::cast(*obj), isolate);
|
| - EXCEPTION_PREAMBLE(isolate);
|
| - i::Handle<i::Object> receiver(
|
| - isolate->context()->global_proxy(), isolate);
|
| - i::Handle<i::Object> result = i::Execution::Call(
|
| - isolate, fun, receiver, 0, NULL, &has_pending_exception);
|
| - EXCEPTION_BAILOUT_CHECK_DO_CALLBACK(isolate, Local<Value>());
|
| - raw_result = *result;
|
| - }
|
| - i::Handle<i::Object> result(raw_result, isolate);
|
| - return Utils::ToLocal(result);
|
| + i::HandleScope scope(isolate);
|
| + i::Handle<i::JSFunction> fun = i::Handle<i::JSFunction>::cast(obj);
|
| + EXCEPTION_PREAMBLE(isolate);
|
| + i::Handle<i::Object> receiver(
|
| + isolate->context()->global_proxy(), isolate);
|
| + i::Handle<i::Object> result;
|
| + has_pending_exception = !i::Execution::Call(
|
| + isolate, fun, receiver, 0, NULL).ToHandle(&result);
|
| + EXCEPTION_BAILOUT_CHECK_DO_CALLBACK(isolate, Local<Value>());
|
| + return Utils::ToLocal(scope.CloseAndEscape(result));
|
| }
|
|
|
|
|
| @@ -2040,11 +2035,11 @@ v8::Handle<v8::StackTrace> Message::GetStackTrace() const {
|
| }
|
|
|
|
|
| -static i::Handle<i::Object> CallV8HeapFunction(const char* name,
|
| - i::Handle<i::Object> recv,
|
| - int argc,
|
| - i::Handle<i::Object> argv[],
|
| - bool* has_pending_exception) {
|
| +MUST_USE_RESULT static i::MaybeHandle<i::Object> CallV8HeapFunction(
|
| + const char* name,
|
| + i::Handle<i::Object> recv,
|
| + int argc,
|
| + i::Handle<i::Object> argv[]) {
|
| i::Isolate* isolate = i::Isolate::Current();
|
| i::Handle<i::String> fmt_str =
|
| isolate->factory()->InternalizeUtf8String(name);
|
| @@ -2052,21 +2047,18 @@ static i::Handle<i::Object> CallV8HeapFunction(const char* name,
|
| i::GlobalObject::GetPropertyNoExceptionThrown(
|
| isolate->js_builtins_object(), fmt_str);
|
| i::Handle<i::JSFunction> fun = i::Handle<i::JSFunction>::cast(object_fun);
|
| - i::Handle<i::Object> value = i::Execution::Call(
|
| - isolate, fun, recv, argc, argv, has_pending_exception);
|
| - return value;
|
| + return i::Execution::Call(isolate, fun, recv, argc, argv);
|
| }
|
|
|
|
|
| -static i::Handle<i::Object> CallV8HeapFunction(const char* name,
|
| - i::Handle<i::Object> data,
|
| - bool* has_pending_exception) {
|
| +MUST_USE_RESULT static i::MaybeHandle<i::Object> CallV8HeapFunction(
|
| + const char* name,
|
| + i::Handle<i::Object> data) {
|
| i::Handle<i::Object> argv[] = { data };
|
| return CallV8HeapFunction(name,
|
| i::Isolate::Current()->js_builtins_object(),
|
| ARRAY_SIZE(argv),
|
| - argv,
|
| - has_pending_exception);
|
| + argv);
|
| }
|
|
|
|
|
| @@ -2077,9 +2069,9 @@ int Message::GetLineNumber() const {
|
| i::HandleScope scope(isolate);
|
|
|
| EXCEPTION_PREAMBLE(isolate);
|
| - i::Handle<i::Object> result = CallV8HeapFunction("GetLineNumber",
|
| - Utils::OpenHandle(this),
|
| - &has_pending_exception);
|
| + i::Handle<i::Object> result;
|
| + has_pending_exception = !CallV8HeapFunction(
|
| + "GetLineNumber", Utils::OpenHandle(this)).ToHandle(&result);
|
| EXCEPTION_BAILOUT_CHECK(isolate, 0);
|
| return static_cast<int>(result->Number());
|
| }
|
| @@ -2111,10 +2103,9 @@ int Message::GetStartColumn() const {
|
| i::HandleScope scope(isolate);
|
| i::Handle<i::JSObject> data_obj = Utils::OpenHandle(this);
|
| EXCEPTION_PREAMBLE(isolate);
|
| - i::Handle<i::Object> start_col_obj = CallV8HeapFunction(
|
| - "GetPositionInLine",
|
| - data_obj,
|
| - &has_pending_exception);
|
| + i::Handle<i::Object> start_col_obj;
|
| + has_pending_exception = !CallV8HeapFunction(
|
| + "GetPositionInLine", data_obj).ToHandle(&start_col_obj);
|
| EXCEPTION_BAILOUT_CHECK(isolate, 0);
|
| return static_cast<int>(start_col_obj->Number());
|
| }
|
| @@ -2126,10 +2117,9 @@ int Message::GetEndColumn() const {
|
| i::HandleScope scope(isolate);
|
| i::Handle<i::JSObject> data_obj = Utils::OpenHandle(this);
|
| EXCEPTION_PREAMBLE(isolate);
|
| - i::Handle<i::Object> start_col_obj = CallV8HeapFunction(
|
| - "GetPositionInLine",
|
| - data_obj,
|
| - &has_pending_exception);
|
| + i::Handle<i::Object> start_col_obj;
|
| + has_pending_exception = !CallV8HeapFunction(
|
| + "GetPositionInLine", data_obj).ToHandle(&start_col_obj);
|
| EXCEPTION_BAILOUT_CHECK(isolate, 0);
|
| i::Handle<i::JSMessageObject> message =
|
| i::Handle<i::JSMessageObject>::cast(data_obj);
|
| @@ -2158,9 +2148,9 @@ Local<String> Message::GetSourceLine() const {
|
| ENTER_V8(isolate);
|
| EscapableHandleScope scope(reinterpret_cast<Isolate*>(isolate));
|
| EXCEPTION_PREAMBLE(isolate);
|
| - i::Handle<i::Object> result = CallV8HeapFunction("GetSourceLine",
|
| - Utils::OpenHandle(this),
|
| - &has_pending_exception);
|
| + i::Handle<i::Object> result;
|
| + has_pending_exception = !CallV8HeapFunction(
|
| + "GetSourceLine", Utils::OpenHandle(this)).ToHandle(&result);
|
| EXCEPTION_BAILOUT_CHECK(isolate, Local<v8::String>());
|
| if (result->IsString()) {
|
| return scope.Escape(Utils::ToLocal(i::Handle<i::String>::cast(result)));
|
| @@ -2557,7 +2547,8 @@ Local<String> Value::ToString() const {
|
| LOG_API(isolate, "ToString");
|
| ENTER_V8(isolate);
|
| EXCEPTION_PREAMBLE(isolate);
|
| - str = i::Execution::ToString(isolate, obj, &has_pending_exception);
|
| + has_pending_exception = !i::Execution::ToString(
|
| + isolate, obj).ToHandle(&str);
|
| EXCEPTION_BAILOUT_CHECK(isolate, Local<String>());
|
| }
|
| return ToApiHandle<String>(str);
|
| @@ -2574,7 +2565,8 @@ Local<String> Value::ToDetailString() const {
|
| LOG_API(isolate, "ToDetailString");
|
| ENTER_V8(isolate);
|
| EXCEPTION_PREAMBLE(isolate);
|
| - str = i::Execution::ToDetailString(isolate, obj, &has_pending_exception);
|
| + has_pending_exception = !i::Execution::ToDetailString(
|
| + isolate, obj).ToHandle(&str);
|
| EXCEPTION_BAILOUT_CHECK(isolate, Local<String>());
|
| }
|
| return ToApiHandle<String>(str);
|
| @@ -2591,7 +2583,8 @@ Local<v8::Object> Value::ToObject() const {
|
| LOG_API(isolate, "ToObject");
|
| ENTER_V8(isolate);
|
| EXCEPTION_PREAMBLE(isolate);
|
| - val = i::Execution::ToObject(isolate, obj, &has_pending_exception);
|
| + has_pending_exception = !i::Execution::ToObject(
|
| + isolate, obj).ToHandle(&val);
|
| EXCEPTION_BAILOUT_CHECK(isolate, Local<v8::Object>());
|
| }
|
| return ToApiHandle<Object>(val);
|
| @@ -2623,7 +2616,8 @@ Local<Number> Value::ToNumber() const {
|
| LOG_API(isolate, "ToNumber");
|
| ENTER_V8(isolate);
|
| EXCEPTION_PREAMBLE(isolate);
|
| - num = i::Execution::ToNumber(isolate, obj, &has_pending_exception);
|
| + has_pending_exception = !i::Execution::ToNumber(
|
| + isolate, obj).ToHandle(&num);
|
| EXCEPTION_BAILOUT_CHECK(isolate, Local<Number>());
|
| }
|
| return ToApiHandle<Number>(num);
|
| @@ -2640,7 +2634,8 @@ Local<Integer> Value::ToInteger() const {
|
| LOG_API(isolate, "ToInteger");
|
| ENTER_V8(isolate);
|
| EXCEPTION_PREAMBLE(isolate);
|
| - num = i::Execution::ToInteger(isolate, obj, &has_pending_exception);
|
| + has_pending_exception = !i::Execution::ToInteger(
|
| + isolate, obj).ToHandle(&num);
|
| EXCEPTION_BAILOUT_CHECK(isolate, Local<Integer>());
|
| }
|
| return ToApiHandle<Integer>(num);
|
| @@ -2850,7 +2845,8 @@ double Value::NumberValue() const {
|
| LOG_API(isolate, "NumberValue");
|
| ENTER_V8(isolate);
|
| EXCEPTION_PREAMBLE(isolate);
|
| - num = i::Execution::ToNumber(isolate, obj, &has_pending_exception);
|
| + has_pending_exception = !i::Execution::ToNumber(
|
| + isolate, obj).ToHandle(&num);
|
| EXCEPTION_BAILOUT_CHECK(isolate, i::OS::nan_value());
|
| }
|
| return num->Number();
|
| @@ -2867,7 +2863,8 @@ int64_t Value::IntegerValue() const {
|
| LOG_API(isolate, "IntegerValue");
|
| ENTER_V8(isolate);
|
| EXCEPTION_PREAMBLE(isolate);
|
| - num = i::Execution::ToInteger(isolate, obj, &has_pending_exception);
|
| + has_pending_exception = !i::Execution::ToInteger(
|
| + isolate, obj).ToHandle(&num);
|
| EXCEPTION_BAILOUT_CHECK(isolate, 0);
|
| }
|
| if (num->IsSmi()) {
|
| @@ -2888,7 +2885,7 @@ Local<Int32> Value::ToInt32() const {
|
| LOG_API(isolate, "ToInt32");
|
| ENTER_V8(isolate);
|
| EXCEPTION_PREAMBLE(isolate);
|
| - num = i::Execution::ToInt32(isolate, obj, &has_pending_exception);
|
| + has_pending_exception = !i::Execution::ToInt32(isolate, obj).ToHandle(&num);
|
| EXCEPTION_BAILOUT_CHECK(isolate, Local<Int32>());
|
| }
|
| return ToApiHandle<Int32>(num);
|
| @@ -2905,7 +2902,8 @@ Local<Uint32> Value::ToUint32() const {
|
| LOG_API(isolate, "ToUInt32");
|
| ENTER_V8(isolate);
|
| EXCEPTION_PREAMBLE(isolate);
|
| - num = i::Execution::ToUint32(isolate, obj, &has_pending_exception);
|
| + has_pending_exception = !i::Execution::ToUint32(
|
| + isolate, obj).ToHandle(&num);
|
| EXCEPTION_BAILOUT_CHECK(isolate, Local<Uint32>());
|
| }
|
| return ToApiHandle<Uint32>(num);
|
| @@ -2922,8 +2920,9 @@ Local<Uint32> Value::ToArrayIndex() const {
|
| LOG_API(isolate, "ToArrayIndex");
|
| ENTER_V8(isolate);
|
| EXCEPTION_PREAMBLE(isolate);
|
| - i::Handle<i::Object> string_obj =
|
| - i::Execution::ToString(isolate, obj, &has_pending_exception);
|
| + i::Handle<i::Object> string_obj;
|
| + has_pending_exception = !i::Execution::ToString(
|
| + isolate, obj).ToHandle(&string_obj);
|
| EXCEPTION_BAILOUT_CHECK(isolate, Local<Uint32>());
|
| i::Handle<i::String> str = i::Handle<i::String>::cast(string_obj);
|
| uint32_t index;
|
| @@ -2949,8 +2948,8 @@ int32_t Value::Int32Value() const {
|
| LOG_API(isolate, "Int32Value (slow)");
|
| ENTER_V8(isolate);
|
| EXCEPTION_PREAMBLE(isolate);
|
| - i::Handle<i::Object> num =
|
| - i::Execution::ToInt32(isolate, obj, &has_pending_exception);
|
| + i::Handle<i::Object> num;
|
| + has_pending_exception = !i::Execution::ToInt32(isolate, obj).ToHandle(&num);
|
| EXCEPTION_BAILOUT_CHECK(isolate, 0);
|
| if (num->IsSmi()) {
|
| return i::Smi::cast(*num)->value();
|
| @@ -2980,9 +2979,9 @@ bool Value::Equals(Handle<Value> that) const {
|
| }
|
| i::Handle<i::Object> args[] = { other };
|
| EXCEPTION_PREAMBLE(isolate);
|
| - i::Handle<i::Object> result =
|
| - CallV8HeapFunction("EQUALS", obj, ARRAY_SIZE(args), args,
|
| - &has_pending_exception);
|
| + i::Handle<i::Object> result;
|
| + has_pending_exception = !CallV8HeapFunction(
|
| + "EQUALS", obj, ARRAY_SIZE(args), args).ToHandle(&result);
|
| EXCEPTION_BAILOUT_CHECK(isolate, false);
|
| return *result == i::Smi::FromInt(i::EQUAL);
|
| }
|
| @@ -3043,8 +3042,9 @@ uint32_t Value::Uint32Value() const {
|
| LOG_API(isolate, "Uint32Value");
|
| ENTER_V8(isolate);
|
| EXCEPTION_PREAMBLE(isolate);
|
| - i::Handle<i::Object> num =
|
| - i::Execution::ToUint32(isolate, obj, &has_pending_exception);
|
| + i::Handle<i::Object> num;
|
| + has_pending_exception = !i::Execution::ToUint32(
|
| + isolate, obj).ToHandle(&num);
|
| EXCEPTION_BAILOUT_CHECK(isolate, 0);
|
| if (num->IsSmi()) {
|
| return i::Smi::cast(*num)->value();
|
| @@ -3188,7 +3188,8 @@ PropertyAttribute v8::Object::GetPropertyAttributes(v8::Handle<Value> key) {
|
| i::Handle<i::Object> key_obj = Utils::OpenHandle(*key);
|
| if (!key_obj->IsName()) {
|
| EXCEPTION_PREAMBLE(isolate);
|
| - key_obj = i::Execution::ToString(isolate, key_obj, &has_pending_exception);
|
| + has_pending_exception = !i::Execution::ToString(
|
| + isolate, key_obj).ToHandle(&key_obj);
|
| EXCEPTION_BAILOUT_CHECK(isolate, static_cast<PropertyAttribute>(NONE));
|
| }
|
| i::Handle<i::Name> key_name = i::Handle<i::Name>::cast(key_obj);
|
| @@ -3918,15 +3919,17 @@ Local<v8::Value> Object::CallAsFunction(v8::Handle<v8::Value> recv,
|
| fun = i::Handle<i::JSFunction>::cast(obj);
|
| } else {
|
| EXCEPTION_PREAMBLE(isolate);
|
| - i::Handle<i::Object> delegate = i::Execution::TryGetFunctionDelegate(
|
| - isolate, obj, &has_pending_exception);
|
| + i::Handle<i::Object> delegate;
|
| + has_pending_exception = !i::Execution::TryGetFunctionDelegate(
|
| + isolate, obj).ToHandle(&delegate);
|
| EXCEPTION_BAILOUT_CHECK(isolate, Local<Value>());
|
| fun = i::Handle<i::JSFunction>::cast(delegate);
|
| recv_obj = obj;
|
| }
|
| EXCEPTION_PREAMBLE(isolate);
|
| - i::Handle<i::Object> returned = i::Execution::Call(
|
| - isolate, fun, recv_obj, argc, args, &has_pending_exception, true);
|
| + i::Handle<i::Object> returned;
|
| + has_pending_exception = !i::Execution::Call(
|
| + isolate, fun, recv_obj, argc, args, true).ToHandle(&returned);
|
| EXCEPTION_BAILOUT_CHECK_DO_CALLBACK(isolate, Local<Value>());
|
| return Utils::ToLocal(scope.CloseAndEscape(returned));
|
| }
|
| @@ -3948,21 +3951,24 @@ Local<v8::Value> Object::CallAsConstructor(int argc,
|
| if (obj->IsJSFunction()) {
|
| i::Handle<i::JSFunction> fun = i::Handle<i::JSFunction>::cast(obj);
|
| EXCEPTION_PREAMBLE(isolate);
|
| - i::Handle<i::Object> returned =
|
| - i::Execution::New(fun, argc, args, &has_pending_exception);
|
| + i::Handle<i::Object> returned;
|
| + has_pending_exception = !i::Execution::New(
|
| + fun, argc, args).ToHandle(&returned);
|
| EXCEPTION_BAILOUT_CHECK_DO_CALLBACK(isolate, Local<v8::Object>());
|
| return Utils::ToLocal(scope.CloseAndEscape(
|
| i::Handle<i::JSObject>::cast(returned)));
|
| }
|
| EXCEPTION_PREAMBLE(isolate);
|
| - i::Handle<i::Object> delegate = i::Execution::TryGetConstructorDelegate(
|
| - isolate, obj, &has_pending_exception);
|
| + i::Handle<i::Object> delegate;
|
| + has_pending_exception = !i::Execution::TryGetConstructorDelegate(
|
| + isolate, obj).ToHandle(&delegate);
|
| EXCEPTION_BAILOUT_CHECK(isolate, Local<v8::Object>());
|
| if (!delegate->IsUndefined()) {
|
| i::Handle<i::JSFunction> fun = i::Handle<i::JSFunction>::cast(delegate);
|
| EXCEPTION_PREAMBLE(isolate);
|
| - i::Handle<i::Object> returned = i::Execution::Call(
|
| - isolate, fun, obj, argc, args, &has_pending_exception);
|
| + i::Handle<i::Object> returned;
|
| + has_pending_exception = !i::Execution::Call(
|
| + isolate, fun, obj, argc, args).ToHandle(&returned);
|
| EXCEPTION_BAILOUT_CHECK_DO_CALLBACK(isolate, Local<v8::Object>());
|
| ASSERT(!delegate->IsUndefined());
|
| return Utils::ToLocal(scope.CloseAndEscape(returned));
|
| @@ -4003,8 +4009,9 @@ Local<v8::Object> Function::NewInstance(int argc,
|
| STATIC_ASSERT(sizeof(v8::Handle<v8::Value>) == sizeof(i::Object**));
|
| i::Handle<i::Object>* args = reinterpret_cast<i::Handle<i::Object>*>(argv);
|
| EXCEPTION_PREAMBLE(isolate);
|
| - i::Handle<i::Object> returned =
|
| - i::Execution::New(function, argc, args, &has_pending_exception);
|
| + i::Handle<i::Object> returned;
|
| + has_pending_exception = !i::Execution::New(
|
| + function, argc, args).ToHandle(&returned);
|
| EXCEPTION_BAILOUT_CHECK_DO_CALLBACK(isolate, Local<v8::Object>());
|
| return scope.Escape(Utils::ToLocal(i::Handle<i::JSObject>::cast(returned)));
|
| }
|
| @@ -4018,21 +4025,17 @@ Local<v8::Value> Function::Call(v8::Handle<v8::Value> recv, int argc,
|
| ENTER_V8(isolate);
|
| i::Logger::TimerEventScope timer_scope(
|
| isolate, i::Logger::TimerEventScope::v8_execute);
|
| - i::Object* raw_result = NULL;
|
| - {
|
| - i::HandleScope scope(isolate);
|
| - i::Handle<i::JSFunction> fun = Utils::OpenHandle(this);
|
| - i::Handle<i::Object> recv_obj = Utils::OpenHandle(*recv);
|
| - STATIC_ASSERT(sizeof(v8::Handle<v8::Value>) == sizeof(i::Object**));
|
| - i::Handle<i::Object>* args = reinterpret_cast<i::Handle<i::Object>*>(argv);
|
| - EXCEPTION_PREAMBLE(isolate);
|
| - i::Handle<i::Object> returned = i::Execution::Call(
|
| - isolate, fun, recv_obj, argc, args, &has_pending_exception, true);
|
| - EXCEPTION_BAILOUT_CHECK_DO_CALLBACK(isolate, Local<Object>());
|
| - raw_result = *returned;
|
| - }
|
| - i::Handle<i::Object> result(raw_result, isolate);
|
| - return Utils::ToLocal(result);
|
| + i::HandleScope scope(isolate);
|
| + i::Handle<i::JSFunction> fun = Utils::OpenHandle(this);
|
| + i::Handle<i::Object> recv_obj = Utils::OpenHandle(*recv);
|
| + STATIC_ASSERT(sizeof(v8::Handle<v8::Value>) == sizeof(i::Object**));
|
| + i::Handle<i::Object>* args = reinterpret_cast<i::Handle<i::Object>*>(argv);
|
| + EXCEPTION_PREAMBLE(isolate);
|
| + i::Handle<i::Object> returned;
|
| + has_pending_exception = !i::Execution::Call(
|
| + isolate, fun, recv_obj, argc, args, true).ToHandle(&returned);
|
| + EXCEPTION_BAILOUT_CHECK_DO_CALLBACK(isolate, Local<Object>());
|
| + return Utils::ToLocal(scope.CloseAndEscape(returned));
|
| }
|
|
|
|
|
| @@ -5305,9 +5308,9 @@ Local<v8::Object> ObjectTemplate::NewInstance() {
|
| LOG_API(isolate, "ObjectTemplate::NewInstance");
|
| ENTER_V8(isolate);
|
| EXCEPTION_PREAMBLE(isolate);
|
| - i::Handle<i::Object> obj =
|
| - i::Execution::InstantiateObject(Utils::OpenHandle(this),
|
| - &has_pending_exception);
|
| + i::Handle<i::Object> obj;
|
| + has_pending_exception = !i::Execution::InstantiateObject(
|
| + Utils::OpenHandle(this)).ToHandle(&obj);
|
| EXCEPTION_BAILOUT_CHECK(isolate, Local<v8::Object>());
|
| return Utils::ToLocal(i::Handle<i::JSObject>::cast(obj));
|
| }
|
| @@ -5320,9 +5323,9 @@ Local<v8::Function> FunctionTemplate::GetFunction() {
|
| LOG_API(isolate, "FunctionTemplate::GetFunction");
|
| ENTER_V8(isolate);
|
| EXCEPTION_PREAMBLE(isolate);
|
| - i::Handle<i::Object> obj =
|
| - i::Execution::InstantiateFunction(Utils::OpenHandle(this),
|
| - &has_pending_exception);
|
| + i::Handle<i::Object> obj;
|
| + has_pending_exception = !i::Execution::InstantiateFunction(
|
| + Utils::OpenHandle(this)).ToHandle(&obj);
|
| EXCEPTION_BAILOUT_CHECK(isolate, Local<v8::Function>());
|
| return Utils::ToLocal(i::Handle<i::JSFunction>::cast(obj));
|
| }
|
| @@ -5704,8 +5707,9 @@ Local<v8::Value> v8::Date::New(Isolate* isolate, double time) {
|
| }
|
| ENTER_V8(i_isolate);
|
| EXCEPTION_PREAMBLE(i_isolate);
|
| - i::Handle<i::Object> obj =
|
| - i::Execution::NewDate(i_isolate, time, &has_pending_exception);
|
| + i::Handle<i::Object> obj;
|
| + has_pending_exception = !i::Execution::NewDate(
|
| + i_isolate, time).ToHandle(&obj);
|
| EXCEPTION_BAILOUT_CHECK(i_isolate, Local<v8::Value>());
|
| return Utils::ToLocal(obj);
|
| }
|
| @@ -5765,10 +5769,10 @@ Local<v8::RegExp> v8::RegExp::New(Handle<String> pattern,
|
| LOG_API(isolate, "RegExp::New");
|
| ENTER_V8(isolate);
|
| EXCEPTION_PREAMBLE(isolate);
|
| - i::Handle<i::JSRegExp> obj = i::Execution::NewJSRegExp(
|
| + i::Handle<i::JSRegExp> obj;
|
| + has_pending_exception = !i::Execution::NewJSRegExp(
|
| Utils::OpenHandle(*pattern),
|
| - RegExpFlagsToString(flags),
|
| - &has_pending_exception);
|
| + RegExpFlagsToString(flags)).ToHandle(&obj);
|
| EXCEPTION_BAILOUT_CHECK(isolate, Local<v8::RegExp>());
|
| return Utils::ToLocal(i::Handle<i::JSRegExp>::cast(obj));
|
| }
|
| @@ -5852,14 +5856,14 @@ bool Value::IsPromise() const {
|
| ENTER_V8(isolate);
|
| EXCEPTION_PREAMBLE(isolate);
|
| i::Handle<i::Object> argv[] = { obj };
|
| - i::Handle<i::Object> b = i::Execution::Call(
|
| + i::Handle<i::Object> b;
|
| + has_pending_exception = !i::Execution::Call(
|
| isolate,
|
| handle(
|
| isolate->context()->global_object()->native_context()->is_promise()),
|
| isolate->factory()->undefined_value(),
|
| ARRAY_SIZE(argv), argv,
|
| - &has_pending_exception,
|
| - false);
|
| + false).ToHandle(&b);
|
| EXCEPTION_BAILOUT_CHECK(isolate, false);
|
| return b->BooleanValue();
|
| }
|
| @@ -5870,14 +5874,14 @@ Local<Promise::Resolver> Promise::Resolver::New(Isolate* v8_isolate) {
|
| LOG_API(isolate, "Promise::Resolver::New");
|
| ENTER_V8(isolate);
|
| EXCEPTION_PREAMBLE(isolate);
|
| - i::Handle<i::Object> result = i::Execution::Call(
|
| + i::Handle<i::Object> result;
|
| + has_pending_exception = !i::Execution::Call(
|
| isolate,
|
| handle(isolate->context()->global_object()->native_context()->
|
| promise_create()),
|
| isolate->factory()->undefined_value(),
|
| 0, NULL,
|
| - &has_pending_exception,
|
| - false);
|
| + false).ToHandle(&result);
|
| EXCEPTION_BAILOUT_CHECK(isolate, Local<Promise::Resolver>());
|
| return Local<Promise::Resolver>::Cast(Utils::ToLocal(result));
|
| }
|
| @@ -5896,14 +5900,13 @@ void Promise::Resolver::Resolve(Handle<Value> value) {
|
| ENTER_V8(isolate);
|
| EXCEPTION_PREAMBLE(isolate);
|
| i::Handle<i::Object> argv[] = { promise, Utils::OpenHandle(*value) };
|
| - i::Execution::Call(
|
| + has_pending_exception = i::Execution::Call(
|
| isolate,
|
| handle(isolate->context()->global_object()->native_context()->
|
| promise_resolve()),
|
| isolate->factory()->undefined_value(),
|
| ARRAY_SIZE(argv), argv,
|
| - &has_pending_exception,
|
| - false);
|
| + false).is_null();
|
| EXCEPTION_BAILOUT_CHECK(isolate, /* void */ ;);
|
| }
|
|
|
| @@ -5915,14 +5918,13 @@ void Promise::Resolver::Reject(Handle<Value> value) {
|
| ENTER_V8(isolate);
|
| EXCEPTION_PREAMBLE(isolate);
|
| i::Handle<i::Object> argv[] = { promise, Utils::OpenHandle(*value) };
|
| - i::Execution::Call(
|
| + has_pending_exception = i::Execution::Call(
|
| isolate,
|
| handle(isolate->context()->global_object()->native_context()->
|
| promise_reject()),
|
| isolate->factory()->undefined_value(),
|
| ARRAY_SIZE(argv), argv,
|
| - &has_pending_exception,
|
| - false);
|
| + false).is_null();
|
| EXCEPTION_BAILOUT_CHECK(isolate, /* void */ ;);
|
| }
|
|
|
| @@ -5934,14 +5936,14 @@ Local<Promise> Promise::Chain(Handle<Function> handler) {
|
| ENTER_V8(isolate);
|
| EXCEPTION_PREAMBLE(isolate);
|
| i::Handle<i::Object> argv[] = { Utils::OpenHandle(*handler) };
|
| - i::Handle<i::Object> result = i::Execution::Call(
|
| + i::Handle<i::Object> result;
|
| + has_pending_exception = !i::Execution::Call(
|
| isolate,
|
| handle(isolate->context()->global_object()->native_context()->
|
| promise_chain()),
|
| promise,
|
| ARRAY_SIZE(argv), argv,
|
| - &has_pending_exception,
|
| - false);
|
| + false).ToHandle(&result);
|
| EXCEPTION_BAILOUT_CHECK(isolate, Local<Promise>());
|
| return Local<Promise>::Cast(Utils::ToLocal(result));
|
| }
|
| @@ -5954,14 +5956,14 @@ Local<Promise> Promise::Catch(Handle<Function> handler) {
|
| ENTER_V8(isolate);
|
| EXCEPTION_PREAMBLE(isolate);
|
| i::Handle<i::Object> argv[] = { Utils::OpenHandle(*handler) };
|
| - i::Handle<i::Object> result = i::Execution::Call(
|
| + i::Handle<i::Object> result;
|
| + has_pending_exception = !i::Execution::Call(
|
| isolate,
|
| handle(isolate->context()->global_object()->native_context()->
|
| promise_catch()),
|
| promise,
|
| ARRAY_SIZE(argv), argv,
|
| - &has_pending_exception,
|
| - false);
|
| + false).ToHandle(&result);
|
| EXCEPTION_BAILOUT_CHECK(isolate, Local<Promise>());
|
| return Local<Promise>::Cast(Utils::ToLocal(result));
|
| }
|
| @@ -6970,17 +6972,17 @@ Local<Value> Debug::Call(v8::Handle<v8::Function> fun,
|
| if (!isolate->IsInitialized()) return Local<Value>();
|
| ON_BAILOUT(isolate, "v8::Debug::Call()", return Local<Value>());
|
| ENTER_V8(isolate);
|
| - i::Handle<i::Object> result;
|
| + i::MaybeHandle<i::Object> maybe_result;
|
| EXCEPTION_PREAMBLE(isolate);
|
| if (data.IsEmpty()) {
|
| - result = isolate->debugger()->Call(Utils::OpenHandle(*fun),
|
| - isolate->factory()->undefined_value(),
|
| - &has_pending_exception);
|
| + maybe_result = isolate->debugger()->Call(
|
| + Utils::OpenHandle(*fun), isolate->factory()->undefined_value());
|
| } else {
|
| - result = isolate->debugger()->Call(Utils::OpenHandle(*fun),
|
| - Utils::OpenHandle(*data),
|
| - &has_pending_exception);
|
| + maybe_result = isolate->debugger()->Call(
|
| + Utils::OpenHandle(*fun), Utils::OpenHandle(*data));
|
| }
|
| + i::Handle<i::Object> result;
|
| + has_pending_exception = !maybe_result.ToHandle(&result);
|
| EXCEPTION_BAILOUT_CHECK(isolate, Local<Value>());
|
| return Utils::ToLocal(result);
|
| }
|
|
|