From 66d155d7085222391a3af4337175a88268764c45 Mon Sep 17 00:00:00 2001 From: Nick Fitzgerald Date: Thu, 6 Sep 2018 13:42:16 -0700 Subject: [PATCH] js-sys: Add `extends` to `Reflect` Part of #670 --- crates/js-sys/src/lib.rs | 1 + crates/js-sys/tests/wasm/Reflect.rs | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/crates/js-sys/src/lib.rs b/crates/js-sys/src/lib.rs index ef3921be..c2d2bd3a 100644 --- a/crates/js-sys/src/lib.rs +++ b/crates/js-sys/src/lib.rs @@ -2128,6 +2128,7 @@ extern { #[wasm_bindgen] extern "C" { #[derive(Clone, Debug)] + #[wasm_bindgen(extends = Object)] pub type Reflect; /// The static `Reflect.apply()` method calls a target function with diff --git a/crates/js-sys/tests/wasm/Reflect.rs b/crates/js-sys/tests/wasm/Reflect.rs index 5f6f47f1..da2c5217 100644 --- a/crates/js-sys/tests/wasm/Reflect.rs +++ b/crates/js-sys/tests/wasm/Reflect.rs @@ -1,4 +1,4 @@ -use wasm_bindgen::prelude::*; +use wasm_bindgen::{JsCast, prelude::*}; use wasm_bindgen_test::*; use js_sys::*; @@ -180,3 +180,15 @@ fn set_prototype_of() { let obj = JsValue::from(obj); assert_eq!(JsValue::from(Reflect::get_prototype_of(&obj)), JsValue::null()); } + +#[wasm_bindgen_test] +fn reflect_extends() { + #[wasm_bindgen] + extern { + #[wasm_bindgen(js_name = Reflect)] + static reflect: Reflect; + } + + assert!(reflect.is_instance_of::()); + let _: &Object = reflect.as_ref(); +}