From 8365878651894dfa3b62136118905ce546b93851 Mon Sep 17 00:00:00 2001 From: Kyle Farnung Date: Fri, 11 May 2018 11:56:55 -0700 Subject: [PATCH] Promise API feedback --- bin/NativeTests/JsRTApiTest.cpp | 20 ++++++++++---------- lib/Jsrt/ChakraCommon.h | 4 ++++ lib/Jsrt/ChakraCore.h | 6 +++--- lib/Jsrt/Jsrt.cpp | 8 ++++---- 4 files changed, 21 insertions(+), 17 deletions(-) diff --git a/bin/NativeTests/JsRTApiTest.cpp b/bin/NativeTests/JsRTApiTest.cpp index 5f500c1b333..2f5a48103fb 100644 --- a/bin/NativeTests/JsRTApiTest.cpp +++ b/bin/NativeTests/JsRTApiTest.cpp @@ -2676,12 +2676,12 @@ namespace JsRTApiTest // Create resolvable promise REQUIRE(JsCreatePromise(&promise, &resolve, &reject) == JsNoError); - JsPromiseState state = JsPromiseState_Pending; + JsPromiseState state = JsPromiseStatePending; REQUIRE(JsGetPromiseState(promise, &state) == JsNoError); - CHECK(state == JsPromiseState_Pending); + CHECK(state == JsPromiseStatePending); result = JS_INVALID_REFERENCE; - CHECK(JsGetPromiseResult(promise, &result) == JsErrorInvalidArgument); + CHECK(JsGetPromiseResult(promise, &result) == JsErrorPromisePending); CHECK(result == JS_INVALID_REFERENCE); JsValueRef num = JS_INVALID_REFERENCE; @@ -2690,9 +2690,9 @@ namespace JsRTApiTest std::array args{ GetUndefined(), num }; REQUIRE(JsCallFunction(resolve, args.data(), static_cast(args.size()), &result) == JsNoError); - state = JsPromiseState_Pending; + state = JsPromiseStatePending; REQUIRE(JsGetPromiseState(promise, &state) == JsNoError); - CHECK(state == JsPromiseState_Fulfilled); + CHECK(state == JsPromiseStateFulfilled); result = JS_INVALID_REFERENCE; REQUIRE(JsGetPromiseResult(promise, &result) == JsNoError); @@ -2704,12 +2704,12 @@ namespace JsRTApiTest // Create rejectable promise REQUIRE(JsCreatePromise(&promise, &resolve, &reject) == JsNoError); - state = JsPromiseState_Pending; + state = JsPromiseStatePending; REQUIRE(JsGetPromiseState(promise, &state) == JsNoError); - CHECK(state == JsPromiseState_Pending); + CHECK(state == JsPromiseStatePending); result = JS_INVALID_REFERENCE; - CHECK(JsGetPromiseResult(promise, &result) == JsErrorInvalidArgument); + CHECK(JsGetPromiseResult(promise, &result) == JsErrorPromisePending); CHECK(result == JS_INVALID_REFERENCE); num = JS_INVALID_REFERENCE; @@ -2718,9 +2718,9 @@ namespace JsRTApiTest args = { GetUndefined(), num }; REQUIRE(JsCallFunction(reject, args.data(), static_cast(args.size()), &result) == JsNoError); - state = JsPromiseState_Pending; + state = JsPromiseStatePending; REQUIRE(JsGetPromiseState(promise, &state) == JsNoError); - CHECK(state == JsPromiseState_Rejected); + CHECK(state == JsPromiseStateRejected); result = JS_INVALID_REFERENCE; REQUIRE(JsGetPromiseResult(promise, &result) == JsNoError); diff --git a/lib/Jsrt/ChakraCommon.h b/lib/Jsrt/ChakraCommon.h index c01049e236d..41200b85c79 100644 --- a/lib/Jsrt/ChakraCommon.h +++ b/lib/Jsrt/ChakraCommon.h @@ -230,6 +230,10 @@ typedef unsigned short uint16_t; /// JsNoWeakRefRequired, /// + /// The Promise object is still in the pending state. + /// + JsErrorPromisePending, + /// /// Category of errors that relates to errors occurring within the engine itself. /// JsErrorCategoryEngine = 0x20000, diff --git a/lib/Jsrt/ChakraCore.h b/lib/Jsrt/ChakraCore.h index 4b79163e509..3ddcfe4374b 100644 --- a/lib/Jsrt/ChakraCore.h +++ b/lib/Jsrt/ChakraCore.h @@ -63,9 +63,9 @@ typedef enum JsModuleHostInfoKind /// typedef enum _JsPromiseState { - JsPromiseState_Pending = 0x0, - JsPromiseState_Fulfilled = 0x1, - JsPromiseState_Rejected = 0x2 + JsPromiseStatePending = 0x0, + JsPromiseStateFulfilled = 0x1, + JsPromiseStateRejected = 0x2 } JsPromiseState; /// diff --git a/lib/Jsrt/Jsrt.cpp b/lib/Jsrt/Jsrt.cpp index 4fe917ef2c7..51d261a31da 100644 --- a/lib/Jsrt/Jsrt.cpp +++ b/lib/Jsrt/Jsrt.cpp @@ -5120,7 +5120,7 @@ CHAKRA_API JsGetPromiseState(_In_ JsValueRef promise, _Out_ JsPromiseState *stat VALIDATE_INCOMING_REFERENCE(promise, scriptContext); PARAM_NOT_NULL(state); - *state = JsPromiseState_Pending; + *state = JsPromiseStatePending; if (!Js::JavascriptPromise::Is(promise)) { @@ -5133,11 +5133,11 @@ CHAKRA_API JsGetPromiseState(_In_ JsValueRef promise, _Out_ JsPromiseState *stat switch (status) { case Js::JavascriptPromise::PromiseStatus::PromiseStatusCode_HasRejection: - *state = JsPromiseState_Rejected; + *state = JsPromiseStateRejected; break; case Js::JavascriptPromise::PromiseStatus::PromiseStatusCode_HasResolution: - *state = JsPromiseState_Fulfilled; + *state = JsPromiseStateFulfilled; break; } @@ -5165,7 +5165,7 @@ CHAKRA_API JsGetPromiseResult(_In_ JsValueRef promise, _Out_ JsValueRef *result) if (jsResult == nullptr) { - return JsErrorInvalidArgument; + return JsErrorPromisePending; } *result = (JsValueRef)jsResult;