return;
}
- Handle<Object> exception;
- maybe = isolate->factory()->NewRangeError("invalid_array_length",
- HandleVector<Object>(NULL, 0));
- if (!maybe.ToHandle(&exception)) {
- isolate->OptionalRescheduleException(false);
- return;
- }
-
+ Handle<Object> exception = isolate->factory()->NewRangeError(
+ "invalid_array_length", HandleVector<Object>(NULL, 0));
isolate->ScheduleThrow(*exception);
}
if (value->IsTheHole()) {
Handle<String> name = v8::Utils::OpenHandle(*property);
- Handle<Object> exception;
- MaybeHandle<Object> maybe = isolate->factory()->NewReferenceError(
+ Handle<Object> exception = isolate->factory()->NewReferenceError(
"not_defined", HandleVector(&name, 1));
- if (!maybe.ToHandle(&exception)) {
- isolate->OptionalRescheduleException(false);
- return;
- }
-
isolate->ScheduleThrow(*exception);
return;
}
Isolate* isolate = context->GetIsolate();
if (old_value->IsTheHole()) {
Handle<String> name = v8::Utils::OpenHandle(*property);
- Handle<Object> exception;
- MaybeHandle<Object> maybe = isolate->factory()->NewReferenceError(
+ Handle<Object> exception = isolate->factory()->NewReferenceError(
"not_defined", HandleVector(&name, 1));
- if (!maybe.ToHandle(&exception)) {
- isolate->OptionalRescheduleException(false);
- return;
- }
-
isolate->ScheduleThrow(*exception);
return;
}
{ \
i::HandleScope scope(isolate); \
i::Handle<i::String> message = Utils::OpenHandle(*raw_message); \
- i::Handle<i::Object> result; \
- EXCEPTION_PREAMBLE(isolate); \
- i::MaybeHandle<i::Object> maybe_result = \
- isolate->factory()->New##NAME(message); \
- has_pending_exception = !maybe_result.ToHandle(&result); \
- /* TODO(yangguo): crbug/403509. Return empty handle instead. */ \
- EXCEPTION_BAILOUT_CHECK( \
- isolate, v8::Undefined(reinterpret_cast<v8::Isolate*>(isolate))); \
- error = *result; \
+ error = *isolate->factory()->New##NAME(message); \
} \
i::Handle<i::Object> result(error, isolate); \
return Utils::ToLocal(result); \
}
-MaybeHandle<Object> Factory::NewTypeError(const char* message,
- Vector<Handle<Object> > args) {
+Handle<Object> Factory::NewTypeError(const char* message,
+ Vector<Handle<Object> > args) {
return NewError("MakeTypeError", message, args);
}
-MaybeHandle<Object> Factory::NewTypeError(Handle<String> message) {
+Handle<Object> Factory::NewTypeError(Handle<String> message) {
return NewError("$TypeError", message);
}
-MaybeHandle<Object> Factory::NewRangeError(const char* message,
- Vector<Handle<Object> > args) {
+Handle<Object> Factory::NewRangeError(const char* message,
+ Vector<Handle<Object> > args) {
return NewError("MakeRangeError", message, args);
}
-MaybeHandle<Object> Factory::NewRangeError(Handle<String> message) {
+Handle<Object> Factory::NewRangeError(Handle<String> message) {
return NewError("$RangeError", message);
}
-MaybeHandle<Object> Factory::NewSyntaxError(const char* message,
- Handle<JSArray> args) {
+Handle<Object> Factory::NewSyntaxError(const char* message,
+ Handle<JSArray> args) {
return NewError("MakeSyntaxError", message, args);
}
-MaybeHandle<Object> Factory::NewSyntaxError(Handle<String> message) {
+Handle<Object> Factory::NewSyntaxError(Handle<String> message) {
return NewError("$SyntaxError", message);
}
-MaybeHandle<Object> Factory::NewReferenceError(const char* message,
- Vector<Handle<Object> > args) {
+Handle<Object> Factory::NewReferenceError(const char* message,
+ Vector<Handle<Object> > args) {
return NewError("MakeReferenceError", message, args);
}
-MaybeHandle<Object> Factory::NewReferenceError(const char* message,
- Handle<JSArray> args) {
+Handle<Object> Factory::NewReferenceError(const char* message,
+ Handle<JSArray> args) {
return NewError("MakeReferenceError", message, args);
}
-MaybeHandle<Object> Factory::NewReferenceError(Handle<String> message) {
+Handle<Object> Factory::NewReferenceError(Handle<String> message) {
return NewError("$ReferenceError", message);
}
-MaybeHandle<Object> Factory::NewError(const char* maker, const char* message,
- Vector<Handle<Object> > args) {
+Handle<Object> Factory::NewError(const char* maker, const char* message,
+ Vector<Handle<Object> > args) {
// Instantiate a closeable HandleScope for EscapeFrom.
v8::EscapableHandleScope scope(reinterpret_cast<v8::Isolate*>(isolate()));
Handle<FixedArray> array = NewFixedArray(args.length());
array->set(i, *args[i]);
}
Handle<JSArray> object = NewJSArrayWithElements(array);
- Handle<Object> result;
- ASSIGN_RETURN_ON_EXCEPTION(isolate(), result,
- NewError(maker, message, object), Object);
+ Handle<Object> result = NewError(maker, message, object);
return result.EscapeFrom(&scope);
}
-MaybeHandle<Object> Factory::NewEvalError(const char* message,
- Vector<Handle<Object> > args) {
+Handle<Object> Factory::NewEvalError(const char* message,
+ Vector<Handle<Object> > args) {
return NewError("MakeEvalError", message, args);
}
-MaybeHandle<Object> Factory::NewError(const char* message,
- Vector<Handle<Object> > args) {
+Handle<Object> Factory::NewError(const char* message,
+ Vector<Handle<Object> > args) {
return NewError("MakeError", message, args);
}
}
-MaybeHandle<Object> Factory::NewError(const char* maker, const char* message,
- Handle<JSArray> args) {
+Handle<Object> Factory::NewError(const char* maker, const char* message,
+ Handle<JSArray> args) {
Handle<String> make_str = InternalizeUtf8String(maker);
Handle<Object> fun_obj = Object::GetProperty(
isolate()->js_builtins_object(), make_str).ToHandleChecked();
}
-MaybeHandle<Object> Factory::NewError(Handle<String> message) {
+Handle<Object> Factory::NewError(Handle<String> message) {
return NewError("$Error", message);
}
-MaybeHandle<Object> Factory::NewError(const char* constructor,
- Handle<String> message) {
+Handle<Object> Factory::NewError(const char* constructor,
+ Handle<String> message) {
Handle<String> constr = InternalizeUtf8String(constructor);
Handle<JSFunction> fun = Handle<JSFunction>::cast(Object::GetProperty(
isolate()->js_builtins_object(), constr).ToHandleChecked());
// Interface for creating error objects.
- MaybeHandle<Object> NewError(const char* maker, const char* message,
- Handle<JSArray> args);
+ Handle<Object> NewError(const char* maker, const char* message,
+ Handle<JSArray> args);
Handle<String> EmergencyNewError(const char* message, Handle<JSArray> args);
- MaybeHandle<Object> NewError(const char* maker, const char* message,
- Vector<Handle<Object> > args);
- MaybeHandle<Object> NewError(const char* message,
- Vector<Handle<Object> > args);
- MaybeHandle<Object> NewError(Handle<String> message);
- MaybeHandle<Object> NewError(const char* constructor, Handle<String> message);
+ Handle<Object> NewError(const char* maker, const char* message,
+ Vector<Handle<Object> > args);
+ Handle<Object> NewError(const char* message, Vector<Handle<Object> > args);
+ Handle<Object> NewError(Handle<String> message);
+ Handle<Object> NewError(const char* constructor, Handle<String> message);
- MaybeHandle<Object> NewTypeError(const char* message,
- Vector<Handle<Object> > args);
- MaybeHandle<Object> NewTypeError(Handle<String> message);
+ Handle<Object> NewTypeError(const char* message,
+ Vector<Handle<Object> > args);
+ Handle<Object> NewTypeError(Handle<String> message);
- MaybeHandle<Object> NewRangeError(const char* message,
- Vector<Handle<Object> > args);
- MaybeHandle<Object> NewRangeError(Handle<String> message);
+ Handle<Object> NewRangeError(const char* message,
+ Vector<Handle<Object> > args);
+ Handle<Object> NewRangeError(Handle<String> message);
- MaybeHandle<Object> NewInvalidStringLengthError() {
+ Handle<Object> NewInvalidStringLengthError() {
return NewRangeError("invalid_string_length",
HandleVector<Object>(NULL, 0));
}
- MaybeHandle<Object> NewSyntaxError(const char* message, Handle<JSArray> args);
- MaybeHandle<Object> NewSyntaxError(Handle<String> message);
-
- MaybeHandle<Object> NewReferenceError(const char* message,
- Vector<Handle<Object> > args);
- MaybeHandle<Object> NewReferenceError(const char* message,
- Handle<JSArray> args);
- MaybeHandle<Object> NewReferenceError(Handle<String> message);
+ Handle<Object> NewSyntaxError(const char* message, Handle<JSArray> args);
+ Handle<Object> NewSyntaxError(Handle<String> message);
- MaybeHandle<Object> NewEvalError(const char* message,
+ Handle<Object> NewReferenceError(const char* message,
Vector<Handle<Object> > args);
+ Handle<Object> NewReferenceError(const char* message, Handle<JSArray> args);
+ Handle<Object> NewReferenceError(Handle<String> message);
+
+ Handle<Object> NewEvalError(const char* message,
+ Vector<Handle<Object> > args);
Handle<String> NumberToString(Handle<Object> number,
bool check_number_string_cache = true);
v8::AccessType type) {
if (!thread_local_top()->failed_access_check_callback_) {
Handle<String> message = factory()->InternalizeUtf8String("no access");
- Handle<Object> error;
- ASSIGN_RETURN_ON_EXCEPTION_VALUE(
- this, error, factory()->NewTypeError(message), /* void */);
- ScheduleThrow(*error);
+ ScheduleThrow(*factory()->NewTypeError(message));
return;
}
#define ASSIGN_RETURN_ON_EXCEPTION(isolate, dst, call, T) \
ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, dst, call, MaybeHandle<T>())
-#define THROW_NEW_ERROR(isolate, call, T) \
- do { \
- Handle<Object> __error__; \
- ASSIGN_RETURN_ON_EXCEPTION(isolate, __error__, isolate->factory()->call, \
- T); \
- return isolate->Throw<T>(__error__); \
+#define THROW_NEW_ERROR(isolate, call, T) \
+ do { \
+ return isolate->Throw<T>(isolate->factory()->call); \
} while (false)
-#define THROW_NEW_ERROR_RETURN_FAILURE(isolate, call) \
- do { \
- Handle<Object> __error__; \
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, __error__, \
- isolate->factory()->call); \
- return isolate->Throw(*__error__); \
+#define THROW_NEW_ERROR_RETURN_FAILURE(isolate, call) \
+ do { \
+ return isolate->Throw(*isolate->factory()->call); \
} while (false)
#define RETURN_ON_EXCEPTION_VALUE(isolate, call, value) \
MessageLocation location(factory->NewScript(source_),
position_,
position_ + 1);
- Handle<Object> error;
- ASSIGN_RETURN_ON_EXCEPTION(isolate(), error,
- factory->NewSyntaxError(message, array), Object);
+ Handle<Object> error = factory->NewSyntaxError(message, array);
return isolate()->template Throw<Object>(error, &location);
}
return result;
for (int i = 0; i < length; i++) {
if (elements->get(i) == *object) {
AllowHeapAllocation allow_to_return_error;
- Handle<Object> error;
- MaybeHandle<Object> maybe_error = factory()->NewTypeError(
+ Handle<Object> error = factory()->NewTypeError(
"circular_structure", HandleVector<Object>(NULL, 0));
- if (maybe_error.ToHandle(&error)) isolate_->Throw(*error);
+ isolate_->Throw(*error);
return EXCEPTION;
}
}
elements->set(0, re->Pattern());
elements->set(1, *error_message);
Handle<JSArray> array = factory->NewJSArrayWithElements(elements);
- Handle<Object> error;
- MaybeHandle<Object> maybe_error =
- factory->NewSyntaxError("malformed_regexp", array);
- if (maybe_error.ToHandle(&error)) isolate->Throw(*error);
+ Handle<Object> error = factory->NewSyntaxError("malformed_regexp", array);
+ isolate->Throw(*error);
}
Handle<String> trap = isolate->factory()->InternalizeOneByteString(
STATIC_CHAR_VECTOR("getPropertyDescriptor"));
Handle<Object> args[] = { handler, trap, name };
- Handle<Object> error;
- MaybeHandle<Object> maybe_error = isolate->factory()->NewTypeError(
+ Handle<Object> error = isolate->factory()->NewTypeError(
"proxy_prop_not_configurable", HandleVector(args, arraysize(args)));
- if (maybe_error.ToHandle(&error)) isolate->Throw(*error);
+ isolate->Throw(*error);
return maybe(NONE);
}
Handle<JSArray> array = factory->NewJSArrayWithElements(elements);
Handle<Object> error;
- MaybeHandle<Object> maybe_error;
switch (pending_error_type_) {
case kReferenceError:
- maybe_error = factory->NewReferenceError(pending_error_message_, array);
+ error = factory->NewReferenceError(pending_error_message_, array);
break;
case kSyntaxError:
- maybe_error = factory->NewSyntaxError(pending_error_message_, array);
+ error = factory->NewSyntaxError(pending_error_message_, array);
break;
}
- DCHECK(!maybe_error.is_null() || isolate->has_pending_exception());
- if (maybe_error.ToHandle(&error)) {
- Handle<JSObject> jserror = Handle<JSObject>::cast(error);
+ Handle<JSObject> jserror = Handle<JSObject>::cast(error);
- Handle<Name> key_start_pos = factory->error_start_pos_symbol();
- JSObject::SetProperty(jserror, key_start_pos,
- handle(Smi::FromInt(location.start_pos()), isolate),
- SLOPPY).Check();
+ Handle<Name> key_start_pos = factory->error_start_pos_symbol();
+ JSObject::SetProperty(jserror, key_start_pos,
+ handle(Smi::FromInt(location.start_pos()), isolate),
+ SLOPPY).Check();
- Handle<Name> key_end_pos = factory->error_end_pos_symbol();
- JSObject::SetProperty(jserror, key_end_pos,
- handle(Smi::FromInt(location.end_pos()), isolate),
- SLOPPY).Check();
+ Handle<Name> key_end_pos = factory->error_end_pos_symbol();
+ JSObject::SetProperty(jserror, key_end_pos,
+ handle(Smi::FromInt(location.end_pos()), isolate),
+ SLOPPY).Check();
- Handle<Name> key_script = factory->error_script_symbol();
- JSObject::SetProperty(jserror, key_script, script, SLOPPY).Check();
+ Handle<Name> key_script = factory->error_script_symbol();
+ JSObject::SetProperty(jserror, key_script, script, SLOPPY).Check();
- isolate->Throw(*error, &location);
- }
+ isolate->Throw(*error, &location);
}
}
case MUTABLE_CHECK_INITIALIZED:
case IMMUTABLE_CHECK_INITIALIZED_HARMONY:
if (value->IsTheHole()) {
- Handle<Object> error;
- MaybeHandle<Object> maybe_error =
- isolate->factory()->NewReferenceError("not_defined",
- HandleVector(&name, 1));
- if (maybe_error.ToHandle(&error)) isolate->Throw(*error);
+ Handle<Object> error = isolate->factory()->NewReferenceError(
+ "not_defined", HandleVector(&name, 1));
+ isolate->Throw(*error);
return MakePair(isolate->heap()->exception(), NULL);
}
// FALLTHROUGH
if (throw_error) {
// The property doesn't exist - throw exception.
- Handle<Object> error;
- MaybeHandle<Object> maybe_error = isolate->factory()->NewReferenceError(
+ Handle<Object> error = isolate->factory()->NewReferenceError(
"not_defined", HandleVector(&name, 1));
- if (maybe_error.ToHandle(&error)) isolate->Throw(*error);
+ isolate->Throw(*error);
return MakePair(isolate->heap()->exception(), NULL);
} else {
// The property doesn't exist - return undefined.