Merge pull request #385 from toVersus/js_date

bindings for date.getDay/getFullYear
This commit is contained in:
Marcin Baraniecki 2018-07-04 14:56:22 +02:00 committed by GitHub
commit 2694dd4dee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 83 additions and 0 deletions

View File

@ -755,6 +755,19 @@ extern "C" {
extern "C" { extern "C" {
pub type Date; pub type Date;
/// The getDay() method returns the day of the week for the specified date according to local time,
/// where 0 represents Sunday. For the day of the month see getDate().
///
/// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getDay
#[wasm_bindgen(method, js_name = getDay)]
pub fn get_day(this: &Date) -> Number;
/// The getFullYear() method returns the year of the specified date according to local time.
///
/// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getFullYear
#[wasm_bindgen(method, js_name = getFullYear)]
pub fn get_full_year(this: &Date) -> Number;
/// Creates a JavaScript Date instance that represents /// Creates a JavaScript Date instance that represents
/// a single moment in time. Date objects are based on a time value that is /// a single moment in time. Date objects are based on a time value that is
/// the number of milliseconds since 1 January 1970 UTC. /// the number of milliseconds since 1 January 1970 UTC.

View File

@ -2,6 +2,76 @@
use super::project; use super::project;
#[test]
fn get_day() {
project()
.file(
"src/lib.rs",
r#"
#![feature(proc_macro, wasm_custom_section)]
extern crate wasm_bindgen;
use wasm_bindgen::prelude::*;
use wasm_bindgen::js::{Date, Number};
#[wasm_bindgen]
pub fn get_day(this: &Date) -> Number {
this.get_day()
}
"#,
)
.file(
"test.ts",
r#"
import * as assert from "assert";
import * as wasm from "./out";
export function test() {
let date = new Date('August 19, 1975 23:15:30');
assert.equal(wasm.get_day(date), 2);
}
"#,
)
.test()
}
#[test]
fn get_full_year() {
project()
.file(
"src/lib.rs",
r#"
#![feature(proc_macro, wasm_custom_section)]
extern crate wasm_bindgen;
use wasm_bindgen::prelude::*;
use wasm_bindgen::js::{Date, Number};
#[wasm_bindgen]
pub fn get_full_year(this: &Date) -> Number {
this.get_full_year()
}
"#,
)
.file(
"test.ts",
r#"
import * as assert from "assert";
import * as wasm from "./out";
export function test() {
let date = new Date('July 20, 1969 00:20:18');
let abbrDate = new Date('Thu, 06 Sep 12 00:00:00');
assert.equal(wasm.get_full_year(date), 1969);
assert.equal(wasm.get_full_year(abbrDate), 2012);
}
"#,
)
.test()
}
#[test] #[test]
fn new() { fn new() {
project() project()