type value = | Undefined| Null| Bool of bool| Number of float| String of string| Object of obj
and obj = {id : int;mutable props : (string * value Stdlib.ref) list;kind : kind;mutable proto : obj option;
}and host = {class_name : string;get : string -> value;set : string -> value -> unit;show : unit -> string;
}and items = {mutable elements : value array;mutable length : int;
}and scope = {vars : (string, binding) Stdlib.Hashtbl.t;parent : scope option;
}and binding = {mutable value : value;constant : bool;
}val new_object : unit -> objval get_own : obj -> string -> value optionval set_own : obj -> string -> value -> unitval keys : obj -> string listval error : string -> string -> valueval throw : string -> string -> 'aval typeof : value -> stringval truthy : value -> boolval to_string : value -> stringval to_number : value -> floatval display : value -> stringval to_json : value -> string option