@@ -6947,8 +6947,8 @@ JSValue JS_NewError(JSContext *ctx)
6947
6947
return obj;
6948
6948
}
6949
6949
6950
- static JSValue JS_MakeError (JSContext *ctx, JSErrorEnum error_num,
6951
- const char *message, bool add_backtrace )
6950
+ static JSValue JS_MakeError2 (JSContext *ctx, JSErrorEnum error_num,
6951
+ bool add_backtrace, const char *message)
6952
6952
{
6953
6953
JSValue obj, msg;
6954
6954
@@ -6972,16 +6972,24 @@ static JSValue JS_MakeError(JSContext *ctx, JSErrorEnum error_num,
6972
6972
return obj;
6973
6973
}
6974
6974
6975
- /* fmt and arguments may be pure ASCII or UTF-8 encoded contents */
6976
6975
static JSValue JS_PRINTF_FORMAT_ATTR(4, 0)
6977
- JS_ThrowError2 (JSContext *ctx, JSErrorEnum error_num,
6978
- bool add_backtrace, JS_PRINTF_FORMAT const char *fmt, va_list ap)
6976
+ JS_MakeError (JSContext *ctx, JSErrorEnum error_num, bool add_backtrace ,
6977
+ JS_PRINTF_FORMAT const char *fmt, va_list ap)
6979
6978
{
6980
6979
char buf[256];
6981
- JSValue obj;
6982
6980
6983
6981
vsnprintf(buf, sizeof(buf), fmt, ap);
6984
- obj = JS_MakeError(ctx, error_num, buf, add_backtrace);
6982
+ return JS_MakeError2(ctx, error_num, add_backtrace, buf);
6983
+ }
6984
+
6985
+ /* fmt and arguments may be pure ASCII or UTF-8 encoded contents */
6986
+ static JSValue JS_PRINTF_FORMAT_ATTR(4, 0)
6987
+ JS_ThrowError2(JSContext *ctx, JSErrorEnum error_num, bool add_backtrace,
6988
+ JS_PRINTF_FORMAT const char *fmt, va_list ap)
6989
+ {
6990
+ JSValue obj;
6991
+
6992
+ obj = JS_MakeError(ctx, error_num, add_backtrace, fmt, ap);
6985
6993
if (unlikely(JS_IsException(obj))) {
6986
6994
/* out of memory: throw JS_NULL to avoid recursing */
6987
6995
obj = JS_NULL;
@@ -7004,38 +7012,45 @@ JS_ThrowError(JSContext *ctx, JSErrorEnum error_num,
7004
7012
return JS_ThrowError2(ctx, error_num, add_backtrace, fmt, ap);
7005
7013
}
7006
7014
7007
- JSValue JS_PRINTF_FORMAT_ATTR(2, 3) JS_ThrowPlainError(JSContext *ctx, JS_PRINTF_FORMAT const char *fmt, ...)
7008
- {
7009
- JSValue val;
7010
- va_list ap;
7011
-
7012
- va_start(ap, fmt);
7013
- val = JS_ThrowError(ctx, JS_PLAIN_ERROR, fmt, ap);
7014
- va_end(ap);
7015
- return val;
7016
- }
7017
-
7018
- JSValue JS_PRINTF_FORMAT_ATTR(2, 3) JS_ThrowSyntaxError(JSContext *ctx, JS_PRINTF_FORMAT const char *fmt, ...)
7019
- {
7020
- JSValue val;
7021
- va_list ap;
7022
-
7023
- va_start(ap, fmt);
7024
- val = JS_ThrowError(ctx, JS_SYNTAX_ERROR, fmt, ap);
7025
- va_end(ap);
7026
- return val;
7027
- }
7028
-
7029
- JSValue JS_PRINTF_FORMAT_ATTR(2, 3) JS_ThrowTypeError(JSContext *ctx, JS_PRINTF_FORMAT const char *fmt, ...)
7030
- {
7031
- JSValue val;
7032
- va_list ap;
7033
-
7034
- va_start(ap, fmt);
7035
- val = JS_ThrowError(ctx, JS_TYPE_ERROR, fmt, ap);
7036
- va_end(ap);
7037
- return val;
7038
- }
7015
+ #define JS_ERROR_MAP(X) \
7016
+ X(Internal, INTERNAL) \
7017
+ X(Plain, PLAIN) \
7018
+ X(Range, RANGE) \
7019
+ X(Reference, REFERENCE) \
7020
+ X(Syntax, SYNTAX) \
7021
+ X(Type, TYPE) \
7022
+
7023
+ #define X(lc, uc) \
7024
+ JSValue JS_PRINTF_FORMAT_ATTR(2, 3) \
7025
+ JS_New##lc##Error(JSContext *ctx, \
7026
+ JS_PRINTF_FORMAT const char *fmt, ...) \
7027
+ { \
7028
+ JSValue val; \
7029
+ va_list ap; \
7030
+ \
7031
+ va_start(ap, fmt); \
7032
+ val = JS_MakeError(ctx, JS_##uc##_ERROR, \
7033
+ /*add_backtrace*/true, fmt, ap); \
7034
+ va_end(ap); \
7035
+ return val; \
7036
+ } \
7037
+ JSValue JS_PRINTF_FORMAT_ATTR(2, 3) \
7038
+ JS_Throw##lc##Error(JSContext *ctx, \
7039
+ JS_PRINTF_FORMAT const char *fmt, ...) \
7040
+ { \
7041
+ JSValue val; \
7042
+ va_list ap; \
7043
+ \
7044
+ va_start(ap, fmt); \
7045
+ val = JS_ThrowError(ctx, JS_##uc##_ERROR, fmt, ap); \
7046
+ va_end(ap); \
7047
+ return val; \
7048
+ } \
7049
+
7050
+ JS_ERROR_MAP(X)
7051
+
7052
+ #undef X
7053
+ #undef JS_ERROR_MAP
7039
7054
7040
7055
static int JS_PRINTF_FORMAT_ATTR(3, 4) JS_ThrowTypeErrorOrFalse(JSContext *ctx, int flags, JS_PRINTF_FORMAT const char *fmt, ...)
7041
7056
{
@@ -7084,39 +7099,6 @@ static int JS_ThrowTypeErrorReadOnly(JSContext *ctx, int flags, JSAtom atom)
7084
7099
}
7085
7100
}
7086
7101
7087
- JSValue JS_PRINTF_FORMAT_ATTR(2, 3) JS_ThrowReferenceError(JSContext *ctx, JS_PRINTF_FORMAT const char *fmt, ...)
7088
- {
7089
- JSValue val;
7090
- va_list ap;
7091
-
7092
- va_start(ap, fmt);
7093
- val = JS_ThrowError(ctx, JS_REFERENCE_ERROR, fmt, ap);
7094
- va_end(ap);
7095
- return val;
7096
- }
7097
-
7098
- JSValue JS_PRINTF_FORMAT_ATTR(2, 3) JS_ThrowRangeError(JSContext *ctx, JS_PRINTF_FORMAT const char *fmt, ...)
7099
- {
7100
- JSValue val;
7101
- va_list ap;
7102
-
7103
- va_start(ap, fmt);
7104
- val = JS_ThrowError(ctx, JS_RANGE_ERROR, fmt, ap);
7105
- va_end(ap);
7106
- return val;
7107
- }
7108
-
7109
- JSValue JS_PRINTF_FORMAT_ATTR(2, 3) JS_ThrowInternalError(JSContext *ctx, JS_PRINTF_FORMAT const char *fmt, ...)
7110
- {
7111
- JSValue val;
7112
- va_list ap;
7113
-
7114
- va_start(ap, fmt);
7115
- val = JS_ThrowError(ctx, JS_INTERNAL_ERROR, fmt, ap);
7116
- va_end(ap);
7117
- return val;
7118
- }
7119
-
7120
7102
JSValue JS_ThrowOutOfMemory(JSContext *ctx)
7121
7103
{
7122
7104
JSRuntime *rt = ctx->rt;
@@ -51457,8 +51439,8 @@ static JSValue js_async_from_sync_iterator_next(JSContext *ctx, JSValueConst thi
51457
51439
err = JS_GetException(ctx);
51458
51440
is_reject = 1;
51459
51441
} else {
51460
- err = JS_MakeError (ctx, JS_TYPE_ERROR, "throw is not a method" ,
51461
- true );
51442
+ err = JS_MakeError2 (ctx, JS_TYPE_ERROR, /*add_backtrace*/true ,
51443
+ "throw is not a method" );
51462
51444
is_reject = 1;
51463
51445
}
51464
51446
goto done_resolve;
0 commit comments