From 1f2676ec408be461c1c0f4190a3f8f6bf9bc2a81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Vouillon?= Date: Wed, 19 Jun 2024 11:06:29 +0200 Subject: [PATCH] Dom_html.html_entities: move error handling to the ML side --- lib/js_of_ocaml/dom_html.ml | 5 ++++- runtime/jslib_js_of_ocaml.js | 3 +-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/js_of_ocaml/dom_html.ml b/lib/js_of_ocaml/dom_html.ml index e2819856f7..a58215b441 100644 --- a/lib/js_of_ocaml/dom_html.ml +++ b/lib/js_of_ocaml/dom_html.ml @@ -27,7 +27,10 @@ let onIE = Js.to_bool (caml_js_on_ie ()) external html_escape : js_string t -> js_string t = "caml_js_html_escape" -external decode_html_entities : js_string t -> js_string t = "caml_js_html_entities" +external html_entities : js_string t -> js_string t opt = "caml_js_html_entities" + +let decode_html_entities s = + Js.Opt.get (html_entities s) (fun () -> failwith ("Invalid entity " ^ Js.to_string s)) class type cssStyleDeclaration = object method setProperty : diff --git a/runtime/jslib_js_of_ocaml.js b/runtime/jslib_js_of_ocaml.js index fa88452927..d54436c6bd 100644 --- a/runtime/jslib_js_of_ocaml.js +++ b/runtime/jslib_js_of_ocaml.js @@ -37,7 +37,6 @@ function caml_js_html_escape (s) { } //Provides: caml_js_html_entities -//Requires: caml_failwith function caml_js_html_entities(s) { var entity = /^&#?[0-9a-zA-Z]+;$/ if(s.match(entity)) @@ -49,7 +48,7 @@ function caml_js_html_entities(s) { return str; } else { - caml_failwith("Invalid entity " + s); + return null; } }