wasm-bindgen/crates/js-sys/tests/wasm/MapIterator.rs
Nick Fitzgerald e3d2ea2628 js-sys: Catch exceptions thrown in Reflect APIs
Proxies passed to Reflect APIs can throw for any of these operations and it is a
bit of a mess.
2018-09-25 14:30:26 -07:00

53 lines
1.2 KiB
Rust

use wasm_bindgen_test::*;
use js_sys::*;
#[wasm_bindgen_test]
fn entries() {
let map = Map::new();
map.set(&"uno".into(), &1.into());
let entries = map.entries();
let next = entries.next().unwrap();
assert_eq!(next.done(), false);
assert!(next.value().is_object());
assert_eq!(Reflect::get(&next.value(), &0.into()).unwrap(), "uno");
assert_eq!(Reflect::get(&next.value(), &1.into()).unwrap(), 1);
let next = entries.next().unwrap();
assert!(next.done());
assert!(next.value().is_undefined());
}
#[wasm_bindgen_test]
fn keys() {
let map = Map::new();
map.set(&"uno".into(), &1.into());
let keys = map.keys();
let next = keys.next().unwrap();
assert_eq!(next.done(), false);
assert_eq!(next.value(), "uno");
let next = keys.next().unwrap();
assert!(next.done());
assert!(next.value().is_undefined());
}
#[wasm_bindgen_test]
fn values() {
let map = Map::new();
map.set(&"uno".into(), &1.into());
let values = map.values();
let next = values.next().unwrap();
assert_eq!(next.done(), false);
assert_eq!(next.value(), 1);
let next = values.next().unwrap();
assert!(next.done());
assert!(next.value().is_undefined());
}