diff options
author | bors-servo <metajack+bors@gmail.com> | 2015-01-01 03:00:44 -0700 |
---|---|---|
committer | bors-servo <metajack+bors@gmail.com> | 2015-01-01 03:00:44 -0700 |
commit | fda38cf673ed1fb0818e4e33c3e7b7bef1eff02a (patch) | |
tree | 55e0fba1e66b9a12825e87d2a496f304f256a5f7 /components/script/dom/bindings/conversions.rs | |
parent | 685dec1abc61402ab22db93f4a362a58f8377d68 (diff) | |
parent | bb087c238bce1bc5e50ac02ff45d344061794519 (diff) | |
download | servo-fda38cf673ed1fb0818e4e33c3e7b7bef1eff02a.tar.gz servo-fda38cf673ed1fb0818e4e33c3e7b7bef1eff02a.zip |
auto merge of #4496 : yodalee/servo/issue4484-ToJSValConvertible-for-str, r=jdm
#4484
Add ToJSValConvertible trait to str type.
Diffstat (limited to 'components/script/dom/bindings/conversions.rs')
-rw-r--r-- | components/script/dom/bindings/conversions.rs | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/components/script/dom/bindings/conversions.rs b/components/script/dom/bindings/conversions.rs index 7cc6ef2cdaf..08c2abb9e8b 100644 --- a/components/script/dom/bindings/conversions.rs +++ b/components/script/dom/bindings/conversions.rs @@ -44,7 +44,7 @@ pub trait IDLInterface { } /// A trait to convert Rust types to `JSVal`s. -pub trait ToJSValConvertible { +pub trait ToJSValConvertible for Sized? { /// Convert `self` to a `JSVal`. JSAPI failure causes a task failure. fn to_jsval(&self, cx: *mut JSContext) -> JSVal; } @@ -232,10 +232,10 @@ impl FromJSValConvertible<()> for f64 { } } -impl ToJSValConvertible for DOMString { +impl ToJSValConvertible for str { fn to_jsval(&self, cx: *mut JSContext) -> JSVal { unsafe { - let string_utf16: Vec<u16> = self.as_slice().utf16_units().collect(); + let string_utf16: Vec<u16> = self.utf16_units().collect(); let jsstr = JS_NewUCStringCopyN(cx, string_utf16.as_ptr(), string_utf16.len() as libc::size_t); if jsstr.is_null() { panic!("JS_NewUCStringCopyN failed"); @@ -245,6 +245,12 @@ impl ToJSValConvertible for DOMString { } } +impl ToJSValConvertible for DOMString { + fn to_jsval(&self, cx: *mut JSContext) -> JSVal { + self.as_slice().to_jsval(cx) + } +} + /// Behavior for stringification of `JSVal`s. #[deriving(PartialEq)] pub enum StringificationBehavior { |