use crate::any::Any;
use crate::function::Function;
use alloc::vec::Vec;
pub struct Performance;
impl Performance {
#[inline]
pub fn now() -> f64 {
emlite::Val::global("performance")
.call("now", &[])
.as_::<f64>()
}
}
pub fn set_timeout(cb: &Function, millis: i32, extra_args: &[Any]) -> i32 {
let mut args: Vec<emlite::Val> = Vec::with_capacity(extra_args.len() + 2);
args.push(cb.clone().into());
args.push(millis.into());
args.extend(extra_args.iter().cloned());
emlite::Val::global("setTimeout").invoke(&args).as_::<i32>()
}
#[inline]
pub fn clear_timeout(id: i32) {
emlite::Val::global("clearTimeout").invoke(&[id.into()]);
}
pub fn set_interval(cb: &Function, millis: i32, extra_args: &[Any]) -> i32 {
let mut args: Vec<emlite::Val> = Vec::with_capacity(extra_args.len() + 2);
args.push(cb.clone().into());
args.push(millis.into());
args.extend(extra_args.iter().cloned());
emlite::Val::global("setInterval")
.invoke(&args)
.as_::<i32>()
}
#[inline]
pub fn clear_interval(id: i32) {
emlite::Val::global("clearInterval").invoke(&[id.into()]);
}