sig
  type jsval
  type 'a active = {
    setter : string -> '-> 'a;
    getter : string -> '-> 'a;
  }
  class type jsobj =
    object
      method _false : SpiderCaml.jsobj
      method _true : SpiderCaml.jsobj
      method array : SpiderCaml.jsobj array -> SpiderCaml.jsobj
      method bool : bool -> SpiderCaml.jsobj
      method destroy_runtime : unit
      method eval : string -> SpiderCaml.jsobj
      method float : float -> SpiderCaml.jsobj
      method get : string -> SpiderCaml.jsobj
      method get_bool : bool
      method get_float : float
      method get_idx : int -> SpiderCaml.jsobj
      method get_int : int
      method get_string : string
      method int : int -> SpiderCaml.jsobj
      method is_array : bool
      method is_bool : bool
      method is_float : bool
      method is_int : bool
      method is_null : bool
      method is_number : bool
      method is_object : bool
      method is_string : bool
      method is_void : bool
      method lambda :
        ?name:string ->
        (SpiderCaml.jsobj -> SpiderCaml.jsobj array -> SpiderCaml.jsobj) ->
        SpiderCaml.jsobj
      method new_child :
        ?proto:SpiderCaml.jsobj ->
        ?active:SpiderCaml.jsobj SpiderCaml.active ->
        unit -> SpiderCaml.jsobj
      method new_context :
        ?active:SpiderCaml.jsobj SpiderCaml.active ->
        unit -> SpiderCaml.jsobj
      method new_object :
        ?proto:SpiderCaml.jsobj ->
        ?active:SpiderCaml.jsobj SpiderCaml.active ->
        unit -> SpiderCaml.jsobj
      method new_object_gen :
        ?proto:SpiderCaml.jsobj ->
        ?parent:SpiderCaml.jsobj ->
        ?active:SpiderCaml.jsobj SpiderCaml.active ->
        unit -> SpiderCaml.jsobj
      method null : SpiderCaml.jsobj
      method set : string -> SpiderCaml.jsobj -> unit
      method set_idx : int -> SpiderCaml.jsobj -> unit
      method set_version : int -> unit
      method string : string -> SpiderCaml.jsobj
      method to_bool : bool
      method to_float : float
      method to_int : int
      method to_object : SpiderCaml.jsobj
      method to_string : string
      method v : SpiderCaml.jsval
      method version : int
      method void : SpiderCaml.jsobj
    end
  val new_global_obj :
    ?active:SpiderCaml.jsobj SpiderCaml.active -> unit -> SpiderCaml.jsobj
  val implementation_version : unit -> string
  module Error :
    sig
      type t = {
        message : string;
        filename : string option;
        line : string option;
        lineno : int;
        colno : int;
      }
      exception Message of SpiderCaml.Error.t
      exception RuntimeDestroyed
      exception InvalidRuntime
      exception InvalidType
    end
end