mirror of
https://github.com/rustwasm/wasm-bindgen.git
synced 2024-12-17 22:51:47 +03:00
62de3bad67
The JS iterator protocol uses duck typing and we don't need separate ArrayIterator and SetIterator etc types, we can have a single iterator type for the whole protocol.
53 lines
1.2 KiB
Rust
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()), "uno");
|
|
assert_eq!(Reflect::get(&next.value(), &1.into()), 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());
|
|
}
|