Js sys once over (#550)

* js-sys: Return `f64` instead of `Number`

* js-sys: remove trailing whitespace

* js-sys: Ensure that all imported types derive Clone and Debug

* js-sys: Imported functions should always take JS object arguments by-ref
This commit is contained in:
Nick Fitzgerald
2018-07-25 14:33:44 -07:00
committed by Alex Crichton
parent 93933f033f
commit 61fc8d2567
18 changed files with 216 additions and 184 deletions

View File

@ -5,7 +5,7 @@ use js_sys::*;
macro_rules! js_array {
($($e:expr),*) => ({
let __x = Array::new();
$(__x.push(JsValue::from($e));)*
$(__x.push(&JsValue::from($e));)*
__x
})
}
@ -39,10 +39,10 @@ fn filter() {
#[wasm_bindgen_test]
fn index_of() {
let chars = js_array!["a", "c", "x", "n"];
assert_eq!(chars.index_of("x".into(), 0), 2);
assert_eq!(chars.index_of("z".into(), 0), -1);
assert_eq!(chars.index_of("x".into(), -3), 2);
assert_eq!(chars.index_of("z".into(), -2), -1);
assert_eq!(chars.index_of(&"x".into(), 0), 2);
assert_eq!(chars.index_of(&"z".into(), 0), -1);
assert_eq!(chars.index_of(&"x".into(), -3), 2);
assert_eq!(chars.index_of(&"z".into(), -2), -1);
}
#[wasm_bindgen_test]
@ -75,10 +75,10 @@ fn some() {
#[wasm_bindgen_test]
fn last_index_of() {
let characters = js_array!["a", "x", "c", "x", "n"];
assert_eq!(characters.last_index_of("x".into(), 5), 3);
assert_eq!(characters.last_index_of("z".into(), 5), -1);
assert_eq!(characters.last_index_of("x".into(), 2), 1);
assert_eq!(characters.last_index_of("x".into(), 0), -1);
assert_eq!(characters.last_index_of(&"x".into(), 5), 3);
assert_eq!(characters.last_index_of(&"z".into(), 5), -1);
assert_eq!(characters.last_index_of(&"x".into(), 2), 1);
assert_eq!(characters.last_index_of(&"x".into(), 0), -1);
}
#[wasm_bindgen_test]
@ -99,7 +99,7 @@ fn slice() {
#[wasm_bindgen_test]
fn fill() {
let characters = js_array!["a", "c", "x", "n", 1, "8"];
let subset = characters.fill(0.into(), 0, 3);
let subset = characters.fill(&0.into(), 0, 3);
assert_eq!(to_rust(&subset), array![0, 0, 0, "n", 1, "8"]);
}
@ -127,7 +127,7 @@ fn pop() {
#[wasm_bindgen_test]
fn push() {
let characters = js_array![8, 5, 4, 3, 1, 2];
let length = characters.push("a".into());
let length = characters.push(&"a".into());
assert_eq!(length, 7);
assert_eq!(to_rust(&characters)[6], "a");
}
@ -151,7 +151,7 @@ fn shift() {
#[wasm_bindgen_test]
fn unshift() {
let characters = js_array![8, 5, 4, 3, 1, 2];
let length = characters.unshift("abba".into());
let length = characters.unshift(&"abba".into());
assert_eq!(length, 7);
assert_eq!(to_rust(&characters)[0], "abba");
@ -166,9 +166,9 @@ fn to_string() {
#[wasm_bindgen_test]
fn includes() {
let characters = js_array![8, 5, 4, 3, 1, 2];
assert!(characters.includes(2.into(), 0));
assert!(!characters.includes(9.into(), 0));
assert!(!characters.includes(3.into(), 4));
assert!(characters.includes(&2.into(), 0));
assert!(!characters.includes(&9.into(), 0));
assert!(!characters.includes(&3.into(), 4));
}
#[wasm_bindgen_test]
@ -225,7 +225,7 @@ fn reduce() {
format!("{}{}", &ac.as_string().unwrap(), &cr.as_string().unwrap())
.into()
},
"".into(),
&"".into(),
);
assert_eq!(arr, "01234");
}
@ -238,7 +238,7 @@ fn reduce_right() {
format!("{}{}", &ac.as_string().unwrap(), &cr.as_string().unwrap())
.into()
},
"".into(),
&"".into(),
);
assert_eq!(arr, "43210");
}
@ -255,7 +255,7 @@ fn find_index() {
#[wasm_bindgen_test]
fn to_locale_string() {
let output = js_array![1, "a", Date::new("21 Dec 1997 14:12:00 UTC".into())]
let output = js_array![1, "a", Date::new(&"21 Dec 1997 14:12:00 UTC".into())]
.to_locale_string(&"en".into(), &JsValue::undefined());
assert!(String::from(output).len() > 0);
}

View File

@ -11,8 +11,8 @@ fn new() {
#[wasm_bindgen_test]
fn is_view() {
let x = Uint8Array::new(JsValue::from(42));
assert!(ArrayBuffer::is_view(JsValue::from(x)));
let x = Uint8Array::new(&JsValue::from(42));
assert!(ArrayBuffer::is_view(&JsValue::from(x)));
}
#[test]

View File

@ -5,13 +5,13 @@ use js_sys::*;
#[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));
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 new_array = Array::from(&array.keys().into());
let mut result = Vec::new();
new_array.for_each(&mut |i, _, _| result.push(i.as_f64().unwrap()));
@ -21,13 +21,13 @@ fn keys() {
#[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));
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());
let new_array = Array::from(&array.entries().into());
new_array.for_each(&mut |a, i, _| {
assert!(a.is_object());

View File

@ -4,10 +4,10 @@ use js_sys::*;
#[wasm_bindgen_test]
fn new_undefined() {
assert_eq!(Boolean::new(JsValue::undefined()).value_of(), false);
assert_eq!(Boolean::new(&JsValue::undefined()).value_of(), false);
}
#[wasm_bindgen_test]
fn new_truely() {
assert_eq!(Boolean::new(JsValue::from("foo")).value_of(), true);
assert_eq!(Boolean::new(&JsValue::from("foo")).value_of(), true);
}

View File

@ -4,7 +4,7 @@ use js_sys::*;
#[wasm_bindgen_test]
fn test() {
let bytes = Int8Array::new(JsValue::from(10));
let bytes = Int8Array::new(&JsValue::from(10));
// TODO: figure out how to do `bytes[2] = 2`
bytes.subarray(2, 3).fill(2, 0, 1);

View File

@ -4,20 +4,20 @@ use js_sys::*;
#[wasm_bindgen_test]
fn get_date() {
let date = Date::new("August 19, 1975 23:15:30".into());
let date = Date::new(&"August 19, 1975 23:15:30".into());
assert_eq!(date.get_date(), 19);
}
#[wasm_bindgen_test]
fn get_day() {
let date = Date::new("August 19, 1975 23:15:30".into());
let date = Date::new(&"August 19, 1975 23:15:30".into());
assert_eq!(date.get_day(), 2);
}
#[wasm_bindgen_test]
fn get_full_year() {
let date = Date::new("July 20, 1969 00:20:18".into());
let abbr = Date::new("Thu, 06 Sep 12 00:00:00".into());
let date = Date::new(&"July 20, 1969 00:20:18".into());
let abbr = Date::new(&"Thu, 06 Sep 12 00:00:00".into());
assert_eq!(date.get_full_year(), 1969);
assert_eq!(abbr.get_full_year(), 2012);
@ -25,14 +25,14 @@ fn get_full_year() {
#[wasm_bindgen_test]
fn get_hours() {
let date = Date::new("March 13, 08 04:20".into());
let date = Date::new(&"March 13, 08 04:20".into());
assert_eq!(date.get_hours(), 4);
}
#[wasm_bindgen_test]
fn get_milliseconds() {
let date = Date::new("July 20, 69 00:20:18".into());
let ms = Date::new("July 20, 69 00:20:18:123".into());
let date = Date::new(&"July 20, 69 00:20:18".into());
let ms = Date::new(&"July 20, 69 00:20:18:123".into());
assert_eq!(date.get_milliseconds(), 0);
assert_eq!(ms.get_milliseconds(), 123);
@ -40,51 +40,51 @@ fn get_milliseconds() {
#[wasm_bindgen_test]
fn get_minutes() {
let date = Date::new("March 13, 08 04:20".into());
let date = Date::new(&"March 13, 08 04:20".into());
assert_eq!(date.get_minutes(), 20);
}
#[wasm_bindgen_test]
fn get_month() {
let date = Date::new("July 20, 69 00:20:18".into());
let date = Date::new(&"July 20, 69 00:20:18".into());
assert_eq!(date.get_month(), 6);
}
#[wasm_bindgen_test]
fn get_seconds() {
let date = Date::new("July 20, 69 00:20:18".into());
let date = Date::new(&"July 20, 69 00:20:18".into());
assert_eq!(date.get_seconds(), 18);
}
#[wasm_bindgen_test]
fn get_time() {
let date = Date::new("July 20, 69 00:20:18 GMT+00:00".into());
let date = Date::new(&"July 20, 69 00:20:18 GMT+00:00".into());
assert_eq!(date.get_time(), -14254782000.0);
}
#[wasm_bindgen_test]
fn get_timezone_offset() {
let date1 = Date::new("August 19, 1975 23:15:30 GMT+07:00".into());
let date2 = Date::new("August 19, 1975 23:15:30 GMT-02:00".into());
let date1 = Date::new(&"August 19, 1975 23:15:30 GMT+07:00".into());
let date2 = Date::new(&"August 19, 1975 23:15:30 GMT-02:00".into());
assert_eq!(date1.get_timezone_offset(), date2.get_timezone_offset());
}
#[wasm_bindgen_test]
fn get_utc_date() {
let date1 = Date::new("August 19, 1975 23:15:30 GMT+11:00".into());
let date2 = Date::new("August 19, 1975 23:15:30 GMT-11:00".into());
let date1 = Date::new(&"August 19, 1975 23:15:30 GMT+11:00".into());
let date2 = Date::new(&"August 19, 1975 23:15:30 GMT-11:00".into());
assert_eq!(date1.get_utc_date(), 19);
assert_eq!(date2.get_utc_date(), 20);
}
#[wasm_bindgen_test]
fn get_utc_day() {
let date1 = Date::new("August 19, 1975 23:15:30 GMT+11:00".into());
let date2 = Date::new("August 19, 1975 23:15:30 GMT-11:00".into());
let date1 = Date::new(&"August 19, 1975 23:15:30 GMT+11:00".into());
let date2 = Date::new(&"August 19, 1975 23:15:30 GMT-11:00".into());
assert_eq!(date1.get_utc_day(), 2);
assert_eq!(date2.get_utc_day(), 3);
@ -92,16 +92,16 @@ fn get_utc_day() {
#[wasm_bindgen_test]
fn get_utc_full_year() {
let date1 = Date::new("December 31, 1975, 23:15:30 GMT+11:00".into());
let date2 = Date::new("December 31, 1975, 23:15:30 GMT-11:00".into());
let date1 = Date::new(&"December 31, 1975, 23:15:30 GMT+11:00".into());
let date2 = Date::new(&"December 31, 1975, 23:15:30 GMT-11:00".into());
assert_eq!(date1.get_utc_full_year(), 1975);
assert_eq!(date2.get_utc_full_year(), 1976);
}
#[wasm_bindgen_test]
fn get_utc_hours() {
let date1 = Date::new("December 31, 1975, 23:15:30 GMT+11:00".into());
let date2 = Date::new("December 31, 1975, 23:15:30 GMT-11:00".into());
let date1 = Date::new(&"December 31, 1975, 23:15:30 GMT+11:00".into());
let date2 = Date::new(&"December 31, 1975, 23:15:30 GMT-11:00".into());
assert_eq!(date1.get_utc_hours(), 12);
assert_eq!(date2.get_utc_hours(), 10);
@ -109,22 +109,22 @@ fn get_utc_hours() {
#[wasm_bindgen_test]
fn get_utc_milliseconds() {
let date = Date::new("2018-01-02T03:04:05.678Z".into());
let date = Date::new(&"2018-01-02T03:04:05.678Z".into());
assert_eq!(date.get_utc_milliseconds(), 678);
}
#[wasm_bindgen_test]
fn get_utc_minutes() {
let date1 = Date::new("1 January 2000 03:15:30 GMT+07:00".into());
let date2 = Date::new("1 January 2000 03:15:30 GMT+03:30".into());
let date1 = Date::new(&"1 January 2000 03:15:30 GMT+07:00".into());
let date2 = Date::new(&"1 January 2000 03:15:30 GMT+03:30".into());
assert_eq!(date1.get_utc_minutes(), 15);
assert_eq!(date2.get_utc_minutes(), 45);
}
#[wasm_bindgen_test]
fn get_utc_month() {
let date1 = Date::new("December 31, 1975, 23:15:30 GMT+11:00".into());
let date2 = Date::new("December 31, 1975, 23:15:30 GMT-11:00".into());
let date1 = Date::new(&"December 31, 1975, 23:15:30 GMT+11:00".into());
let date2 = Date::new(&"December 31, 1975, 23:15:30 GMT-11:00".into());
assert_eq!(date1.get_utc_month(), 11);
assert_eq!(date2.get_utc_month(), 0);
@ -132,14 +132,14 @@ fn get_utc_month() {
#[wasm_bindgen_test]
fn get_utc_seconds() {
let date = Date::new("July 20, 1969, 20:18:04 UTC".into());
let date = Date::new(&"July 20, 1969, 20:18:04 UTC".into());
assert_eq!(date.get_utc_seconds(), 4);
}
#[wasm_bindgen_test]
fn new() {
assert!(JsValue::from(Date::new(JsValue::undefined())).is_object());
assert!(JsValue::from(Date::new(&JsValue::undefined())).is_object());
}
#[wasm_bindgen_test]
@ -149,8 +149,8 @@ fn now() {
#[wasm_bindgen_test]
fn parse() {
let date = Date::parse("04 Dec 1995 00:12:00 GMT".into());
let zero = Date::parse("01 Jan 1970 00:00:00 GMT".into());
let date = Date::parse(&"04 Dec 1995 00:12:00 GMT".into());
let zero = Date::parse(&"01 Jan 1970 00:00:00 GMT".into());
assert_eq!(date, 818035920000.0);
assert_eq!(zero, 0.0);
@ -158,8 +158,8 @@ fn parse() {
#[wasm_bindgen_test]
fn set_date() {
let event1 = Date::new("August 19, 1975 23:15:30".into());
let event2 = Date::new("August 24, 1975 23:15:30".into());
let event1 = Date::new(&"August 19, 1975 23:15:30".into());
let event2 = Date::new(&"August 24, 1975 23:15:30".into());
let ms = event1.set_date(24);
@ -170,8 +170,8 @@ fn set_date() {
#[wasm_bindgen_test]
fn set_full_year() {
let event1 = Date::new("August 19, 1975 23:15:30".into());
let event2 = Date::new("August 19, 1976 23:15:30".into());
let event1 = Date::new(&"August 19, 1975 23:15:30".into());
let event2 = Date::new(&"August 19, 1976 23:15:30".into());
let ms = event1.set_full_year(1976);
@ -182,8 +182,8 @@ fn set_full_year() {
#[wasm_bindgen_test]
fn set_hours() {
let event1 = Date::new("August 19, 1975 23:15:30".into());
let event2 = Date::new("August 19, 1975 20:15:30".into());
let event1 = Date::new(&"August 19, 1975 23:15:30".into());
let event2 = Date::new(&"August 19, 1975 20:15:30".into());
let ms = event1.set_hours(20);
@ -194,7 +194,7 @@ fn set_hours() {
#[wasm_bindgen_test]
fn set_milliseconds() {
let event = Date::new("August 19, 1975 23:15:30".into());
let event = Date::new(&"August 19, 1975 23:15:30".into());
let ms = event.set_milliseconds(456);
@ -204,8 +204,8 @@ fn set_milliseconds() {
#[wasm_bindgen_test]
fn set_minutes() {
let event1 = Date::new("August 19, 1975 23:15:30".into());
let event2 = Date::new("August 19, 1975 23:45:30".into());
let event1 = Date::new(&"August 19, 1975 23:15:30".into());
let event2 = Date::new(&"August 19, 1975 23:45:30".into());
let ms = event1.set_minutes(45);
@ -216,8 +216,8 @@ fn set_minutes() {
#[wasm_bindgen_test]
fn set_month() {
let event1 = Date::new("August 19, 1975 23:15:30".into());
let event2 = Date::new("April 19, 1975 23:15:30".into());
let event1 = Date::new(&"August 19, 1975 23:15:30".into());
let event2 = Date::new(&"April 19, 1975 23:15:30".into());
let ms = event1.set_month(3);
@ -228,8 +228,8 @@ fn set_month() {
#[wasm_bindgen_test]
fn set_seconds() {
let event1 = Date::new("August 19, 1975 23:15:30".into());
let event2 = Date::new("August 19, 1975 23:15:42".into());
let event1 = Date::new(&"August 19, 1975 23:15:30".into());
let event2 = Date::new(&"August 19, 1975 23:15:42".into());
let ms = event1.set_seconds(42);
@ -240,8 +240,8 @@ fn set_seconds() {
#[wasm_bindgen_test]
fn set_time() {
let event1 = Date::new("July 1, 1999".into());
let event2 = Date::new(JsValue::undefined());
let event1 = Date::new(&"July 1, 1999".into());
let event2 = Date::new(&JsValue::undefined());
let ms = event2.set_time(event1.get_time());
@ -251,8 +251,8 @@ fn set_time() {
#[wasm_bindgen_test]
fn set_utc_date() {
let event1 = Date::new("August 19, 1975 23:15:30 GMT-3:00".into());
let event2 = Date::new("August 19, 1975 02:15:30 GMT".into());
let event1 = Date::new(&"August 19, 1975 23:15:30 GMT-3:00".into());
let event2 = Date::new(&"August 19, 1975 02:15:30 GMT".into());
let ms = event1.set_utc_date(19);
@ -263,8 +263,8 @@ fn set_utc_date() {
#[wasm_bindgen_test]
fn set_utc_full_year() {
let event1 = Date::new("December 31, 1975 23:15:30 GMT-3:00".into());
let event2 = Date::new("January 01, 1975 02:15:30 GMT".into());
let event1 = Date::new(&"December 31, 1975 23:15:30 GMT-3:00".into());
let event2 = Date::new(&"January 01, 1975 02:15:30 GMT".into());
let ms = event1.set_utc_full_year(1975);
@ -275,8 +275,8 @@ fn set_utc_full_year() {
#[wasm_bindgen_test]
fn set_utc_hours() {
let event1 = Date::new("August 19, 1975 23:15:30 GMT-3:00".into());
let event2 = Date::new("August 20, 1975 23:15:30 GMT".into());
let event1 = Date::new(&"August 19, 1975 23:15:30 GMT-3:00".into());
let event2 = Date::new(&"August 20, 1975 23:15:30 GMT".into());
let ms = event1.set_utc_hours(23);
@ -287,8 +287,8 @@ fn set_utc_hours() {
#[wasm_bindgen_test]
fn set_utc_milliseconds() {
let event1 = Date::new("August 19, 1975 23:15:30 GMT-3:00".into());
let event2 = Date::new("August 20, 1975 02:15:30.420Z GMT".into());
let event1 = Date::new(&"August 19, 1975 23:15:30 GMT-3:00".into());
let event2 = Date::new(&"August 20, 1975 02:15:30.420Z GMT".into());
let ms = event1.set_utc_milliseconds(420);
@ -299,8 +299,8 @@ fn set_utc_milliseconds() {
#[wasm_bindgen_test]
fn set_utc_minutes() {
let event1 = Date::new("December 31, 1975, 23:15:30 GMT-3:00".into());
let event2 = Date::new("January 01, 1976 02:25:30 GMT".into());
let event1 = Date::new(&"December 31, 1975, 23:15:30 GMT-3:00".into());
let event2 = Date::new(&"January 01, 1976 02:25:30 GMT".into());
let ms = event1.set_utc_minutes(25);
@ -311,8 +311,8 @@ fn set_utc_minutes() {
#[wasm_bindgen_test]
fn set_utc_month() {
let event1 = Date::new("December 31, 1975 23:15:30 GMT-3:00".into());
let event2 = Date::new("December 01, 1976 02:15:30 GMT".into());
let event1 = Date::new(&"December 31, 1975 23:15:30 GMT-3:00".into());
let event2 = Date::new(&"December 01, 1976 02:15:30 GMT".into());
let ms = event1.set_utc_month(11);
@ -323,8 +323,8 @@ fn set_utc_month() {
#[wasm_bindgen_test]
fn set_utc_seconds() {
let event1 = Date::new("December 31, 1975 23:15:30 GMT-3:00".into());
let event2 = Date::new("January 01, 1976 02:15:39 GMT".into());
let event1 = Date::new(&"December 31, 1975 23:15:30 GMT-3:00".into());
let event2 = Date::new(&"January 01, 1976 02:15:39 GMT".into());
let ms = event1.set_utc_seconds(39);
@ -335,63 +335,63 @@ fn set_utc_seconds() {
#[wasm_bindgen_test]
fn to_date_string() {
let date = Date::new("05 October 2011 14:48 UTC".into());
let date = Date::new(&"05 October 2011 14:48 UTC".into());
assert_eq!(JsValue::from(date.to_date_string()), "Wed Oct 05 2011");
}
#[wasm_bindgen_test]
fn to_iso_string() {
let date = Date::new("05 October 2011 14:48 UTC".into());
let date = Date::new(&"05 October 2011 14:48 UTC".into());
assert_eq!(JsValue::from(date.to_iso_string()), "2011-10-05T14:48:00.000Z");
}
#[wasm_bindgen_test]
fn to_json() {
let date = Date::new("August 19, 1975 23:15:30 UTC".into());
let date = Date::new(&"August 19, 1975 23:15:30 UTC".into());
assert_eq!(JsValue::from(date.to_json()), "1975-08-19T23:15:30.000Z");
}
#[wasm_bindgen_test]
fn to_locale_date_string() {
let date = Date::new("August 19, 1975 23:15:30 UTC".into());
let s = date.to_locale_date_string("de-DE".into(), JsValue::undefined());
let date = Date::new(&"August 19, 1975 23:15:30 UTC".into());
let s = date.to_locale_date_string(&"de-DE".into(), &JsValue::undefined());
assert!(s.length() > 0);
}
#[wasm_bindgen_test]
fn to_locale_string() {
let date = Date::new("August 19, 1975 23:15:30 UTC".into());
let s = date.to_locale_string("de-DE".into(), JsValue::undefined());
let date = Date::new(&"August 19, 1975 23:15:30 UTC".into());
let s = date.to_locale_string(&"de-DE".into(), &JsValue::undefined());
assert!(s.length() > 0);
}
#[wasm_bindgen_test]
fn to_locale_time_string() {
let date = Date::new("August 19, 1975 23:15:30".into());
let date = Date::new(&"August 19, 1975 23:15:30".into());
assert_eq!(
JsValue::from(date.to_locale_time_string("en-US".into())),
JsValue::from(date.to_locale_time_string(&"en-US".into())),
"11:15:30 PM",
);
}
#[wasm_bindgen_test]
fn to_string() {
let date = Date::new("August 19, 1975 23:15:30".into());
let date = Date::new(&"August 19, 1975 23:15:30".into());
let s = JsValue::from(date.to_string()).as_string().unwrap();
assert_eq!(&s[0..15], "Tue Aug 19 1975");
}
#[wasm_bindgen_test]
fn to_time_string() {
let date = Date::new("August 19, 1975 23:15:30".into());
let date = Date::new(&"August 19, 1975 23:15:30".into());
let s = JsValue::from(date.to_time_string()).as_string().unwrap();
assert_eq!(&s[0..8], "23:15:30");
}
#[wasm_bindgen_test]
fn to_utc_string() {
let date = Date::new("14 Jun 2017 00:00:00 PDT".into());
let date = Date::new(&"14 Jun 2017 00:00:00 PDT".into());
let s = JsValue::from(date.to_utc_string()).as_string().unwrap();
assert_eq!(s, "Wed, 14 Jun 2017 07:00:00 GMT");
}
@ -403,6 +403,6 @@ fn utc() {
#[wasm_bindgen_test]
fn value_of() {
let date = Date::new(Date::utc(2018f64, 6f64).into());
let date = Date::new(&Date::utc(2018f64, 6f64).into());
assert_eq!(date.value_of(), 1530403200000.0);
}

View File

@ -17,16 +17,16 @@ extern {
#[wasm_bindgen_test]
fn apply() {
let args = Array::new();
args.push(1.into());
args.push(2.into());
args.push(3.into());
args.push(&1.into());
args.push(&2.into());
args.push(&3.into());
assert_eq!(MAX.apply(&JsValue::undefined(), &args).unwrap(), 3);
let arr = JsValue::from(Array::new());
let args = Array::new();
args.push(1.into());
args.push(&1.into());
ARRAY_PROTOTYPE.push().apply(&arr, &args).unwrap();
assert_eq!(Array::from(arr).length(), 1);
assert_eq!(Array::from(&arr).length(), 1);
}
#[wasm_bindgen(module = "tests/wasm/Function.js", version = "*")]

View File

@ -5,8 +5,8 @@ use js_sys::*;
#[wasm_bindgen_test]
fn get_canonical_locales() {
let locales = Array::new();
locales.push("EN-US".into());
locales.push("Fr".into());
locales.push(&"EN-US".into());
locales.push(&"Fr".into());
let locales = JsValue::from(locales);
let canonical_locales = Intl::get_canonical_locales(&locales);
assert_eq!(canonical_locales.length(), 2);

View File

@ -50,7 +50,7 @@ fn is_safe_integer() {
#[wasm_bindgen_test]
fn new() {
let n = Number::new(JsValue::from(42));
let n = Number::new(&JsValue::from(42));
let v = JsValue::from(n);
assert!(v.is_object());
assert_eq!(Number::from(v).value_of(), 42.);
@ -58,17 +58,17 @@ fn new() {
#[wasm_bindgen_test]
fn parse_int_float() {
assert_eq!(Number::parse_int("42", 10).value_of(), 42.);
assert_eq!(Number::parse_int("42", 16).value_of(), 66.); // 0x42 == 66
assert!(Number::parse_int("invalid int", 10).value_of().is_nan());
assert_eq!(Number::parse_int("42", 10), 42.);
assert_eq!(Number::parse_int("42", 16), 66.); // 0x42 == 66
assert!(Number::parse_int("invalid int", 10).is_nan());
assert_eq!(Number::parse_float("123456.789").value_of(), 123456.789);
assert!(Number::parse_float("invalid float").value_of().is_nan());
assert_eq!(Number::parse_float("123456.789"), 123456.789);
assert!(Number::parse_float("invalid float").is_nan());
}
#[wasm_bindgen_test]
fn to_locale_string() {
let number = Number::new(1234.45.into());
let number = Number::new(&1234.45.into());
assert_eq!(number.to_locale_string("en-US"), "1,234.45");
// TODO: these tests seems to be system dependent, disable for now
// assert_eq!(wasm.to_locale_string(number, "de-DE"), "1,234.45");
@ -77,30 +77,30 @@ fn to_locale_string() {
#[wasm_bindgen_test]
fn to_precision() {
assert_eq!(Number::new(0.1.into()).to_precision(3).unwrap(), "0.100");
assert!(Number::new(10.into()).to_precision(101).is_err());
assert_eq!(Number::new(&0.1.into()).to_precision(3).unwrap(), "0.100");
assert!(Number::new(&10.into()).to_precision(101).is_err());
}
#[wasm_bindgen_test]
fn to_string() {
assert_eq!(Number::new(42.into()).to_string(10).unwrap(), "42");
assert_eq!(Number::new(233.into()).to_string(16).unwrap(), "e9");
assert!(Number::new(100.into()).to_string(100).is_err());
assert_eq!(Number::new(&42.into()).to_string(10).unwrap(), "42");
assert_eq!(Number::new(&233.into()).to_string(16).unwrap(), "e9");
assert!(Number::new(&100.into()).to_string(100).is_err());
}
#[wasm_bindgen_test]
fn value_of() {
assert_eq!(Number::new(42.into()).value_of(), 42.);
assert_eq!(Number::new(&42.into()).value_of(), 42.);
}
#[wasm_bindgen_test]
fn to_fixed() {
assert_eq!(Number::new(123.456.into()).to_fixed(2).unwrap(), "123.46");
assert!(Number::new(10.into()).to_fixed(101).is_err());
assert_eq!(Number::new(&123.456.into()).to_fixed(2).unwrap(), "123.46");
assert!(Number::new(&10.into()).to_fixed(101).is_err());
}
#[wasm_bindgen_test]
fn to_exponential() {
assert_eq!(Number::new(123456.into()).to_exponential(2).unwrap(), "1.23e+5");
assert!(Number::new(10.into()).to_exponential(101).is_err());
assert_eq!(Number::new(&123456.into()).to_exponential(2).unwrap(), "1.23e+5");
assert!(Number::new(&10.into()).to_exponential(101).is_err());
}

View File

@ -42,15 +42,15 @@ extern {
#[wasm_bindgen_test]
fn apply() {
let args = Array::new();
args.push(3.into());
args.push(&3.into());
assert_eq!(Reflect::apply(&get_char_at(), &"ponies".into(), &args).unwrap(), "i");
}
#[wasm_bindgen_test]
fn construct() {
let args = Array::new();
args.push(10.into());
args.push(10.into());
args.push(&10.into());
args.push(&10.into());
let instance = Reflect::construct(&RECTANGLE_CLASS, &args);
assert_eq!(Rectangle::from(instance).x(), 10);
}
@ -58,8 +58,8 @@ fn construct() {
#[wasm_bindgen_test]
fn construct_with_new_target() {
let args = Array::new();
args.push(10.into());
args.push(10.into());
args.push(&10.into());
args.push(&10.into());
let instance = Reflect::construct_with_new_target(
&RECTANGLE_CLASS,
&args,
@ -86,10 +86,10 @@ fn delete_property() {
assert!(r.x_jsval().is_undefined());
let array = Array::new();
array.push(1.into());
array.push(&1.into());
let obj = Object::from(JsValue::from(array));
Reflect::delete_property(&obj, &0.into());
let array = Array::from(JsValue::from(obj));
let array = Array::from(&JsValue::from(obj));
assert!(array.length() == 1);
array.for_each(&mut |x, _, _| assert!(x.is_undefined()));
}

View File

@ -22,7 +22,7 @@ fn entries() {
let iter = GenericIterator::from(JsValue::from(s.entries()));
let obj = iter.next();
assert!(!obj.done());
let array = Array::from(obj.value());
let array = Array::from(&obj.value());
assert_eq!(array.length(), 2);
array.for_each(&mut |a, _, _| {
assert_eq!(a, 1);

View File

@ -18,7 +18,7 @@ macro_rules! each {
macro_rules! test_undefined {
($arr:ident) => ({
let arr = $arr::new(JsValue::undefined());
let arr = $arr::new(&JsValue::undefined());
assert_eq!(arr.length(), 0);
assert_eq!(arr.byte_length(), 0);
assert_eq!(arr.byte_offset(), 0);
@ -32,7 +32,7 @@ fn new_undefined() {
macro_rules! test_length {
($arr:ident) => ({
let arr = $arr::new(4.into());
let arr = $arr::new(&4.into());
assert_eq!(arr.length(), 4);
assert!(arr.byte_length() != 0);
assert_eq!(arr.byte_offset(), 0);
@ -46,7 +46,7 @@ fn new_length() {
macro_rules! test_subarray {
($arr:ident) => ({
assert_eq!($arr::new(4.into()).subarray(0, 1).length(), 1);
assert_eq!($arr::new(&4.into()).subarray(0, 1).length(), 1);
})
}
#[wasm_bindgen_test]
@ -56,7 +56,7 @@ fn new_subarray() {
macro_rules! test_fill {
($arr:ident) => ({
let arr = $arr::new(4.into());
let arr = $arr::new(&4.into());
arr.for_each(&mut |x, _, _| {
assert_eq!(x as f64, 0.0);
});

View File

@ -24,7 +24,7 @@ fn new() {
fn get_and_set() {
let map = WeakMap::new();
let key = some_key();
map.set(&key, "value".into());
map.set(&key, &"value".into());
assert_eq!(map.get(&key), "value");
assert_eq!(map.get(&Object::new()), JsValue::undefined());
assert_eq!(map.get(&some_key()), JsValue::undefined());
@ -34,7 +34,7 @@ fn get_and_set() {
fn has() {
let map = WeakMap::new();
let key = some_key();
map.set(&key, "value".into());
map.set(&key, &"value".into());
assert!(map.has(&key));
assert!(!map.has(&Object::new()));
assert!(!map.has(&some_key()));
@ -45,7 +45,7 @@ fn delete() {
let map = WeakMap::new();
let key = some_key();
assert!(!map.has(&key));
map.set(&key, "value".into());
map.set(&key, &"value".into());
assert!(map.has(&key));
map.delete(&key);
assert!(!map.has(&key));

View File

@ -3,7 +3,7 @@ use js_sys::*;
#[wasm_bindgen_test]
fn validate() {
assert!(!WebAssembly::validate(ArrayBuffer::new(42).into()).unwrap());
assert!(!WebAssembly::validate(&ArrayBuffer::new(42).into()).unwrap());
assert!(WebAssembly::validate(2.into()).is_err());
assert!(WebAssembly::validate(&2.into()).is_err());
}

0
crates/js-sys/tests/wasm/main.rs Normal file → Executable file
View File