aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/bindings')
-rw-r--r--components/script/dom/bindings/conversions.rs10
-rw-r--r--components/script/dom/bindings/trace.rs2
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