From 41a1883cf6f41a33d970328aca647167c6b22b8d Mon Sep 17 00:00:00 2001 From: Kyle Decot Date: Thu, 9 Nov 2023 08:40:07 -0500 Subject: [PATCH 1/5] Allow SharedArrayBuffer to be passed to DataView constructor --- crates/js-sys/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/js-sys/src/lib.rs b/crates/js-sys/src/lib.rs index 38f61f691fa..1f65a5c8ad9 100644 --- a/crates/js-sys/src/lib.rs +++ b/crates/js-sys/src/lib.rs @@ -1596,7 +1596,7 @@ extern "C" { /// /// [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView) #[wasm_bindgen(constructor)] - pub fn new(buffer: &ArrayBuffer, byteOffset: usize, byteLength: usize) -> DataView; + pub fn new(buffer: &JsValue, byteOffset: usize, byteLength: usize) -> DataView; /// The ArrayBuffer referenced by this view. Fixed at construction time and thus read only. /// From f8226392c1e29ecf406fed9efb2d6fa82e2ac28e Mon Sep 17 00:00:00 2001 From: Kyle Decot Date: Thu, 9 Nov 2023 13:13:08 -0500 Subject: [PATCH 2/5] Use separate constructor to maintain type safety --- crates/js-sys/src/lib.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/crates/js-sys/src/lib.rs b/crates/js-sys/src/lib.rs index 1f65a5c8ad9..32fec74d477 100644 --- a/crates/js-sys/src/lib.rs +++ b/crates/js-sys/src/lib.rs @@ -1596,7 +1596,15 @@ extern "C" { /// /// [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView) #[wasm_bindgen(constructor)] - pub fn new(buffer: &JsValue, byteOffset: usize, byteLength: usize) -> DataView; + pub fn new(buffer: &ArrayBuffer, byteOffset: usize, byteLength: usize) -> DataView; + + /// The `DataView` view provides a low-level interface for reading and + /// writing multiple number types in an `ArrayBuffer` irrespective of the + /// platform's endianness. + /// + /// [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView) + #[wasm_bindgen(constructor)] + pub fn new_with_shared_array_buffer(buffer: &SharedArrayBuffer, byteOffset: usize, byteLength: usize) -> DataView; /// The ArrayBuffer referenced by this view. Fixed at construction time and thus read only. /// From b9ac1df02cb70e3c6de0dc54b79afbae46becf9c Mon Sep 17 00:00:00 2001 From: Kyle Decot Date: Thu, 9 Nov 2023 13:14:47 -0500 Subject: [PATCH 3/5] Fix formatting --- crates/js-sys/src/lib.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/js-sys/src/lib.rs b/crates/js-sys/src/lib.rs index 32fec74d477..b18faf6cae0 100644 --- a/crates/js-sys/src/lib.rs +++ b/crates/js-sys/src/lib.rs @@ -1604,7 +1604,11 @@ extern "C" { /// /// [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView) #[wasm_bindgen(constructor)] - pub fn new_with_shared_array_buffer(buffer: &SharedArrayBuffer, byteOffset: usize, byteLength: usize) -> DataView; + pub fn new_with_shared_array_buffer( + buffer: &SharedArrayBuffer, + byteOffset: usize, + byteLength: usize, + ) -> DataView; /// The ArrayBuffer referenced by this view. Fixed at construction time and thus read only. /// From 22eaedf93e829c3a3f6130e81c03126c0669d6c4 Mon Sep 17 00:00:00 2001 From: Kyle Decot Date: Fri, 10 Nov 2023 09:05:27 -0500 Subject: [PATCH 4/5] Update CHANGELOG.md --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d0190f241f1..1cb4e2eb26b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ # `wasm-bindgen` Change Log -------------------------------------------------------------------------------- +## [Unreleased](https://github.com/rustwasm/wasm-bindgen/compare/0.2.88...main) + +### Added + +* Allow SharedArrayBuffer to be passed to DataView constructor + [#3695](https://github.com/rustwasm/wasm-bindgen/pull/3695) + ## [0.2.88](https://github.com/rustwasm/wasm-bindgen/compare/0.2.87...0.2.88) Released 2023-11-01 From 38901c49bbb4e8505c176ec5617afe5564fece12 Mon Sep 17 00:00:00 2001 From: daxpedda Date: Fri, 10 Nov 2023 15:22:32 +0100 Subject: [PATCH 5/5] Update wording --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1cb4e2eb26b..c74e9368c35 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ ### Added -* Allow SharedArrayBuffer to be passed to DataView constructor +* Add additional constructor to `DataView` for `SharedArrayBuffer`. [#3695](https://github.com/rustwasm/wasm-bindgen/pull/3695) ## [0.2.88](https://github.com/rustwasm/wasm-bindgen/compare/0.2.87...0.2.88)