From 3f07f8e8661e7ebd451af3aef247212708083bc5 Mon Sep 17 00:00:00 2001 From: Simon Sapin Date: Sat, 11 Jul 2015 03:03:17 +0200 Subject: [PATCH] Replace surrogates in JS strings with U+FFFD instead of panicking. Fix #6519. See #6564. --- components/script/dom/bindings/conversions.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/components/script/dom/bindings/conversions.rs b/components/script/dom/bindings/conversions.rs index 9967b6cf9b7..1a090a1ef63 100644 --- a/components/script/dom/bindings/conversions.rs +++ b/components/script/dom/bindings/conversions.rs @@ -355,7 +355,9 @@ pub fn jsstring_to_str(cx: *mut JSContext, s: *mut JSString) -> DOMString { let char_vec = unsafe { slice::from_raw_parts(chars as *const u16, length as usize) }; - String::from_utf16(char_vec).unwrap() + // This is a wilful spec violation. + // See https://github.com/servo/servo/issues/6564 + String::from_utf16_lossy(char_vec) } }