From 042cfad5ce9a5b80e89fb3a5e7e6df916483f58a Mon Sep 17 00:00:00 2001 From: Roberto Huertas Date: Fri, 24 Aug 2018 01:25:43 +0200 Subject: [PATCH] feat(extends): extend promise --- crates/js-sys/src/lib.rs | 1 + crates/js-sys/tests/wasm/Promise.rs | 11 +++++++++++ crates/js-sys/tests/wasm/main.rs | 1 + 3 files changed, 13 insertions(+) create mode 100644 crates/js-sys/tests/wasm/Promise.rs diff --git a/crates/js-sys/src/lib.rs b/crates/js-sys/src/lib.rs index ff2362c4..a4aa02be 100644 --- a/crates/js-sys/src/lib.rs +++ b/crates/js-sys/src/lib.rs @@ -3783,6 +3783,7 @@ extern { /// an asynchronous operation, and its resulting value. /// /// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise + #[wasm_bindgen(extends = Object)] pub type Promise; /// Creates a new `Promise` with the provided executor `cb` diff --git a/crates/js-sys/tests/wasm/Promise.rs b/crates/js-sys/tests/wasm/Promise.rs new file mode 100644 index 00000000..a070b784 --- /dev/null +++ b/crates/js-sys/tests/wasm/Promise.rs @@ -0,0 +1,11 @@ +use wasm_bindgen_test::*; +use wasm_bindgen::JsCast; +use js_sys::*; + +#[wasm_bindgen_test] +fn promise_inheritance() { + let promise = Promise::new(&mut |_, _| ()); + assert!(promise.is_instance_of::()); + assert!(promise.is_instance_of::()); + let _: &Object = promise.as_ref(); +} diff --git a/crates/js-sys/tests/wasm/main.rs b/crates/js-sys/tests/wasm/main.rs index 285e2ae3..c72a998d 100755 --- a/crates/js-sys/tests/wasm/main.rs +++ b/crates/js-sys/tests/wasm/main.rs @@ -26,6 +26,7 @@ pub mod MapIterator; pub mod Math; pub mod Number; pub mod Object; +pub mod Promise; pub mod Proxy; pub mod RangeError; pub mod ReferenceError;