Module Js.Unsafe

Unsafe Javascript operations

type top
type any = top t

Top type. Used for putting values of different types in a same array.

type any_js_array = any
val inject : 'a -> any

Coercion to top type.

val coerce : _ t -> _ t

Unsafe coercion between to Javascript objects.

val get : 'a -> 'b -> 'c

Get the value of an object property. The expression get o s returns the value of property s of object o.

val set : 'a -> 'b -> 'c -> unit

Set an object property. The expression set o s v set the property s of object o to value v.

val delete : 'a -> 'b -> unit

Delete an object property. The expression delete o s deletes property s of object o.

val call : 'a -> 'b -> any array -> 'c

Performs a Javascript function call. The expression call f o a calls the Javascript function f with the arguments given by the array a, and binding this to o.

val fun_call : 'a -> any array -> 'b

Performs a Javascript function call. The expression fun_call f a calls the Javascript function f with the arguments given by the array a.

val meth_call : 'a -> string -> any array -> 'b

Performs a Javascript method call. The expression meth_call o m a calls the Javascript method m of object o with the arguments given by the array a.

val new_obj : 'a -> any array -> 'b

Create a Javascript object. The expression new_obj c a creates a Javascript object with constructor c using the arguments given by the array a. Example: Js.new_obj (Js.Unsafe.variable "ArrayBuffer") [||]

val new_obj_arr : 'a -> any_js_array -> 'b

Same Create a Javascript object. The expression new_obj_arr c a creates a Javascript object with constructor c using the arguments given by the Javascript array a.

val obj : (string * any) array -> 'a

Creates a Javascript literal object. The expression obj a creates a Javascript object whose fields are given by the array a

val pure_expr : (unit -> 'a) -> 'a

Asserts that an expression is pure, and can therefore be optimized away by the compiler if unused.

val eval_string : string -> 'a

Evaluate Javascript code

val js_expr : string -> 'a

js_expr e will parse the JavaScript expression e if e is available at compile time or will fallback to a runtime evaluation. See eval_string

val pure_js_expr : string -> 'a

pure_js_expr str behaves like pure_expr (fun () -> js_expr str).

val global : < .. > t

Javascript global object

val callback : ('a -> 'b) -> ('c, 'a -> 'b) meth_callback

Wrap an OCaml function so that it can be invoked from Javascript. Contrary to Js.wrap_callback, partial application and over-application are not supported: missing arguments will be set to undefined and extra arguments are lost.

val callback_with_arguments : (any_js_array -> 'b) -> ('c, any_js_array -> 'b) meth_callback

Wrap an OCaml function so that it can be invoked from Javascript. The first parameter of the function will be bound to the arguments JavaScript

val callback_with_arity : int -> ('a -> 'b) -> ('c, 'a -> 'b) meth_callback
val meth_callback : ('b -> 'a) -> ('b, 'a) meth_callback

Wrap an OCaml function so that it can be invoked from Javascript. The first parameter of the function will be bound to the value of the this implicit parameter. Contrary to Js.wrap_meth_callback, partial application and over-application is not supported: missing arguments will be set to undefined and extra arguments are lost.

val meth_callback_with_arguments : ('b -> any_js_array -> 'a) -> ('b, any_js_array -> 'a) meth_callback

Wrap an OCaml function so that it can be invoked from Javascript. The first parameter of the function will be bound to the value of the this implicit parameter. The second parameter of the function with be bound to the value of the arguments.

val meth_callback_with_arity : int -> ('b -> 'a) -> ('b, 'a) meth_callback
val equals : _ -> _ -> bool

Javascript == equality operator.

val strict_equals : _ -> _ -> bool

Javascript === equality operator.

Deprecated functions.

val variable : string -> 'a

Access a Javascript variable. variable "foo" will return the current value of variable foo.

  • deprecated [since 2.6] use Js.Unsafe.pure_js_expr instead