зеркало из https://github.com/mozilla/gecko-dev.git
bug 1366287 - Part 4: Add Rust tests for is_bigint. r=Ms2ger
This commit is contained in:
Родитель
5483d5185c
Коммит
2d8d3572ab
|
@ -11,6 +11,9 @@ bindgen = {version = "0.33.1", default-features = false} # disable `logging` to
|
|||
cmake = "0.1"
|
||||
glob = "0.2.11"
|
||||
|
||||
[[test]]
|
||||
name = "bigint"
|
||||
required-features = ["bigint"]
|
||||
[[test]]
|
||||
name = "callback"
|
||||
[[test]]
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
#[macro_use]
|
||||
extern crate js;
|
||||
|
||||
use js::jsapi::root::JS::CompartmentOptions;
|
||||
use js::jsapi::root::JS_NewGlobalObject;
|
||||
use js::jsapi::root::JS::OnNewGlobalHookOption;
|
||||
use js::jsval::UndefinedValue;
|
||||
use js::rust::{Runtime, SIMPLE_GLOBAL_CLASS};
|
||||
|
||||
use std::ptr;
|
||||
|
||||
#[test]
|
||||
fn is_bigint() {
|
||||
let rt = Runtime::new(false).unwrap();
|
||||
let cx = rt.cx();
|
||||
|
||||
unsafe {
|
||||
rooted!(in(cx) let global =
|
||||
JS_NewGlobalObject(cx, &SIMPLE_GLOBAL_CLASS, ptr::null_mut(),
|
||||
OnNewGlobalHookOption::FireOnNewGlobalHook,
|
||||
&CompartmentOptions::default())
|
||||
);
|
||||
|
||||
rooted!(in(cx) let mut rval = UndefinedValue());
|
||||
assert!(rt.evaluate_script(global.handle(), "BigInt(0)",
|
||||
"test", 1, rval.handle_mut()).is_ok());
|
||||
assert!(rval.is_bigint());
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn is_not_bigint() {
|
||||
let rt = Runtime::new(false).unwrap();
|
||||
let cx = rt.cx();
|
||||
|
||||
unsafe {
|
||||
rooted!(in(cx) let global =
|
||||
JS_NewGlobalObject(cx, &SIMPLE_GLOBAL_CLASS, ptr::null_mut(),
|
||||
OnNewGlobalHookOption::FireOnNewGlobalHook,
|
||||
&CompartmentOptions::default())
|
||||
);
|
||||
|
||||
rooted!(in(cx) let mut rval = UndefinedValue());
|
||||
assert!(rt.evaluate_script(global.handle(), "'not a BigInt'",
|
||||
"test", 1, rval.handle_mut()).is_ok());
|
||||
assert!(!rval.is_bigint());
|
||||
}
|
||||
}
|
Загрузка…
Ссылка в новой задаче