Skip to content

Commit 96bb9e6

Browse files
vouillonhhugo
authored andcommitted
No longer use physical equality to compare JavaScript values
1 parent 8e14515 commit 96bb9e6

File tree

7 files changed

+14
-14
lines changed

7 files changed

+14
-14
lines changed

lib/js_of_ocaml/dom.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ class type event_listener_options = object
360360
end
361361

362362
let addEventListenerWithOptions (e : (< .. > as 'a) t) typ ?capture ?once ?passive h =
363-
if (Js.Unsafe.coerce e)##.addEventListener == Js.undefined
363+
if not (Js.Optdef.test (Js.Unsafe.coerce e)##.addEventListener)
364364
then
365365
let ev = (Js.string "on")##concat typ in
366366
let callback e = Js.Unsafe.call (h, e, [||]) in

lib/js_of_ocaml/dom_html.ml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2471,8 +2471,8 @@ let rec unsafeCreateElementEx ?_type ?name doc elt =
24712471
Js.Unsafe.coerce
24722472
(document##createElement (Js.string "<input name=\"x\">"))
24732473
in
2474-
el##.tagName##toLowerCase == Js.string "input"
2475-
&& el##.name == Js.string "x"
2474+
Js.equals el##.tagName##toLowerCase (Js.string "input")
2475+
&& Js.equals el##.name (Js.string "x")
24762476
with _ -> false
24772477
then `Extended
24782478
else `Standard;
@@ -2655,20 +2655,20 @@ let html_element : htmlElement t constr = Js.Unsafe.global##._HTMLElement
26552655

26562656
module CoerceTo = struct
26572657
let element : #Dom.node Js.t -> element Js.t Js.opt =
2658-
if def html_element == undefined
2658+
if not (Js.Optdef.test (def html_element))
26592659
then
26602660
(* ie < 9 does not have HTMLElement: we have to cheat to check
26612661
that something is an html element *)
26622662
fun e ->
2663-
if def (Js.Unsafe.coerce e)##.innerHTML == undefined
2663+
if not (Js.Optdef.test (def (Js.Unsafe.coerce e)##.innerHTML))
26642664
then Js.null
26652665
else Js.some (Js.Unsafe.coerce e)
26662666
else
26672667
fun e ->
26682668
if Js.instanceof e html_element then Js.some (Js.Unsafe.coerce e) else Js.null
26692669

26702670
let unsafeCoerce tag (e : #element t) =
2671-
if e##.tagName##toLowerCase == Js.string tag
2671+
if Js.equals e##.tagName##toLowerCase (Js.string tag)
26722672
then Js.some (Js.Unsafe.coerce e)
26732673
else Js.null
26742674

@@ -2795,7 +2795,7 @@ module CoerceTo = struct
27952795
let video e = unsafeCoerce "video" e
27962796

27972797
let unsafeCoerceEvent constr (ev : #event t) =
2798-
if def constr != undefined && Js.instanceof ev constr
2798+
if Js.Optdef.test (def constr) && Js.instanceof ev constr
27992799
then Js.some (Js.Unsafe.coerce ev)
28002800
else Js.null
28012801

lib/js_of_ocaml/dom_svg.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2054,7 +2054,7 @@ module CoerceTo = struct
20542054
if Js.instanceof e svg_element then Js.some (Js.Unsafe.coerce e) else Js.null
20552055

20562056
let unsafeCoerce (e : #element t) tag =
2057-
if e##.tagName##toLowerCase == Js.string tag
2057+
if Js.equals e##.tagName##toLowerCase (Js.string tag)
20582058
then Js.some (Js.Unsafe.coerce e)
20592059
else Js.null
20602060

lib/js_of_ocaml/file.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ module CoerceTo = struct
123123
if instanceof e blob_constr then Js.some (Unsafe.coerce e : #blob t) else Js.null
124124

125125
let string (e : file_any) =
126-
if typeof e == string "string"
126+
if Js.equals (typeof e) (string "string")
127127
then Js.some (Unsafe.coerce e : js_string t)
128128
else Js.null
129129

lib/js_of_ocaml/json.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ let json : json Js.t = Unsafe.global##._JSON
3636

3737
let input_reviver =
3838
let reviver _this _key (value : Unsafe.any) : Obj.t =
39-
if typeof value == string "string"
39+
if Js.equals (typeof value) (string "string")
4040
then Obj.repr (to_bytestring (Unsafe.coerce value))
4141
else if instanceof value Js.array_empty
4242
&& (Unsafe.coerce value)##.length == 4

lib/js_of_ocaml/url.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ module Current = struct
304304

305305
let arguments =
306306
decode_arguments_js_string
307-
(if l##.search##charAt 0 == Js.string "?"
307+
(if Js.equals (l##.search##charAt 0) (Js.string "?")
308308
then l##.search##slice_end 1
309309
else l##.search)
310310

lib/js_of_ocaml/worker.ml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,19 +58,19 @@ let worker = Unsafe.global##._Worker
5858
let create script = new%js worker (string script)
5959

6060
let import_scripts scripts : unit =
61-
if Unsafe.global##.importScripts == undefined
61+
if not (Js.Optdef.test Unsafe.global##.importScripts)
6262
then invalid_arg "Worker.import_scripts is undefined";
6363
Unsafe.fun_call
6464
Unsafe.global##.importScripts
6565
(Array.map (fun s -> Unsafe.inject (string s)) (Array.of_list scripts))
6666

6767
let set_onmessage handler =
68-
if Unsafe.global##.onmessage == undefined
68+
if not (Js.Optdef.test Unsafe.global##.onmessage)
6969
then invalid_arg "Worker.onmessage is undefined";
7070
let js_handler (ev : 'a messageEvent Js.t) = handler ev##.data in
7171
Unsafe.global##.onmessage := wrap_callback js_handler
7272

7373
let post_message msg =
74-
if Unsafe.global##.postMessage == undefined
74+
if not (Js.Optdef.test Unsafe.global##.postMessage)
7575
then invalid_arg "Worker.onmessage is undefined";
7676
Unsafe.global##postMessage msg

0 commit comments

Comments
 (0)