diff --git a/crates/js-sys/src/lib.rs b/crates/js-sys/src/lib.rs index bed5d2e7..67cff622 100644 --- a/crates/js-sys/src/lib.rs +++ b/crates/js-sys/src/lib.rs @@ -683,8 +683,7 @@ extern "C" { // Float32Array #[wasm_bindgen] extern "C" { - // TODO Uncomment this once TypedArray is added: - // #[wasm_bindgen(extends = Object, extends = TypedArray)] + #[wasm_bindgen(extends = Object)] #[derive(Clone, Debug)] pub type Float32Array; @@ -737,8 +736,7 @@ extern "C" { // Float64Array #[wasm_bindgen] extern "C" { - // TODO Uncomment this once TypedArray is added: - // #[wasm_bindgen(extends = Object, extends = TypedArray)] + #[wasm_bindgen(extends = Object)] #[derive(Clone, Debug)] pub type Float64Array; @@ -914,6 +912,7 @@ extern { // Int8Array #[wasm_bindgen] extern "C" { + #[wasm_bindgen(extends = Object)] #[derive(Clone, Debug)] pub type Int8Array; @@ -966,6 +965,7 @@ extern "C" { // Int16Array #[wasm_bindgen] extern "C" { + #[wasm_bindgen(extends = Object)] #[derive(Clone, Debug)] pub type Int16Array; @@ -1018,6 +1018,7 @@ extern "C" { // Int32Array #[wasm_bindgen] extern "C" { + #[wasm_bindgen(extends = Object)] #[derive(Clone, Debug)] pub type Int32Array; @@ -2539,6 +2540,7 @@ extern { // Uint8Array #[wasm_bindgen] extern "C" { + #[wasm_bindgen(extends = Object)] #[derive(Clone, Debug)] pub type Uint8Array; @@ -2591,6 +2593,7 @@ extern "C" { // Uint8ClampedArray #[wasm_bindgen] extern "C" { + #[wasm_bindgen(extends = Object)] #[derive(Clone, Debug)] pub type Uint8ClampedArray; @@ -2645,6 +2648,7 @@ extern "C" { // Uint16Array #[wasm_bindgen] extern "C" { + #[wasm_bindgen(extends = Object)] #[derive(Clone, Debug)] pub type Uint16Array; @@ -2697,6 +2701,7 @@ extern "C" { // Uint32Array #[wasm_bindgen] extern "C" { + #[wasm_bindgen(extends = Object)] #[derive(Clone, Debug)] pub type Uint32Array; diff --git a/crates/js-sys/tests/wasm/TypedArray.rs b/crates/js-sys/tests/wasm/TypedArray.rs index e3b6292a..5c1e88fc 100644 --- a/crates/js-sys/tests/wasm/TypedArray.rs +++ b/crates/js-sys/tests/wasm/TypedArray.rs @@ -1,5 +1,6 @@ use wasm_bindgen::prelude::*; use wasm_bindgen_test::*; +use wasm_bindgen::JsCast; use js_sys::*; macro_rules! each { @@ -16,6 +17,19 @@ macro_rules! each { ) } +macro_rules! test_inheritence { + ($arr:ident) => ({ + let arr = $arr::new(&JsValue::undefined()); + assert!(arr.is_instance_of::<$arr>()); + let _: &Object = arr.as_ref(); + assert!(arr.is_instance_of::()); + }) +} +#[wasm_bindgen_test] +fn inheritence() { + each!(test_inheritence); +} + macro_rules! test_undefined { ($arr:ident) => ({ let arr = $arr::new(&JsValue::undefined());