diff options
author | Fabrice Bellard <fabrice@bellard.org> | 2023-12-27 17:19:25 +0100 |
---|---|---|
committer | Fabrice Bellard <fabrice@bellard.org> | 2023-12-27 17:19:25 +0100 |
commit | 5fc27dc7cf7a388e3f4ac7c9adb904c17a286333 (patch) | |
tree | 62b1b20938dfe5a246161f27749da099092f1ba9 | |
parent | feefdb1742ed2de8ecd09fd66a848d1695294b3a (diff) | |
download | quickjs-5fc27dc7cf7a388e3f4ac7c9adb904c17a286333.tar.gz quickjs-5fc27dc7cf7a388e3f4ac7c9adb904c17a286333.zip |
added Promise.withResolvers
-rw-r--r-- | TODO | 2 | ||||
-rw-r--r-- | quickjs.c | 16 | ||||
-rw-r--r-- | test262.conf | 2 |
3 files changed, 8 insertions, 12 deletions
@@ -63,5 +63,5 @@ Optimization ideas: Test262o: 0/11262 errors, 463 excluded Test262o commit: 7da91bceb9ce7613f87db47ddd1292a2dda58b42 (es5-tests branch) -Result: 16/76707 errors, 1497 excluded, 8237 skipped +Result: 16/76719 errors, 1497 excluded, 8231 skipped Test262 commit: 6cbb6da9473c56d95358d8e679c5a6d2b4574efb @@ -47662,17 +47662,14 @@ static JSValue js_promise_resolve(JSContext *ctx, JSValueConst this_val, return result_promise; } -#if 0 -static JSValue js_promise___newPromiseCapability(JSContext *ctx, - JSValueConst this_val, - int argc, JSValueConst *argv) +static JSValue js_promise_withResolvers(JSContext *ctx, + JSValueConst this_val, + int argc, JSValueConst *argv) { JSValue result_promise, resolving_funcs[2], obj; - JSValueConst ctor; - ctor = argv[0]; - if (!JS_IsObject(ctor)) + if (!JS_IsObject(this_val)) return JS_ThrowTypeErrorNotAnObject(ctx); - result_promise = js_new_promise_capability(ctx, resolving_funcs, ctor); + result_promise = js_new_promise_capability(ctx, resolving_funcs, this_val); if (JS_IsException(result_promise)) return result_promise; obj = JS_NewObject(ctx); @@ -47687,7 +47684,6 @@ static JSValue js_promise___newPromiseCapability(JSContext *ctx, JS_DefinePropertyValue(ctx, obj, JS_ATOM_reject, resolving_funcs[1], JS_PROP_C_W_E); return obj; } -#endif static __exception int remainingElementsCount_add(JSContext *ctx, JSValueConst resolve_element_env, @@ -48177,7 +48173,7 @@ static const JSCFunctionListEntry js_promise_funcs[] = { JS_CFUNC_MAGIC_DEF("allSettled", 1, js_promise_all, PROMISE_MAGIC_allSettled ), JS_CFUNC_MAGIC_DEF("any", 1, js_promise_all, PROMISE_MAGIC_any ), JS_CFUNC_DEF("race", 1, js_promise_race ), - //JS_CFUNC_DEF("__newPromiseCapability", 1, js_promise___newPromiseCapability ), + JS_CFUNC_DEF("withResolvers", 0, js_promise_withResolvers ), JS_CGETSET_DEF("[Symbol.species]", js_get_this, NULL), }; diff --git a/test262.conf b/test262.conf index e3183bd..de8eca4 100644 --- a/test262.conf +++ b/test262.conf @@ -141,7 +141,7 @@ Object.is optional-catch-binding optional-chaining Promise -promise-with-resolvers=skip +promise-with-resolvers Promise.allSettled Promise.any Promise.prototype.finally |