Skip to content

Commit f175242

Browse files
authored
Merge pull request #797 from bushrat011899/wasm32_atomics
Fix `wasm32` with `atomics`
2 parents 1cf1433 + 65c31b3 commit f175242

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

.github/workflows/ci.yml

+5
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,11 @@ jobs:
133133
- name: Fast RNG
134134
run: wasm-pack test --node -- --features "js v4 fast-rng"
135135

136+
- name: +atomics
137+
env:
138+
RUSTFLAGS: '-C target-feature=+atomics'
139+
run: cargo check --target wasm32-unknown-unknown --features "$VERSION_FEATURES $DEP_FEATURES js"
140+
136141
- name: rng-getrandom
137142
env:
138143
RUSTFLAGS: '--cfg getrandom_backend="wasm_js"'

Cargo.toml

+6-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ v6 = ["atomic"]
6868
v7 = ["rng"]
6969
v8 = []
7070

71-
js = ["dep:wasm-bindgen"]
71+
js = ["dep:wasm-bindgen", "dep:js-sys"]
7272

7373
rng = ["dep:getrandom"]
7474
rng-getrandom = ["rng", "dep:getrandom", "uuid-rng-internal-lib", "uuid-rng-internal-lib/getrandom"]
@@ -173,6 +173,11 @@ version = "0.6"
173173
version = "0.2"
174174
optional = true
175175

176+
# Private
177+
[target.'cfg(all(target_arch = "wasm32", target_vendor = "unknown", target_os = "unknown", target_feature = "atomics"))'.dependencies.js-sys]
178+
version = "0.3"
179+
optional = true
180+
176181
[dev-dependencies.bincode]
177182
version = "1.0"
178183

src/rng.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,9 @@ mod imp {
244244
*/
245245

246246
use wasm_bindgen::{prelude::wasm_bindgen, JsValue};
247+
248+
#[cfg(target_feature = "atomics")]
249+
use core::convert::TryInto;
247250

248251
// Maximum buffer size allowed in `Crypto.getRandomValuesSize` is 65536 bytes.
249252
// See https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues
@@ -287,7 +290,7 @@ mod imp {
287290
return false;
288291
}
289292

290-
sub_buf.copy_to_uninit(chunk);
293+
sub_buf.copy_to(chunk);
291294
}
292295

293296
true

0 commit comments

Comments
 (0)