Skip to content

Commit 91d6ae5

Browse files
committed
binding for Date.prototype.setTime()
1 parent c185897 commit 91d6ae5

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

src/js.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1066,6 +1066,13 @@ extern "C" {
10661066
#[wasm_bindgen(method, js_name = setSeconds)]
10671067
pub fn set_seconds(this: &Date, seconds: u32) -> f64;
10681068

1069+
/// The setTime() method sets the Date object to the time represented by a number of milliseconds
1070+
/// since January 1, 1970, 00:00:00 UTC.
1071+
///
1072+
/// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setTime
1073+
#[wasm_bindgen(method, js_name = setTime)]
1074+
pub fn set_time(this: &Date, time: f64) -> f64;
1075+
10691076
/// The toDateString() method returns the date portion of a Date object
10701077
/// in human readable form in American English.
10711078
///

tests/all/js_globals/Date.rs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -997,6 +997,44 @@ fn set_seconds() {
997997
.test()
998998
}
999999

1000+
#[test]
1001+
fn set_time() {
1002+
project()
1003+
.file(
1004+
"src/lib.rs",
1005+
r#"
1006+
#![feature(proc_macro, wasm_custom_section)]
1007+
1008+
extern crate wasm_bindgen;
1009+
use wasm_bindgen::prelude::*;
1010+
use wasm_bindgen::js::Date;
1011+
1012+
#[wasm_bindgen]
1013+
pub fn set_time(this: &Date, time: f64) -> f64 {
1014+
this.set_time(time)
1015+
}
1016+
"#,
1017+
)
1018+
.file(
1019+
"test.js",
1020+
r#"
1021+
import * as assert from "assert";
1022+
import * as wasm from "./out";
1023+
1024+
export function test() {
1025+
let event1 = new Date('July 1, 1999');
1026+
let event2 = new Date();
1027+
1028+
let eventMsFromUnixEpoch = wasm.set_time(event2, event1.getTime());
1029+
1030+
assert.equal(eventMsFromUnixEpoch, 930754800000);
1031+
assert.equal(event1.valueOf(), event2.getTime());
1032+
}
1033+
"#,
1034+
)
1035+
.test()
1036+
}
1037+
10001038
#[test]
10011039
fn to_date_string() {
10021040
project()

0 commit comments

Comments
 (0)