From 098f221cf3124a4a423d089bae83b81ccf108d20 Mon Sep 17 00:00:00 2001 From: Fabrice Bellard Date: Sat, 14 Jun 2025 11:42:54 +0200 Subject: [PATCH] added Error.isError() (bnoordhuis) --- TODO | 2 +- quickjs.c | 11 +++++++++++ test262.conf | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/TODO b/TODO index acbe84a..8d0ff43 100644 --- a/TODO +++ b/TODO @@ -62,5 +62,5 @@ Optimization ideas: Test262o: 0/11262 errors, 463 excluded Test262o commit: 7da91bceb9ce7613f87db47ddd1292a2dda58b42 (es5-tests branch) -Result: 47/79321 errors, 1617 excluded, 6767 skipped +Result: 46/79346 errors, 1617 excluded, 6754 skipped Test262 commit: 4b5d36ab6ef2f59d0a8902cd383762547a3a74c4 diff --git a/quickjs.c b/quickjs.c index f271927..de2d41b 100644 --- a/quickjs.c +++ b/quickjs.c @@ -39976,6 +39976,16 @@ static const JSCFunctionListEntry js_error_proto_funcs[] = { JS_PROP_STRING_DEF("message", "", JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE ), }; +static JSValue js_error_isError(JSContext *ctx, JSValueConst this_val, + int argc, JSValueConst *argv) +{ + return JS_NewBool(ctx, JS_IsError(ctx, argv[0])); +} + +static const JSCFunctionListEntry js_error_funcs[] = { + JS_CFUNC_DEF("isError", 1, js_error_isError), +}; + /* AggregateError */ /* used by C code. */ @@ -52277,6 +52287,7 @@ void JS_AddIntrinsicBaseObjects(JSContext *ctx) "Error", 1, JS_CFUNC_constructor_or_func_magic, -1); JS_NewGlobalCConstructor2(ctx, obj1, "Error", ctx->class_proto[JS_CLASS_ERROR]); + JS_SetPropertyFunctionList(ctx, obj1, js_error_funcs, countof(js_error_funcs)); /* Used to squelch a -Wcast-function-type warning. */ JSCFunctionType ft = { .generic_magic = js_error_constructor }; diff --git a/test262.conf b/test262.conf index 0966a59..3277594 100644 --- a/test262.conf +++ b/test262.conf @@ -103,7 +103,7 @@ destructuring-assignment destructuring-binding dynamic-import error-cause -Error.isError=skip +Error.isError explicit-resource-management=skip exponentiation export-star-as-namespace-from-module