summaryrefslogtreecommitdiffstats
path: root/vendor/js-sys/tests/wasm/ArrayIterator.rs
blob: 87e67fd2c3a2995a33bf7815f2de858878f0aca7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
use js_sys::*;
use wasm_bindgen::JsValue;
use wasm_bindgen_test::*;

#[wasm_bindgen_test]
fn keys() {
    let array = Array::new();
    array.push(&JsValue::from(1));
    array.push(&JsValue::from(2));
    array.push(&JsValue::from(3));
    array.push(&JsValue::from(4));
    array.push(&JsValue::from(5));

    let new_array = Array::from(&array.keys().into());

    let mut result = Vec::new();
    new_array.for_each(&mut |i, _, _| result.push(i.as_f64().unwrap()));
    assert_eq!(result, [0.0, 1.0, 2.0, 3.0, 4.0]);
}

#[wasm_bindgen_test]
fn entries() {
    let array = Array::new();
    array.push(&JsValue::from(1));
    array.push(&JsValue::from(2));
    array.push(&JsValue::from(3));
    array.push(&JsValue::from(4));
    array.push(&JsValue::from(5));

    let new_array = Array::from(&array.entries().into());

    new_array.for_each(&mut |a, i, _| {
        assert!(a.is_object());
        let array: Array = a.into();
        assert_eq!(array.shift().as_f64().unwrap(), i as f64);
        assert_eq!(array.shift().as_f64().unwrap(), (i + 1) as f64);
        assert_eq!(array.length(), 0);
    });
}