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;
}
}