@@ -10566,20 +10566,25 @@ String::Value::Value(v8::Isolate* v8_isolate, v8::Local<v8::Value> obj)
1056610566
1056710567String::Value::~Value () { i::DeleteArray (str_); }
1056810568
10569- #define DEFINE_ERROR (NAME, name ) \
10570- Local<Value> Exception::NAME (v8::Local<v8::String> raw_message) { \
10571- i::Isolate* i_isolate = i::Isolate::Current (); \
10572- API_RCS_SCOPE (i_isolate, NAME, New); \
10573- ENTER_V8_NO_SCRIPT_NO_EXCEPTION (i_isolate); \
10574- i::Tagged<i::Object> error; \
10575- { \
10576- i::HandleScope scope (i_isolate); \
10577- i::Handle<i::String> message = Utils::OpenHandle (*raw_message); \
10578- i::Handle<i::JSFunction> constructor = i_isolate->name ##_function (); \
10579- error = *i_isolate->factory ()->NewError (constructor, message); \
10580- } \
10581- i::Handle<i::Object> result (error, i_isolate); \
10582- return Utils::ToLocal (result); \
10569+ #define DEFINE_ERROR (NAME, name ) \
10570+ Local<Value> Exception::NAME (v8::Local<v8::String> raw_message, \
10571+ v8::Local<v8::Value> raw_options) { \
10572+ i::Isolate* i_isolate = i::Isolate::Current (); \
10573+ API_RCS_SCOPE (i_isolate, NAME, New); \
10574+ ENTER_V8_NO_SCRIPT_NO_EXCEPTION (i_isolate); \
10575+ i::Tagged<i::Object> error; \
10576+ { \
10577+ i::HandleScope scope (i_isolate); \
10578+ i::Handle<i::Object> options; \
10579+ if (!raw_options.IsEmpty ()) { \
10580+ options = Utils::OpenHandle (*raw_options); \
10581+ } \
10582+ i::Handle<i::String> message = Utils::OpenHandle (*raw_message); \
10583+ i::Handle<i::JSFunction> constructor = i_isolate->name ##_function (); \
10584+ error = *i_isolate->factory ()->NewError (constructor, message, options); \
10585+ } \
10586+ i::Handle<i::Object> result (error, i_isolate); \
10587+ return Utils::ToLocal (result); \
1058310588 }
1058410589
1058510590DEFINE_ERROR (RangeError, range_error)
0 commit comments