`class type performanceEntry = object ... end`
`class type 'detail performanceMark = object ... end`
`class type 'detail performanceMeasure = object ... end`
`class type 'detail performanceMarkOptions = object ... end`
`class type 'detail performanceMeasureOptions = object ... end`
`class type performance = object ... end`
`val performance : performance Js.t`

`Window.performance`, the global `Performance` object.

`val is_supported : unit -> bool`

Whether the global `performance` object is defined.

`val mark : ?detail:'a -> ?startTime:Js.number_t -> performance Js.t -> Js.js_string Js.t -> 'a performanceMark Js.t`

Wrapper for `Performance.mark(name, options?)` taking labeled arguments.

`val makeMeasureOptions : ?detail:'a -> ?start:Js.js_string Js.t -> ?start_time:Js.number_t -> ?_end:Js.js_string Js.t -> ?end_time:Js.number_t -> ?duration:Js.number_t -> unit -> 'a performanceMeasureOptions Js.t`

Smart constructor for `performanceMeasureOptions`.

Raises `Invalid_argument` if both `?start` and `?start_time`, or both `?_end` and `?end_time`, are provided — they map to the same JavaScript field.