src: minor refactor to node_errors.h
Add overloads of the error generation/throwing methods that take an `Isolate*` argument, since the created objects don’t depend on the `Environment*` in question. Also, remove `THROW_ERR_OUT_OF_RANGE_WITH_TEXT`, which did the same thing as `THROW_ERR_OUT_OF_RANGE` in a more convoluted way. PR-URL: https://github.com/nodejs/node/pull/23879 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Eugene Ostroukhov <eostroukhov@google.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Matheus Marchini <mat@mmarchini.me>
This commit is contained in:
parent
b1e1fe4e07
commit
0fd55e71fe
@ -41,8 +41,7 @@
|
||||
#define THROW_AND_RETURN_IF_OOB(r) \
|
||||
do { \
|
||||
if (!(r)) \
|
||||
return node::THROW_ERR_OUT_OF_RANGE_WITH_TEXT(env, \
|
||||
"Index out of range"); \
|
||||
return node::THROW_ERR_OUT_OF_RANGE(env, "Index out of range"); \
|
||||
} while (0) \
|
||||
|
||||
#define SLICE_START_END(start_arg, end_arg, end_max) \
|
||||
@ -494,7 +493,7 @@ void Copy(const FunctionCallbackInfo<Value> &args) {
|
||||
return args.GetReturnValue().Set(0);
|
||||
|
||||
if (source_start > ts_obj_length)
|
||||
return node::THROW_ERR_OUT_OF_RANGE_WITH_TEXT(
|
||||
return THROW_ERR_OUT_OF_RANGE(
|
||||
env, "The value of \"sourceStart\" is out of range.");
|
||||
|
||||
if (source_end - source_start > target_length - target_start)
|
||||
@ -685,10 +684,10 @@ void CompareOffset(const FunctionCallbackInfo<Value> &args) {
|
||||
THROW_AND_RETURN_IF_OOB(ParseArrayIndex(args[5], ts_obj_length, &source_end));
|
||||
|
||||
if (source_start > ts_obj_length)
|
||||
return node::THROW_ERR_OUT_OF_RANGE_WITH_TEXT(
|
||||
return THROW_ERR_OUT_OF_RANGE(
|
||||
env, "The value of \"sourceStart\" is out of range.");
|
||||
if (target_start > target_length)
|
||||
return node::THROW_ERR_OUT_OF_RANGE_WITH_TEXT(
|
||||
return THROW_ERR_OUT_OF_RANGE(
|
||||
env, "The value of \"targetStart\" is out of range.");
|
||||
|
||||
CHECK_LE(source_start, source_end);
|
||||
|
@ -52,8 +52,11 @@ namespace node {
|
||||
js_code).FromJust(); \
|
||||
return e; \
|
||||
} \
|
||||
inline void THROW_ ## code(v8::Isolate* isolate, const char* message) { \
|
||||
isolate->ThrowException(code(isolate, message)); \
|
||||
} \
|
||||
inline void THROW_ ## code(Environment* env, const char* message) { \
|
||||
env->isolate()->ThrowException(code(env->isolate(), message)); \
|
||||
THROW_ ## code(env->isolate(), message); \
|
||||
}
|
||||
ERRORS_WITH_CODE(V)
|
||||
#undef V
|
||||
@ -80,8 +83,11 @@ namespace node {
|
||||
inline v8::Local<v8::Value> code(v8::Isolate* isolate) { \
|
||||
return code(isolate, message); \
|
||||
} \
|
||||
inline void THROW_ ## code(v8::Isolate* isolate) { \
|
||||
isolate->ThrowException(code(isolate, message)); \
|
||||
} \
|
||||
inline void THROW_ ## code(Environment* env) { \
|
||||
env->isolate()->ThrowException(code(env->isolate(), message)); \
|
||||
THROW_ ## code(env->isolate()); \
|
||||
}
|
||||
PREDEFINED_ERROR_MESSAGES(V)
|
||||
#undef V
|
||||
@ -95,13 +101,6 @@ inline void THROW_ERR_SCRIPT_EXECUTION_TIMEOUT(Environment* env,
|
||||
THROW_ERR_SCRIPT_EXECUTION_TIMEOUT(env, message.str().c_str());
|
||||
}
|
||||
|
||||
inline void THROW_ERR_OUT_OF_RANGE_WITH_TEXT(Environment* env,
|
||||
const char* messageText) {
|
||||
std::ostringstream message;
|
||||
message << messageText;
|
||||
THROW_ERR_OUT_OF_RANGE(env, message.str().c_str());
|
||||
}
|
||||
|
||||
inline v8::Local<v8::Value> ERR_BUFFER_TOO_LARGE(v8::Isolate* isolate) {
|
||||
char message[128];
|
||||
snprintf(message, sizeof(message),
|
||||
|
Loading…
x
Reference in New Issue
Block a user