Skip to content

Commit 15ce07d

Browse files
committed
wasm_js: remove IE 11 workaround
1 parent cddf861 commit 15ce07d

File tree

1 file changed

+17
-23
lines changed

1 file changed

+17
-23
lines changed

src/backends/wasm_js.rs

Lines changed: 17 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -83,29 +83,23 @@ fn getrandom_init() -> Result<RngSource, Error> {
8383
// Get the Web Crypto interface if we are in a browser, Web Worker, Deno,
8484
// or another environment that supports the Web Cryptography API. This
8585
// also allows for user-provided polyfills in unsupported environments.
86-
let crypto = match global.crypto() {
87-
// Standard Web Crypto interface
88-
c if c.is_object() => c,
89-
// Node.js CommonJS Crypto module
90-
_ if is_node(&global) => {
91-
// If module.require isn't a valid function, we are in an ES module.
92-
match Module::require_fn().and_then(JsCast::dyn_into::<Function>) {
93-
Ok(require_fn) => match require_fn.call1(&global, &JsValue::from_str("crypto")) {
94-
Ok(n) => return Ok(RngSource::Node(n.unchecked_into())),
95-
Err(_) => return Err(Error::NODE_CRYPTO),
96-
},
97-
Err(_) => return Err(Error::NODE_ES_MODULE),
98-
}
99-
}
100-
// IE 11 Workaround
101-
_ => match global.ms_crypto() {
102-
c if c.is_object() => c,
103-
_ => return Err(Error::WEB_CRYPTO),
104-
},
105-
};
106-
107-
let buf = Uint8Array::new_with_length(WEB_CRYPTO_BUFFER_SIZE.into());
108-
Ok(RngSource::Web(crypto, buf))
86+
let crypto = global.crypto();
87+
if crypto.is_object() {
88+
let buf = Uint8Array::new_with_length(WEB_CRYPTO_BUFFER_SIZE.into());
89+
Ok(RngSource::Web(crypto, buf))
90+
} else if is_node(&global) {
91+
// If module.require isn't a valid function, we are in an ES module.
92+
let require_fn = Module::require_fn()
93+
.and_then(JsCast::dyn_into::<Function>)
94+
.map_err(|_| Error::NODE_ES_MODULE)?;
95+
let n = require_fn
96+
.call1(&global, &JsValue::from_str("crypto"))
97+
.map_err(|_| Error::NODE_CRYPTO)?
98+
.unchecked_into();
99+
Ok(RngSource::Node(n))
100+
} else {
101+
Err(Error::WEB_CRYPTO)
102+
}
109103
}
110104

111105
// Taken from https://www.npmjs.com/package/browser-or-node

0 commit comments

Comments
 (0)