mirror of
https://github.com/fluencelabs/wasm-bindgen
synced 2025-04-21 12:12:13 +00:00
Merge pull request #1447 from alexcrichton/js-sys-tweaks
Improve Boolean/Number/JsString consistency
This commit is contained in:
commit
529d0bd29a
@ -467,13 +467,14 @@ extern "C" {
|
|||||||
#[wasm_bindgen]
|
#[wasm_bindgen]
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#[wasm_bindgen(extends = Object)]
|
#[wasm_bindgen(extends = Object)]
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone)]
|
||||||
pub type Boolean;
|
pub type Boolean;
|
||||||
|
|
||||||
/// The `Boolean()` constructor creates an object wrapper for a boolean value.
|
/// The `Boolean()` constructor creates an object wrapper for a boolean value.
|
||||||
///
|
///
|
||||||
/// [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)
|
/// [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)
|
||||||
#[wasm_bindgen(constructor)]
|
#[wasm_bindgen(constructor)]
|
||||||
|
#[deprecated(note = "recommended to use `Boolean::from` instead")]
|
||||||
pub fn new(value: &JsValue) -> Boolean;
|
pub fn new(value: &JsValue) -> Boolean;
|
||||||
|
|
||||||
/// The `valueOf()` method returns the primitive value of a `Boolean` object.
|
/// The `valueOf()` method returns the primitive value of a `Boolean` object.
|
||||||
@ -483,6 +484,35 @@ extern "C" {
|
|||||||
pub fn value_of(this: &Boolean) -> bool;
|
pub fn value_of(this: &Boolean) -> bool;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl From<bool> for Boolean {
|
||||||
|
#[inline]
|
||||||
|
fn from(b: bool) -> Boolean {
|
||||||
|
Boolean::unchecked_from_js(JsValue::from(b))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<Boolean> for bool {
|
||||||
|
#[inline]
|
||||||
|
fn from(b: Boolean) -> bool {
|
||||||
|
b.value_of()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl PartialEq<bool> for Boolean {
|
||||||
|
#[inline]
|
||||||
|
fn eq(&self, other: &bool) -> bool {
|
||||||
|
self.value_of() == *other
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Eq for Boolean {}
|
||||||
|
|
||||||
|
impl fmt::Debug for Boolean {
|
||||||
|
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||||
|
self.value_of().fmt(f)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// DataView
|
// DataView
|
||||||
#[wasm_bindgen]
|
#[wasm_bindgen]
|
||||||
extern "C" {
|
extern "C" {
|
||||||
@ -1406,7 +1436,7 @@ extern "C" {
|
|||||||
#[wasm_bindgen]
|
#[wasm_bindgen]
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#[wasm_bindgen(extends = Object)]
|
#[wasm_bindgen(extends = Object)]
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone)]
|
||||||
pub type Number;
|
pub type Number;
|
||||||
|
|
||||||
/// The Number.isFinite() method determines whether the passed value is a finite number.
|
/// The Number.isFinite() method determines whether the passed value is a finite number.
|
||||||
@ -1441,6 +1471,7 @@ extern "C" {
|
|||||||
///
|
///
|
||||||
/// [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)
|
/// [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)
|
||||||
#[wasm_bindgen(constructor)]
|
#[wasm_bindgen(constructor)]
|
||||||
|
#[deprecated(note = "recommended to use `Number::from` instead")]
|
||||||
pub fn new(value: &JsValue) -> Number;
|
pub fn new(value: &JsValue) -> Number;
|
||||||
|
|
||||||
/// The Number.parseInt() method parses a string argument and returns an
|
/// The Number.parseInt() method parses a string argument and returns an
|
||||||
@ -1500,6 +1531,38 @@ extern "C" {
|
|||||||
pub fn value_of(this: &Number) -> f64;
|
pub fn value_of(this: &Number) -> f64;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
macro_rules! number_from {
|
||||||
|
($($x:ident)*) => ($(
|
||||||
|
impl From<$x> for Number {
|
||||||
|
#[inline]
|
||||||
|
fn from(x: $x) -> Number {
|
||||||
|
Number::unchecked_from_js(JsValue::from(x))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl PartialEq<$x> for Number {
|
||||||
|
#[inline]
|
||||||
|
fn eq(&self, other: &$x) -> bool {
|
||||||
|
self.value_of() == f64::from(*other)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)*)
|
||||||
|
}
|
||||||
|
number_from!(i8 u8 i16 u16 i32 u32 f32 f64);
|
||||||
|
|
||||||
|
impl From<Number> for f64 {
|
||||||
|
#[inline]
|
||||||
|
fn from(n: Number) -> f64 {
|
||||||
|
n.value_of()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl fmt::Debug for Number {
|
||||||
|
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||||
|
self.value_of().fmt(f)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Date.
|
// Date.
|
||||||
#[wasm_bindgen]
|
#[wasm_bindgen]
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user