Index: src/runtime.cc |
diff --git a/src/runtime.cc b/src/runtime.cc |
index c69882f5a36b2de7a517bfd0a79cd12eb16296fd..40468c255ff74f2c11eb2f62aeadb1620207e221 100644 |
--- a/src/runtime.cc |
+++ b/src/runtime.cc |
@@ -849,15 +849,15 @@ RUNTIME_FUNCTION(Runtime_ArrayBufferInitialize) { |
} |
size_t allocated_length = 0; |
if (!TryNumberToSize(isolate, *byteLength, &allocated_length)) { |
- return isolate->Throw( |
- *isolate->factory()->NewRangeError("invalid_array_buffer_length", |
- HandleVector<Object>(NULL, 0))); |
+ THROW_NEW_ERROR_RETURN_FAILURE( |
+ isolate, NewRangeError("invalid_array_buffer_length", |
+ HandleVector<Object>(NULL, 0))); |
} |
if (!Runtime::SetupArrayBufferAllocatingData(isolate, |
holder, allocated_length)) { |
- return isolate->Throw( |
- *isolate->factory()->NewRangeError("invalid_array_buffer_length", |
- HandleVector<Object>(NULL, 0))); |
+ THROW_NEW_ERROR_RETURN_FAILURE( |
+ isolate, NewRangeError("invalid_array_buffer_length", |
+ HandleVector<Object>(NULL, 0))); |
} |
return *holder; |
} |
@@ -987,9 +987,9 @@ RUNTIME_FUNCTION(Runtime_TypedArrayInitialize) { |
size_t length = byte_length / element_size; |
if (length > static_cast<unsigned>(Smi::kMaxValue)) { |
- return isolate->Throw( |
- *isolate->factory()->NewRangeError("invalid_typed_array_length", |
- HandleVector<Object>(NULL, 0))); |
+ THROW_NEW_ERROR_RETURN_FAILURE( |
+ isolate, NewRangeError("invalid_typed_array_length", |
+ HandleVector<Object>(NULL, 0))); |
} |
// All checks are done, now we can modify objects. |
@@ -1069,9 +1069,9 @@ RUNTIME_FUNCTION(Runtime_TypedArrayInitializeFromArrayLike) { |
if ((length > static_cast<unsigned>(Smi::kMaxValue)) || |
(length > (kMaxInt / element_size))) { |
- return isolate->Throw(*isolate->factory()-> |
- NewRangeError("invalid_typed_array_length", |
- HandleVector<Object>(NULL, 0))); |
+ THROW_NEW_ERROR_RETURN_FAILURE( |
+ isolate, NewRangeError("invalid_typed_array_length", |
+ HandleVector<Object>(NULL, 0))); |
} |
size_t byte_length = length * element_size; |
@@ -1099,9 +1099,9 @@ RUNTIME_FUNCTION(Runtime_TypedArrayInitializeFromArrayLike) { |
if (!Runtime::SetupArrayBufferAllocatingData( |
isolate, buffer, byte_length, false)) { |
- return isolate->Throw(*isolate->factory()-> |
- NewRangeError("invalid_array_buffer_length", |
- HandleVector<Object>(NULL, 0))); |
+ THROW_NEW_ERROR_RETURN_FAILURE( |
+ isolate, NewRangeError("invalid_array_buffer_length", |
+ HandleVector<Object>(NULL, 0))); |
} |
holder->set_buffer(*buffer); |
@@ -1183,9 +1183,11 @@ enum TypedArraySetResultCodes { |
RUNTIME_FUNCTION(Runtime_TypedArraySetFastCases) { |
HandleScope scope(isolate); |
DCHECK(args.length() == 3); |
- if (!args[0]->IsJSTypedArray()) |
- return isolate->Throw(*isolate->factory()->NewTypeError( |
- "not_typed_array", HandleVector<Object>(NULL, 0))); |
+ if (!args[0]->IsJSTypedArray()) { |
+ THROW_NEW_ERROR_RETURN_FAILURE( |
+ isolate, |
+ NewTypeError("not_typed_array", HandleVector<Object>(NULL, 0))); |
+ } |
if (!args[1]->IsJSTypedArray()) |
return Smi::FromInt(TYPED_ARRAY_SET_NON_TYPED_ARRAY); |
@@ -1202,11 +1204,12 @@ RUNTIME_FUNCTION(Runtime_TypedArraySetFastCases) { |
size_t source_length = NumberToSize(isolate, source->length()); |
size_t target_byte_length = NumberToSize(isolate, target->byte_length()); |
size_t source_byte_length = NumberToSize(isolate, source->byte_length()); |
- if (offset > target_length || |
- offset + source_length > target_length || |
- offset + source_length < offset) // overflow |
- return isolate->Throw(*isolate->factory()->NewRangeError( |
- "typed_array_set_source_too_large", HandleVector<Object>(NULL, 0))); |
+ if (offset > target_length || offset + source_length > target_length || |
+ offset + source_length < offset) { // overflow |
+ THROW_NEW_ERROR_RETURN_FAILURE( |
+ isolate, NewRangeError("typed_array_set_source_too_large", |
+ HandleVector<Object>(NULL, 0))); |
+ } |
size_t target_offset = NumberToSize(isolate, target->byte_offset()); |
size_t source_offset = NumberToSize(isolate, source->byte_offset()); |
@@ -1401,22 +1404,22 @@ static bool DataViewSetValue( |
} |
-#define DATA_VIEW_GETTER(TypeName, Type, Converter) \ |
- RUNTIME_FUNCTION(Runtime_DataViewGet##TypeName) { \ |
- HandleScope scope(isolate); \ |
- DCHECK(args.length() == 3); \ |
- CONVERT_ARG_HANDLE_CHECKED(JSDataView, holder, 0); \ |
- CONVERT_NUMBER_ARG_HANDLE_CHECKED(offset, 1); \ |
- CONVERT_BOOLEAN_ARG_CHECKED(is_little_endian, 2); \ |
- Type result; \ |
- if (DataViewGetValue( \ |
- isolate, holder, offset, is_little_endian, &result)) { \ |
- return *isolate->factory()->Converter(result); \ |
- } else { \ |
- return isolate->Throw(*isolate->factory()->NewRangeError( \ |
- "invalid_data_view_accessor_offset", \ |
- HandleVector<Object>(NULL, 0))); \ |
- } \ |
+#define DATA_VIEW_GETTER(TypeName, Type, Converter) \ |
+ RUNTIME_FUNCTION(Runtime_DataViewGet##TypeName) { \ |
+ HandleScope scope(isolate); \ |
+ DCHECK(args.length() == 3); \ |
+ CONVERT_ARG_HANDLE_CHECKED(JSDataView, holder, 0); \ |
+ CONVERT_NUMBER_ARG_HANDLE_CHECKED(offset, 1); \ |
+ CONVERT_BOOLEAN_ARG_CHECKED(is_little_endian, 2); \ |
+ Type result; \ |
+ if (DataViewGetValue(isolate, holder, offset, is_little_endian, \ |
+ &result)) { \ |
+ return *isolate->factory()->Converter(result); \ |
+ } else { \ |
+ THROW_NEW_ERROR_RETURN_FAILURE( \ |
+ isolate, NewRangeError("invalid_data_view_accessor_offset", \ |
+ HandleVector<Object>(NULL, 0))); \ |
+ } \ |
} |
DATA_VIEW_GETTER(Uint8, uint8_t, NewNumberFromUint) |
@@ -1483,23 +1486,22 @@ double DataViewConvertValue<double>(double value) { |
} |
-#define DATA_VIEW_SETTER(TypeName, Type) \ |
- RUNTIME_FUNCTION(Runtime_DataViewSet##TypeName) { \ |
- HandleScope scope(isolate); \ |
- DCHECK(args.length() == 4); \ |
- CONVERT_ARG_HANDLE_CHECKED(JSDataView, holder, 0); \ |
- CONVERT_NUMBER_ARG_HANDLE_CHECKED(offset, 1); \ |
- CONVERT_NUMBER_ARG_HANDLE_CHECKED(value, 2); \ |
- CONVERT_BOOLEAN_ARG_CHECKED(is_little_endian, 3); \ |
- Type v = DataViewConvertValue<Type>(value->Number()); \ |
- if (DataViewSetValue( \ |
- isolate, holder, offset, is_little_endian, v)) { \ |
- return isolate->heap()->undefined_value(); \ |
- } else { \ |
- return isolate->Throw(*isolate->factory()->NewRangeError( \ |
- "invalid_data_view_accessor_offset", \ |
- HandleVector<Object>(NULL, 0))); \ |
- } \ |
+#define DATA_VIEW_SETTER(TypeName, Type) \ |
+ RUNTIME_FUNCTION(Runtime_DataViewSet##TypeName) { \ |
+ HandleScope scope(isolate); \ |
+ DCHECK(args.length() == 4); \ |
+ CONVERT_ARG_HANDLE_CHECKED(JSDataView, holder, 0); \ |
+ CONVERT_NUMBER_ARG_HANDLE_CHECKED(offset, 1); \ |
+ CONVERT_NUMBER_ARG_HANDLE_CHECKED(value, 2); \ |
+ CONVERT_BOOLEAN_ARG_CHECKED(is_little_endian, 3); \ |
+ Type v = DataViewConvertValue<Type>(value->Number()); \ |
+ if (DataViewSetValue(isolate, holder, offset, is_little_endian, v)) { \ |
+ return isolate->heap()->undefined_value(); \ |
+ } else { \ |
+ THROW_NEW_ERROR_RETURN_FAILURE( \ |
+ isolate, NewRangeError("invalid_data_view_accessor_offset", \ |
+ HandleVector<Object>(NULL, 0))); \ |
+ } \ |
} |
DATA_VIEW_SETTER(Uint8, uint8_t) |
@@ -2167,9 +2169,8 @@ RUNTIME_FUNCTION(Runtime_EnableAccessChecks) { |
static Object* ThrowRedeclarationError(Isolate* isolate, Handle<String> name) { |
HandleScope scope(isolate); |
Handle<Object> args[1] = { name }; |
- Handle<Object> error = isolate->factory()->NewTypeError( |
- "var_redeclaration", HandleVector(args, 1)); |
- return isolate->Throw(*error); |
+ THROW_NEW_ERROR_RETURN_FAILURE( |
+ isolate, NewTypeError("var_redeclaration", HandleVector(args, 1))); |
} |
@@ -3075,8 +3076,7 @@ RUNTIME_FUNCTION(Runtime_ThrowGeneratorStateError) { |
const char* message = continuation == JSGeneratorObject::kGeneratorClosed ? |
"generator_finished" : "generator_running"; |
Vector< Handle<Object> > argv = HandleVector<Object>(NULL, 0); |
- Handle<Object> error = isolate->factory()->NewError(message, argv); |
- return isolate->Throw(*error); |
+ THROW_NEW_ERROR_RETURN_FAILURE(isolate, NewError(message, argv)); |
} |
@@ -4813,9 +4813,9 @@ MaybeHandle<Object> Runtime::GetObjectProperty(Isolate* isolate, |
Handle<Object> key) { |
if (object->IsUndefined() || object->IsNull()) { |
Handle<Object> args[2] = { key, object }; |
- return isolate->Throw<Object>( |
- isolate->factory()->NewTypeError("non_object_property_load", |
- HandleVector(args, 2))); |
+ THROW_NEW_ERROR(isolate, NewTypeError("non_object_property_load", |
+ HandleVector(args, 2)), |
+ Object); |
} |
// Check if the given key is an array index. |
@@ -5088,10 +5088,9 @@ MaybeHandle<Object> Runtime::SetObjectProperty(Isolate* isolate, |
StrictMode strict_mode) { |
if (object->IsUndefined() || object->IsNull()) { |
Handle<Object> args[2] = { key, object }; |
- Handle<Object> error = |
- isolate->factory()->NewTypeError("non_object_property_store", |
- HandleVector(args, 2)); |
- return isolate->Throw<Object>(error); |
+ THROW_NEW_ERROR(isolate, NewTypeError("non_object_property_store", |
+ HandleVector(args, 2)), |
+ Object); |
} |
if (object->IsJSProxy()) { |
@@ -5339,9 +5338,9 @@ RUNTIME_FUNCTION(Runtime_AddPropertyForTemplate) { |
} |
if (duplicate) { |
Handle<Object> args[1] = { key }; |
- Handle<Object> error = isolate->factory()->NewTypeError( |
- "duplicate_template_property", HandleVector(args, 1)); |
- return isolate->Throw(*error); |
+ THROW_NEW_ERROR_RETURN_FAILURE( |
+ isolate, |
+ NewTypeError("duplicate_template_property", HandleVector(args, 1))); |
} |
#endif |
@@ -6051,8 +6050,9 @@ RUNTIME_FUNCTION(Runtime_GetArgumentsProperty) { |
if (String::Equals(isolate->factory()->callee_string(), key)) { |
JSFunction* function = frame->function(); |
if (function->shared()->strict_mode() == STRICT) { |
- return isolate->Throw(*isolate->factory()->NewTypeError( |
- "strict_arguments_callee", HandleVector<Object>(NULL, 0))); |
+ THROW_NEW_ERROR_RETURN_FAILURE( |
+ isolate, NewTypeError("strict_arguments_callee", |
+ HandleVector<Object>(NULL, 0))); |
} |
return function; |
} |
@@ -6448,7 +6448,8 @@ MUST_USE_RESULT static Object* ConvertCaseHelper( |
current_length += char_length; |
if (current_length > String::kMaxLength) { |
AllowHeapAllocation allocate_error_and_return; |
- return isolate->ThrowInvalidStringLength(); |
+ THROW_NEW_ERROR_RETURN_FAILURE(isolate, |
+ NewInvalidStringLengthError()); |
} |
} |
// Try again with the real length. Return signed if we need |
@@ -7163,7 +7164,9 @@ RUNTIME_FUNCTION(Runtime_StringBuilderConcat) { |
HandleScope scope(isolate); |
DCHECK(args.length() == 3); |
CONVERT_ARG_HANDLE_CHECKED(JSArray, array, 0); |
- if (!args[1]->IsSmi()) return isolate->ThrowInvalidStringLength(); |
+ if (!args[1]->IsSmi()) { |
+ THROW_NEW_ERROR_RETURN_FAILURE(isolate, NewInvalidStringLengthError()); |
+ } |
CONVERT_SMI_ARG_CHECKED(array_length, 1); |
CONVERT_ARG_HANDLE_CHECKED(String, special, 2); |
@@ -7235,7 +7238,9 @@ RUNTIME_FUNCTION(Runtime_StringBuilderJoin) { |
HandleScope scope(isolate); |
DCHECK(args.length() == 3); |
CONVERT_ARG_HANDLE_CHECKED(JSArray, array, 0); |
- if (!args[1]->IsSmi()) return isolate->ThrowInvalidStringLength(); |
+ if (!args[1]->IsSmi()) { |
+ THROW_NEW_ERROR_RETURN_FAILURE(isolate, NewInvalidStringLengthError()); |
+ } |
CONVERT_SMI_ARG_CHECKED(array_length, 1); |
CONVERT_ARG_HANDLE_CHECKED(String, separator, 2); |
RUNTIME_ASSERT(array->HasFastObjectElements()); |
@@ -7259,7 +7264,7 @@ RUNTIME_FUNCTION(Runtime_StringBuilderJoin) { |
int max_nof_separators = |
(String::kMaxLength + separator_length - 1) / separator_length; |
if (max_nof_separators < (array_length - 1)) { |
- return isolate->ThrowInvalidStringLength(); |
+ THROW_NEW_ERROR_RETURN_FAILURE(isolate, NewInvalidStringLengthError()); |
} |
int length = (array_length - 1) * separator_length; |
for (int i = 0; i < array_length; i++) { |
@@ -7421,7 +7426,7 @@ RUNTIME_FUNCTION(Runtime_SparseJoinWithSeparator) { |
// Throw an exception if the resulting string is too large. See |
// https://code.google.com/p/chromium/issues/detail?id=336820 |
// for details. |
- return isolate->ThrowInvalidStringLength(); |
+ THROW_NEW_ERROR_RETURN_FAILURE(isolate, NewInvalidStringLengthError()); |
} |
if (is_ascii) { |
@@ -8326,9 +8331,8 @@ static Object* Runtime_NewObjectHelper(Isolate* isolate, |
// If the constructor isn't a proper function we throw a type error. |
if (!constructor->IsJSFunction()) { |
Vector< Handle<Object> > arguments = HandleVector(&constructor, 1); |
- Handle<Object> type_error = |
- isolate->factory()->NewTypeError("not_constructor", arguments); |
- return isolate->Throw(*type_error); |
+ THROW_NEW_ERROR_RETURN_FAILURE(isolate, |
+ NewTypeError("not_constructor", arguments)); |
} |
Handle<JSFunction> function = Handle<JSFunction>::cast(constructor); |
@@ -8337,9 +8341,8 @@ static Object* Runtime_NewObjectHelper(Isolate* isolate, |
// case generated code bailouts here, since function has no initial_map. |
if (!function->should_have_prototype() && !function->shared()->bound()) { |
Vector< Handle<Object> > arguments = HandleVector(&constructor, 1); |
- Handle<Object> type_error = |
- isolate->factory()->NewTypeError("not_constructor", arguments); |
- return isolate->Throw(*type_error); |
+ THROW_NEW_ERROR_RETURN_FAILURE(isolate, |
+ NewTypeError("not_constructor", arguments)); |
} |
Debug* debug = isolate->debug(); |
@@ -9033,10 +9036,8 @@ RUNTIME_FUNCTION(Runtime_PushWithContext) { |
Object::ToObject(isolate, args.at<Object>(0)); |
if (!maybe_object.ToHandle(&extension_object)) { |
Handle<Object> handle = args.at<Object>(0); |
- Handle<Object> result = |
- isolate->factory()->NewTypeError("with_expression", |
- HandleVector(&handle, 1)); |
- return isolate->Throw(*result); |
+ THROW_NEW_ERROR_RETURN_FAILURE( |
+ isolate, NewTypeError("with_expression", HandleVector(&handle, 1))); |
} |
} |
@@ -9348,10 +9349,12 @@ static ObjectPair LoadLookupSlotHelper(Arguments args, Isolate* isolate, |
case MUTABLE_CHECK_INITIALIZED: |
case IMMUTABLE_CHECK_INITIALIZED_HARMONY: |
if (value->IsTheHole()) { |
- Handle<Object> reference_error = |
+ Handle<Object> error; |
+ MaybeHandle<Object> maybe_error = |
isolate->factory()->NewReferenceError("not_defined", |
HandleVector(&name, 1)); |
- return MakePair(isolate->Throw(*reference_error), NULL); |
+ if (maybe_error.ToHandle(&error)) isolate->Throw(*error); |
+ return MakePair(isolate->heap()->exception(), NULL); |
} |
// FALLTHROUGH |
case MUTABLE_IS_INITIALIZED: |
@@ -9403,10 +9406,11 @@ static ObjectPair LoadLookupSlotHelper(Arguments args, Isolate* isolate, |
if (throw_error) { |
// The property doesn't exist - throw exception. |
- Handle<Object> reference_error = |
- isolate->factory()->NewReferenceError("not_defined", |
- HandleVector(&name, 1)); |
- return MakePair(isolate->Throw(*reference_error), NULL); |
+ Handle<Object> error; |
+ MaybeHandle<Object> maybe_error = isolate->factory()->NewReferenceError( |
+ "not_defined", HandleVector(&name, 1)); |
+ if (maybe_error.ToHandle(&error)) isolate->Throw(*error); |
+ return MakePair(isolate->heap()->exception(), NULL); |
} else { |
// The property doesn't exist - return undefined. |
return MakePair(isolate->heap()->undefined_value(), |
@@ -9452,10 +9456,9 @@ RUNTIME_FUNCTION(Runtime_StoreLookupSlot) { |
Handle<Context>::cast(holder)->set(index, *value); |
} else if (strict_mode == STRICT) { |
// Setting read only property in strict mode. |
- Handle<Object> error = |
- isolate->factory()->NewTypeError("strict_cannot_assign", |
- HandleVector(&name, 1)); |
- return isolate->Throw(*error); |
+ THROW_NEW_ERROR_RETURN_FAILURE( |
+ isolate, |
+ NewTypeError("strict_cannot_assign", HandleVector(&name, 1))); |
} |
return *value; |
} |
@@ -9469,9 +9472,8 @@ RUNTIME_FUNCTION(Runtime_StoreLookupSlot) { |
object = Handle<JSReceiver>::cast(holder); |
} else if (strict_mode == STRICT) { |
// If absent in strict mode: throw. |
- Handle<Object> error = isolate->factory()->NewReferenceError( |
- "not_defined", HandleVector(&name, 1)); |
- return isolate->Throw(*error); |
+ THROW_NEW_ERROR_RETURN_FAILURE( |
+ isolate, NewReferenceError("not_defined", HandleVector(&name, 1))); |
} else { |
// If absent in sloppy mode: add the property to the global object. |
object = Handle<JSReceiver>(context->global_object()); |
@@ -9511,18 +9513,16 @@ RUNTIME_FUNCTION(Runtime_ThrowReferenceError) { |
HandleScope scope(isolate); |
DCHECK(args.length() == 1); |
CONVERT_ARG_HANDLE_CHECKED(Object, name, 0); |
- Handle<Object> reference_error = |
- isolate->factory()->NewReferenceError("not_defined", |
- HandleVector(&name, 1)); |
- return isolate->Throw(*reference_error); |
+ THROW_NEW_ERROR_RETURN_FAILURE( |
+ isolate, NewReferenceError("not_defined", HandleVector(&name, 1))); |
} |
RUNTIME_FUNCTION(Runtime_ThrowNotDateError) { |
HandleScope scope(isolate); |
DCHECK(args.length() == 0); |
- return isolate->Throw(*isolate->factory()->NewTypeError( |
- "not_date_object", HandleVector<Object>(NULL, 0))); |
+ THROW_NEW_ERROR_RETURN_FAILURE( |
+ isolate, NewTypeError("not_date_object", HandleVector<Object>(NULL, 0))); |
} |
@@ -9880,8 +9880,9 @@ RUNTIME_FUNCTION(Runtime_CompileString) { |
!CodeGenerationFromStringsAllowed(isolate, context)) { |
Handle<Object> error_message = |
context->ErrorMessageForCodeGenerationFromStrings(); |
- return isolate->Throw(*isolate->factory()->NewEvalError( |
- "code_gen_from_strings", HandleVector<Object>(&error_message, 1))); |
+ THROW_NEW_ERROR_RETURN_FAILURE( |
+ isolate, NewEvalError("code_gen_from_strings", |
+ HandleVector<Object>(&error_message, 1))); |
} |
// Compile source string in the native context. |
@@ -9910,8 +9911,10 @@ static ObjectPair CompileGlobalEval(Isolate* isolate, |
!CodeGenerationFromStringsAllowed(isolate, native_context)) { |
Handle<Object> error_message = |
native_context->ErrorMessageForCodeGenerationFromStrings(); |
- isolate->Throw(*isolate->factory()->NewEvalError( |
- "code_gen_from_strings", HandleVector<Object>(&error_message, 1))); |
+ Handle<Object> error; |
+ MaybeHandle<Object> maybe_error = isolate->factory()->NewEvalError( |
+ "code_gen_from_strings", HandleVector<Object>(&error_message, 1)); |
+ if (maybe_error.ToHandle(&error)) isolate->Throw(*error); |
return MakePair(isolate->heap()->exception(), NULL); |
} |
@@ -10689,9 +10692,9 @@ RUNTIME_FUNCTION(Runtime_ArrayConcat) { |
} |
if (visitor.exceeds_array_limit()) { |
- return isolate->Throw( |
- *isolate->factory()->NewRangeError("invalid_array_length", |
- HandleVector<Object>(NULL, 0))); |
+ THROW_NEW_ERROR_RETURN_FAILURE( |
+ isolate, |
+ NewRangeError("invalid_array_length", HandleVector<Object>(NULL, 0))); |
} |
return *visitor.ToArray(); |
} |
@@ -14036,9 +14039,8 @@ RUNTIME_FUNCTION(Runtime_GetImplFromInitializedIntlObject) { |
if (!input->IsJSObject()) { |
Vector< Handle<Object> > arguments = HandleVector(&input, 1); |
- Handle<Object> type_error = |
- isolate->factory()->NewTypeError("not_intl_object", arguments); |
- return isolate->Throw(*type_error); |
+ THROW_NEW_ERROR_RETURN_FAILURE(isolate, |
+ NewTypeError("not_intl_object", arguments)); |
} |
Handle<JSObject> obj = Handle<JSObject>::cast(input); |
@@ -14047,9 +14049,8 @@ RUNTIME_FUNCTION(Runtime_GetImplFromInitializedIntlObject) { |
Handle<Object> impl(obj->GetHiddenProperty(marker), isolate); |
if (impl->IsTheHole()) { |
Vector< Handle<Object> > arguments = HandleVector(&obj, 1); |
- Handle<Object> type_error = |
- isolate->factory()->NewTypeError("not_intl_object", arguments); |
- return isolate->Throw(*type_error); |
+ THROW_NEW_ERROR_RETURN_FAILURE(isolate, |
+ NewTypeError("not_intl_object", arguments)); |
} |
return *impl; |
} |
@@ -15371,8 +15372,9 @@ RUNTIME_FUNCTION(RuntimeReference_DateField) { |
CONVERT_SMI_ARG_CHECKED(index, 1); |
if (!obj->IsJSDate()) { |
HandleScope scope(isolate); |
- return isolate->Throw(*isolate->factory()->NewTypeError( |
- "not_date_object", HandleVector<Object>(NULL, 0))); |
+ THROW_NEW_ERROR_RETURN_FAILURE( |
+ isolate, |
+ NewTypeError("not_date_object", HandleVector<Object>(NULL, 0))); |
} |
JSDate* date = JSDate::cast(obj); |
if (index == 0) return date->value(); |