From 54b83653476c44adda0f918ef06792c1232d11fa Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Mon, 29 Aug 2016 00:51:12 +0200 Subject: [PATCH 1/2] Remove features and lints that were removed with inline drop flags --- src/lib.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 5bc9edb3a..5869de528 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -5,11 +5,9 @@ #![crate_name = "js"] #![crate_type = "rlib"] -#![feature(filling_drop)] #![feature(link_args)] #![feature(const_fn)] -#![allow(drop_with_repr_extern)] #![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, improper_ctypes)] #[macro_use] From 4baa07b5937d728b467f9a1e5a6b0d2ca30d424c Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Mon, 29 Aug 2016 00:51:57 +0200 Subject: [PATCH 2/2] Implement ToJSValConvertible for NonZero<*mut JSObject> --- src/conversions.rs | 10 ++++++++++ src/lib.rs | 2 ++ 2 files changed, 12 insertions(+) diff --git a/src/conversions.rs b/src/conversions.rs index c04a37c07..193b0be9b 100644 --- a/src/conversions.rs +++ b/src/conversions.rs @@ -27,6 +27,7 @@ #![deny(missing_docs)] +use core::nonzero::NonZero; use error::throw_type_error; use glue::RUST_JS_NumberValue; use jsapi::JSPROP_ENUMERATE; @@ -619,3 +620,12 @@ impl ToJSValConvertible for *mut JSObject { assert!(JS_WrapValue(cx, rval)); } } + +// https://heycam.github.io/webidl/#es-object +impl ToJSValConvertible for NonZero<*mut JSObject> { + #[inline] + unsafe fn to_jsval(&self, cx: *mut JSContext, rval: MutableHandleValue) { + rval.set(ObjectValue(&***self)); + assert!(JS_WrapValue(cx, rval)); + } +} diff --git a/src/lib.rs b/src/lib.rs index 5869de528..24f6c798b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -6,10 +6,12 @@ #![crate_type = "rlib"] #![feature(link_args)] +#![feature(nonzero)] #![feature(const_fn)] #![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, improper_ctypes)] +extern crate core; #[macro_use] extern crate heapsize; #[macro_use]