use crate::{sys, JSClass, JSContext, JSContextGroup};
use std::ptr;
impl JSContextGroup {
pub fn new() -> Self {
Self::default()
}
pub fn new_context(&self) -> JSContext {
unsafe { JSContext::from_raw(sys::JSGlobalContextCreateInGroup(self.raw, ptr::null_mut())) }
}
pub fn new_context_with_class(&self, global_object_class: &JSClass) -> JSContext {
unsafe {
JSContext::from_raw(sys::JSGlobalContextCreateInGroup(
self.raw,
global_object_class.raw,
))
}
}
}
impl Default for JSContextGroup {
fn default() -> Self {
Self {
raw: unsafe { sys::JSContextGroupCreate() },
}
}
}
impl Drop for JSContextGroup {
fn drop(&mut self) {
unsafe { sys::JSContextGroupRelease(self.raw) }
}
}