diff options
Diffstat (limited to 'components/script/dom/bindings')
-rw-r--r-- | components/script/dom/bindings/conversions.rs | 10 | ||||
-rw-r--r-- | components/script/dom/bindings/trace.rs | 2 |
2 files changed, 6 insertions, 6 deletions
diff --git a/components/script/dom/bindings/conversions.rs b/components/script/dom/bindings/conversions.rs index ca0e40241be..46e9d908ac3 100644 --- a/components/script/dom/bindings/conversions.rs +++ b/components/script/dom/bindings/conversions.rs @@ -60,6 +60,7 @@ use libc; use num::Float; use num::traits::{Bounded, Zero}; use std::borrow::ToOwned; +use std::char; use std::ptr; use std::rc::Rc; use std::slice; @@ -122,7 +123,7 @@ pub trait ToJSValConvertible { } /// A trait to convert `JSVal`s to Rust types. -pub trait FromJSValConvertible { +pub trait FromJSValConvertible: Sized { /// Optional configurable behaviour switch; use () for no configuration. type Config; /// Convert `val` to type `Self`. @@ -452,11 +453,10 @@ pub fn jsstring_to_str(cx: *mut JSContext, s: *mut JSString) -> DOMString { slice::from_raw_parts(chars as *const u16, length as usize) }; let mut s = String::with_capacity(length as usize); - for item in ::rustc_unicode::str::utf16_items(potentially_ill_formed_utf16) { - use ::rustc_unicode::str::Utf16Item::*; + for item in char::decode_utf16(potentially_ill_formed_utf16.iter().cloned()) { match item { - ScalarValue(c) => s.push(c), - LoneSurrogate(_) => { + Ok(c) => s.push(c), + Err(_) => { // FIXME: Add more info like document URL in the message? macro_rules! message { () => { diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs index 8e48de2c680..846a8d16bf4 100644 --- a/components/script/dom/bindings/trace.rs +++ b/components/script/dom/bindings/trace.rs @@ -282,7 +282,7 @@ no_jsmanaged_fields!(Size2D<T>); no_jsmanaged_fields!(Arc<T>); no_jsmanaged_fields!(Image, ImageCacheChan, ImageCacheTask); no_jsmanaged_fields!(Atom, Namespace); -no_jsmanaged_fields!(Trusted<T>); +no_jsmanaged_fields!(Trusted<T: Reflectable>); no_jsmanaged_fields!(PropertyDeclarationBlock); no_jsmanaged_fields!(HashSet<T>); // These three are interdependent, if you plan to put jsmanaged data |