Index: src/factory.cc |
diff --git a/src/factory.cc b/src/factory.cc |
index 053f8704e61f73457f6b45b0dc26aee792c3dbc2..bb1f252434dcfa454b7c3d178bc64e07ad888c5f 100644 |
--- a/src/factory.cc |
+++ b/src/factory.cc |
@@ -1158,12 +1158,16 @@ Handle<Object> Factory::NewError(const char* maker, |
// Invoke the JavaScript factory method. If an exception is thrown while |
// running the factory method, use the exception as the result. |
- bool caught_exception; |
- Handle<Object> result = Execution::TryCall(fun, |
- isolate()->js_builtins_object(), |
- ARRAY_SIZE(argv), |
- argv, |
- &caught_exception); |
+ Handle<Object> result; |
+ Handle<Object> exception; |
+ ASSIGN_RETURN_ON_EXCEPTION_VALUE( |
+ isolate, result, |
+ Execution::TryCall(fun, |
+ isolate()->js_builtins_object(), |
+ ARRAY_SIZE(argv), |
+ argv, |
+ &exception), |
+ exception); |
return result; |
} |
@@ -1183,12 +1187,16 @@ Handle<Object> Factory::NewError(const char* constructor, |
// Invoke the JavaScript factory method. If an exception is thrown while |
// running the factory method, use the exception as the result. |
- bool caught_exception; |
- Handle<Object> result = Execution::TryCall(fun, |
- isolate()->js_builtins_object(), |
- ARRAY_SIZE(argv), |
- argv, |
- &caught_exception); |
+ Handle<Object> result; |
+ Handle<Object> exception; |
+ ASSIGN_RETURN_ON_EXCEPTION_VALUE( |
+ isolate, result, |
+ Execution::TryCall(fun, |
+ isolate()->js_builtins_object(), |
+ ARRAY_SIZE(argv), |
+ argv, |
+ &exception), |
+ exception); |
return result; |
} |
@@ -1991,20 +1999,18 @@ void Factory::SetRegExpIrregexpData(Handle<JSRegExp> regexp, |
-void Factory::ConfigureInstance(Handle<FunctionTemplateInfo> desc, |
- Handle<JSObject> instance, |
- bool* pending_exception) { |
+MaybeHandle<FunctionTemplateInfo> Factory::ConfigureInstance( |
+ Handle<FunctionTemplateInfo> desc, Handle<JSObject> instance) { |
// Configure the instance by adding the properties specified by the |
// instance template. |
Handle<Object> instance_template(desc->instance_template(), isolate()); |
if (!instance_template->IsUndefined()) { |
- Execution::ConfigureInstance(isolate(), |
- instance, |
- instance_template, |
- pending_exception); |
- } else { |
- *pending_exception = false; |
+ RETURN_ON_EXCEPTION( |
+ isolate(), |
+ Execution::ConfigureInstance(isolate(), instance, instance_template), |
+ FunctionTemplateInfo); |
} |
+ return desc; |
} |