pub trait HostObject: 'static {
// Required methods
fn get(&self, ctx: &JSContext, prop: Atom) -> JSValue;
fn set(
&mut self,
ctx: &mut JSContext,
prop: Atom,
value: JSValue,
) -> Result<(), ()>;
fn call(&mut self, ctx: &mut JSContext, args: &[JSValue]) -> JSValue;
fn construct(&mut self, ctx: &mut JSContext, args: &[JSValue]) -> JSValue;
}