Use FooValue() functions.

This commit is contained in:
Ms2ger 2014-03-08 20:12:16 +01:00
parent 9fbfb1909c
commit 84b0f45ed5
9 changed files with 72 additions and 87 deletions

View file

@ -7,8 +7,8 @@ use js::jsapi::{JS_ValueToUint64, JS_ValueToInt64};
use js::jsapi::{JS_ValueToECMAUint32, JS_ValueToECMAInt32};
use js::jsapi::{JS_ValueToUint16, JS_ValueToNumber, JS_ValueToBoolean};
use js::jsval::JSVal;
use js::{JSVAL_FALSE, JSVAL_TRUE, JSVAL_NULL};
use js::glue::{RUST_INT_TO_JSVAL, RUST_UINT_TO_JSVAL, RUST_JS_NumberValue};
use js::jsval::{NullValue, BooleanValue, Int32Value, UInt32Value};
use js::glue::RUST_JS_NumberValue;
use js::glue::{RUST_JSVAL_IS_NULL, RUST_JSVAL_IS_VOID};
pub trait JSValConvertible {
@ -31,11 +31,7 @@ unsafe fn convert_from_jsval<T: Default>(
impl JSValConvertible for bool {
fn to_jsval(&self) -> JSVal {
if *self {
JSVAL_TRUE
} else {
JSVAL_FALSE
}
BooleanValue(*self)
}
fn from_jsval(cx: *JSContext, val: JSVal) -> Result<bool, ()> {
@ -46,9 +42,7 @@ impl JSValConvertible for bool {
impl JSValConvertible for i8 {
fn to_jsval(&self) -> JSVal {
unsafe {
RUST_INT_TO_JSVAL(*self as i32)
}
Int32Value(*self as i32)
}
fn from_jsval(cx: *JSContext, val: JSVal) -> Result<i8, ()> {
@ -59,9 +53,7 @@ impl JSValConvertible for i8 {
impl JSValConvertible for u8 {
fn to_jsval(&self) -> JSVal {
unsafe {
RUST_INT_TO_JSVAL(*self as i32)
}
Int32Value(*self as i32)
}
fn from_jsval(cx: *JSContext, val: JSVal) -> Result<u8, ()> {
@ -72,9 +64,7 @@ impl JSValConvertible for u8 {
impl JSValConvertible for i16 {
fn to_jsval(&self) -> JSVal {
unsafe {
RUST_INT_TO_JSVAL(*self as i32)
}
Int32Value(*self as i32)
}
fn from_jsval(cx: *JSContext, val: JSVal) -> Result<i16, ()> {
@ -85,9 +75,7 @@ impl JSValConvertible for i16 {
impl JSValConvertible for u16 {
fn to_jsval(&self) -> JSVal {
unsafe {
RUST_UINT_TO_JSVAL(*self as u32)
}
Int32Value(*self as i32)
}
fn from_jsval(cx: *JSContext, val: JSVal) -> Result<u16, ()> {
@ -97,9 +85,7 @@ impl JSValConvertible for u16 {
impl JSValConvertible for i32 {
fn to_jsval(&self) -> JSVal {
unsafe {
RUST_INT_TO_JSVAL(*self)
}
Int32Value(*self)
}
fn from_jsval(cx: *JSContext, val: JSVal) -> Result<i32, ()> {
@ -109,9 +95,7 @@ impl JSValConvertible for i32 {
impl JSValConvertible for u32 {
fn to_jsval(&self) -> JSVal {
unsafe {
RUST_UINT_TO_JSVAL(*self)
}
UInt32Value(*self)
}
fn from_jsval(cx: *JSContext, val: JSVal) -> Result<u32, ()> {
@ -172,7 +156,7 @@ impl<T: JSValConvertible> JSValConvertible for Option<T> {
fn to_jsval(&self) -> JSVal {
match self {
&Some(ref value) => value.to_jsval(),
&None => JSVAL_NULL,
&None => NullValue(),
}
}