ArrayIterator.rs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. use js_sys::*;
  2. use wasm_bindgen::JsValue;
  3. use wasm_bindgen_test::*;
  4. #[wasm_bindgen_test]
  5. fn keys() {
  6. let array = Array::new();
  7. array.push(&JsValue::from(1));
  8. array.push(&JsValue::from(2));
  9. array.push(&JsValue::from(3));
  10. array.push(&JsValue::from(4));
  11. array.push(&JsValue::from(5));
  12. let new_array = Array::from(&array.keys().into());
  13. let mut result = Vec::new();
  14. new_array.for_each(&mut |i, _, _| result.push(i.as_f64().unwrap()));
  15. assert_eq!(result, [0.0, 1.0, 2.0, 3.0, 4.0]);
  16. }
  17. #[wasm_bindgen_test]
  18. fn entries() {
  19. let array = Array::new();
  20. array.push(&JsValue::from(1));
  21. array.push(&JsValue::from(2));
  22. array.push(&JsValue::from(3));
  23. array.push(&JsValue::from(4));
  24. array.push(&JsValue::from(5));
  25. let new_array = Array::from(&array.entries().into());
  26. new_array.for_each(&mut |a, i, _| {
  27. assert!(a.is_object());
  28. let array: Array = a.into();
  29. assert_eq!(array.shift().as_f64().unwrap(), i as f64);
  30. assert_eq!(array.shift().as_f64().unwrap(), (i + 1) as f64);
  31. assert_eq!(array.length(), 0);
  32. });
  33. }