diff --git a/components/script/dom/bindings/conversions.rs b/components/script/dom/bindings/conversions.rs index 15087fe5a0f..cd092814e0a 100644 --- a/components/script/dom/bindings/conversions.rs +++ b/components/script/dom/bindings/conversions.rs @@ -221,6 +221,7 @@ impl FromJSValConvertible for DOMString { /// Convert the given `JSString` to a `DOMString`. Fails if the string does not /// contain valid UTF-16. pub unsafe fn jsstring_to_str(cx: *mut JSContext, s: *mut JSString) -> DOMString { + assert!(!s.is_null()); let latin1 = JS_DeprecatedStringHasLatin1Chars(s); DOMString::from_string(if latin1 { latin1_to_string(cx, s) diff --git a/components/script/dom/console.rs b/components/script/dom/console.rs index f1e21b5897b..ae041dfa7da 100644 --- a/components/script/dom/console.rs +++ b/components/script/dom/console.rs @@ -73,6 +73,9 @@ where unsafe fn handle_value_to_string(cx: *mut jsapi::JSContext, value: HandleValue) -> DOMString { rooted!(in(cx) let mut js_string = std::ptr::null_mut::()); js_string.set(JS_ValueToSource(cx, value)); + if js_string.is_null() { + return "".into(); + } jsstring_to_str(cx, *js_string) }