1
0
mirror of https://github.com/fluencelabs/wasm-bindgen synced 2025-07-20 06:31:57 +00:00
Files
.cargo
crates
backend
cli
cli-support
futures
js-sys
src
tests
wasm
headless.js
headless.rs
CHANGELOG.md
Cargo.toml
README.md
macro
macro-support
shared
test
test-macro
typescript
wasm-interpreter
web-sys
webidl
webidl-tests
examples
guide
releases
src
tests
.appveyor.yml
.eslintignore
.eslintrc
.gitattributes
.gitignore
.travis.yml
CHANGELOG.md
CONTRIBUTING.md
Cargo.toml
LICENSE-APACHE
LICENSE-MIT
README.md
build.rs
package.json
publish.rs
wasm-bindgen/crates/js-sys/tests/headless.rs

48 lines
1.1 KiB
Rust
Raw Normal View History

#![cfg(target_arch = "wasm32")]
2018-06-21 17:00:02 -04:00
extern crate wasm_bindgen_test;
extern crate wasm_bindgen;
extern crate js_sys;
use wasm_bindgen::prelude::*;
use wasm_bindgen_test::*;
use js_sys::Array;
wasm_bindgen_test_configure!(run_in_browser);
#[wasm_bindgen(module = "./tests/headless.js")]
extern {
fn is_array_values_supported()-> bool;
}
#[wasm_bindgen]
extern {
type ValuesIterator;
#[wasm_bindgen(method, structural)]
fn next(this: &ValuesIterator) -> IterNext;
type IterNext;
#[wasm_bindgen(method, getter, structural)]
fn value(this: &IterNext) -> JsValue;
#[wasm_bindgen(method, getter, structural)]
fn done(this: &IterNext) -> bool;
}
#[wasm_bindgen_test]
fn array_iterator_values() {
if !is_array_values_supported() {
return
}
let array = Array::new();
array.push(&8.into());
array.push(&3.into());
array.push(&2.into());
let iter = ValuesIterator::from(JsValue::from(array.values()));
assert_eq!(iter.next().value(), 8);
assert_eq!(iter.next().value(), 3);
assert_eq!(iter.next().value(), 2);
assert!(iter.next().done());
}