diff --git a/components/script/dom/bindings/conversions.rs b/components/script/dom/bindings/conversions.rs index eed41d6f926..23105fa7810 100644 --- a/components/script/dom/bindings/conversions.rs +++ b/components/script/dom/bindings/conversions.rs @@ -394,8 +394,9 @@ impl> FromJSValConvertible for Finite impl ToJSValConvertible for str { fn to_jsval(&self, cx: *mut JSContext, rval: MutableHandleValue) { + let mut string_utf16: Vec = Vec::with_capacity(self.len()); unsafe { - let string_utf16: Vec = self.utf16_units().collect(); + string_utf16.extend(self.utf16_units()); let jsstr = JS_NewUCStringCopyN(cx, string_utf16.as_ptr() as *const i16, string_utf16.len() as libc::size_t); if jsstr.is_null() {