diff options
author | Rahul Sharma <rsconceptx@gmail.com> | 2016-10-04 23:57:36 +0530 |
---|---|---|
committer | Rahul Sharma <rsconceptx@gmail.com> | 2016-11-22 01:29:37 +0530 |
commit | 114c49111138325f7cf1dacbe9d25fdd035ede86 (patch) | |
tree | b535e703eb5f5f26785082efda94cf7be871bafd /components/script/dom/promise.rs | |
parent | 6cc1976cca808cac2069b241885a9c102ee7424d (diff) | |
download | servo-114c49111138325f7cf1dacbe9d25fdd035ede86.tar.gz servo-114c49111138325f7cf1dacbe9d25fdd035ede86.zip |
Initial work on job queues for service workers
Diffstat (limited to 'components/script/dom/promise.rs')
-rw-r--r-- | components/script/dom/promise.rs | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/components/script/dom/promise.rs b/components/script/dom/promise.rs index 81149f8e193..0afcfcba266 100644 --- a/components/script/dom/promise.rs +++ b/components/script/dom/promise.rs @@ -23,8 +23,8 @@ use js::conversions::ToJSValConvertible; use js::jsapi::{CallOriginalPromiseResolve, CallOriginalPromiseReject, CallOriginalPromiseThen}; use js::jsapi::{JSAutoCompartment, CallArgs, JS_GetFunctionObject, JS_NewFunction}; use js::jsapi::{JSContext, HandleValue, HandleObject, IsPromiseObject, GetFunctionNativeReserved}; -use js::jsapi::{JS_ClearPendingException, JSObject, AddRawValueRoot, RemoveRawValueRoot}; -use js::jsapi::{MutableHandleObject, NewPromiseObject, ResolvePromise, RejectPromise}; +use js::jsapi::{JS_ClearPendingException, JSObject, AddRawValueRoot, RemoveRawValueRoot, PromiseState}; +use js::jsapi::{MutableHandleObject, NewPromiseObject, ResolvePromise, RejectPromise, GetPromiseState}; use js::jsapi::{SetFunctionNativeReserved, NewFunctionWithReserved, AddPromiseReactions}; use js::jsval::{JSVal, UndefinedValue, ObjectValue, Int32Value}; use std::ptr; @@ -200,6 +200,15 @@ impl Promise { } #[allow(unsafe_code)] + pub fn is_settled(&self) -> bool { + let state = unsafe { GetPromiseState(self.promise_obj()) }; + match state { + PromiseState::Rejected | PromiseState::Fulfilled => true, + _ => false + } + } + + #[allow(unsafe_code)] fn promise_obj(&self) -> HandleObject { let obj = self.reflector().get_jsobject(); unsafe { |