From 04e9e3a47c20c4e7b396404506fd89dd91f03e57 Mon Sep 17 00:00:00 2001 From: Keith Yeung Date: Tue, 18 Apr 2017 02:08:31 -0700 Subject: [PATCH] Implement FromJSValConvertible for HandleValue --- src/conversions.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/conversions.rs b/src/conversions.rs index bdd5ae82f..e1b77bc6f 100644 --- a/src/conversions.rs +++ b/src/conversions.rs @@ -30,6 +30,7 @@ use core::nonzero::NonZero; use error::throw_type_error; use glue::RUST_JS_NumberValue; +use jsapi::AssertSameCompartment; use jsapi::{ForOfIterator, ForOfIterator_NonIterableBehavior, HandleValue}; use jsapi::{Heap, JS_DefineElement, JS_GetLatin1StringCharsAndLength}; use jsapi::{JS_GetTwoByteStringCharsAndLength, JS_NewArrayObject1}; @@ -184,6 +185,20 @@ impl ToJSValConvertible for () { } } +impl FromJSValConvertible for HandleValue { + type Config = (); + #[inline] + unsafe fn from_jsval(cx: *mut JSContext, + value: HandleValue, + _option: ()) + -> Result, ()> { + if value.is_object() { + AssertSameCompartment(cx, value.to_object()); + } + Ok(ConversionResult::Success(value)) + } +} + impl FromJSValConvertible for JSVal { type Config = (); unsafe fn from_jsval(_cx: *mut JSContext,