Add get/set for TypedArrays. (#2001)

* Add get/set for `TypedArray`s.

* Change names.

* Change name to @pauan suggestion.
This commit is contained in:
Richard Dodd (dodj)
2020-02-18 19:01:13 +00:00
committed by GitHub
parent b6190700c9
commit 7db01a7c7c
2 changed files with 21 additions and 0 deletions

View File

@ -4884,6 +4884,14 @@ macro_rules! arrays {
/// input values from a specified array.
#[wasm_bindgen(method)]
pub fn set(this: &$name, src: &JsValue, offset: u32);
/// Gets the value at `idx`, equivalent to the javascript `my_var = arr[idx]`.
#[wasm_bindgen(method, structural, indexing_getter)]
pub fn get_index(this: &$name, idx: u32) -> $ty;
/// Sets the value at `idx`, equivalent to the javascript `arr[idx] = value`.
#[wasm_bindgen(method, structural, indexing_setter)]
pub fn set_index(this: &$name, idx: u32, value: $ty);
}
impl $name {

View File

@ -89,6 +89,19 @@ fn new_fill() {
each!(test_fill);
}
macro_rules! test_get_set {
($arr:ident) => {{
let arr = $arr::new(&1.into());
assert_eq!(arr.get_index(0) as f64, 0 as f64);
arr.set_index(0, 1 as _);
assert_eq!(arr.get_index(0) as f64, 1 as f64);
}};
}
#[wasm_bindgen_test]
fn new_get_set() {
each!(test_get_set);
}
macro_rules! test_slice {
($arr:ident) => {{
let arr = $arr::new(&4.into());