1
0
mirror of https://github.com/fluencelabs/wasm-bindgen synced 2025-03-16 18:20:51 +00:00

Merge pull request from brisad/add-more-bindings

Add bindings in Date and Number
This commit is contained in:
Sendil Kumar N 2018-07-05 19:51:58 +02:00 committed by GitHub
commit 52a00d5e16
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 74 additions and 0 deletions
src
tests/all/js_globals

@ -738,6 +738,12 @@ extern "C" {
extern "C" {
pub type Number;
/// The Number.isInteger() method determines whether the passed value is an integer.
///
/// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger
#[wasm_bindgen(static_method_of = Number, js_name = isInteger)]
pub fn is_integer(object: &Object) -> bool;
/// The `Number` JavaScript object is a wrapper object allowing
/// you to work with numerical values. A `Number` object is
/// created using the `Number()` constructor.
@ -794,6 +800,13 @@ extern "C" {
extern "C" {
pub type Date;
/// The getDate() method returns the day of the month for the
/// specified date according to local time.
///
/// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getDate
#[wasm_bindgen(method, js_name = getDate)]
pub fn get_date(this: &Date) -> Number;
/// 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().
///

@ -2,6 +2,40 @@
use super::project;
#[test]
fn get_date() {
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_date(this: &Date) -> Number {
this.get_date()
}
"#,
)
.file(
"test.js",
r#"
import * as assert from "assert";
import * as wasm from "./out";
export function test() {
let date = new Date(1993, 6, 28, 14, 39, 7);
assert.equal(wasm.get_date(date), 28);
}
"#,
)
.test()
}
#[test]
fn get_day() {
project()

@ -2,6 +2,33 @@
use super::project;
#[test]
fn is_integer() {
project()
.file("src/lib.rs", r#"
#![feature(proc_macro, wasm_custom_section)]
extern crate wasm_bindgen;
use wasm_bindgen::prelude::*;
use wasm_bindgen::js;
#[wasm_bindgen]
pub fn is_integer(obj: &js::Object) -> bool {
js::Number::is_integer(&obj)
}
"#)
.file("test.js", r#"
import * as assert from "assert";
import * as wasm from "./out";
export function test() {
assert.ok(wasm.is_integer(123));
assert.ok(!wasm.is_integer(123.45));
}
"#)
.test()
}
#[test]
fn new() {
project()