From bec3178e3c2046a9aa7fde72258811fd68030da6 Mon Sep 17 00:00:00 2001 From: Matt Kraai Date: Fri, 17 Aug 2018 13:10:11 -0700 Subject: [PATCH] Make all errors extend Object Part of #670 --- crates/js-sys/src/lib.rs | 10 +++++----- crates/js-sys/tests/wasm/RangeError.rs | 2 ++ crates/js-sys/tests/wasm/ReferenceError.rs | 2 ++ crates/js-sys/tests/wasm/SyntaxError.rs | 2 ++ crates/js-sys/tests/wasm/TypeError.rs | 2 ++ crates/js-sys/tests/wasm/UriError.rs | 2 ++ 6 files changed, 15 insertions(+), 5 deletions(-) diff --git a/crates/js-sys/src/lib.rs b/crates/js-sys/src/lib.rs index 67cff622..55b5c8d6 100644 --- a/crates/js-sys/src/lib.rs +++ b/crates/js-sys/src/lib.rs @@ -2092,7 +2092,7 @@ extern { /// or range of allowed values. /// /// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError - #[wasm_bindgen(extends = Error)] + #[wasm_bindgen(extends = Error, extends = Object)] #[derive(Clone, Debug)] pub type RangeError; @@ -2111,7 +2111,7 @@ extern { /// variable is referenced. /// /// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError - #[wasm_bindgen(extends = Error)] + #[wasm_bindgen(extends = Error, extends = Object)] #[derive(Clone, Debug)] pub type ReferenceError; @@ -2505,7 +2505,7 @@ extern { /// parsing code. /// /// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError - #[wasm_bindgen(extends = Error)] + #[wasm_bindgen(extends = Error, extends = Object)] #[derive(Clone, Debug)] pub type SyntaxError; @@ -2525,7 +2525,7 @@ extern { /// expected type. /// /// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError - #[wasm_bindgen(extends = Error)] + #[wasm_bindgen(extends = Error, extends = Object)] #[derive(Clone, Debug)] pub type TypeError; @@ -2758,7 +2758,7 @@ extern { /// function was used in a wrong way. /// /// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/URIError - #[wasm_bindgen(extends = Error, js_name = URIError)] + #[wasm_bindgen(extends = Error, extends = Object, js_name = URIError)] #[derive(Clone, Debug)] pub type UriError; diff --git a/crates/js-sys/tests/wasm/RangeError.rs b/crates/js-sys/tests/wasm/RangeError.rs index 18c7d7d0..93b42b99 100644 --- a/crates/js-sys/tests/wasm/RangeError.rs +++ b/crates/js-sys/tests/wasm/RangeError.rs @@ -9,6 +9,8 @@ fn range_error() { assert!(error.is_instance_of::()); assert!(error.is_instance_of::()); assert!(error.is_instance_of::()); + let _: &Error = error.as_ref(); + let _: &Object = error.as_ref(); let base: &Error = error.as_ref(); assert_eq!(JsValue::from(base.message()), "out of range yo"); diff --git a/crates/js-sys/tests/wasm/ReferenceError.rs b/crates/js-sys/tests/wasm/ReferenceError.rs index 218ad52e..82d6e692 100644 --- a/crates/js-sys/tests/wasm/ReferenceError.rs +++ b/crates/js-sys/tests/wasm/ReferenceError.rs @@ -9,6 +9,8 @@ fn reference_error() { assert!(error.is_instance_of::()); assert!(error.is_instance_of::()); assert!(error.is_instance_of::()); + let _: &Error = error.as_ref(); + let _: &Object = error.as_ref(); let base: &Error = error.as_ref(); assert_eq!(JsValue::from(base.message()), "bad reference, fool"); diff --git a/crates/js-sys/tests/wasm/SyntaxError.rs b/crates/js-sys/tests/wasm/SyntaxError.rs index 23a211f0..136746af 100644 --- a/crates/js-sys/tests/wasm/SyntaxError.rs +++ b/crates/js-sys/tests/wasm/SyntaxError.rs @@ -9,6 +9,8 @@ fn syntax_error() { assert!(error.is_instance_of::()); assert!(error.is_instance_of::()); assert!(error.is_instance_of::()); + let _: &Error = error.as_ref(); + let _: &Object = error.as_ref(); let base: &Error = error.as_ref(); assert_eq!(JsValue::from(base.message()), "msg"); diff --git a/crates/js-sys/tests/wasm/TypeError.rs b/crates/js-sys/tests/wasm/TypeError.rs index ef7b09fb..e9a9957a 100644 --- a/crates/js-sys/tests/wasm/TypeError.rs +++ b/crates/js-sys/tests/wasm/TypeError.rs @@ -9,6 +9,8 @@ fn type_error() { assert!(error.is_instance_of::()); assert!(error.is_instance_of::()); assert!(error.is_instance_of::()); + let _: &Error = error.as_ref(); + let _: &Object = error.as_ref(); let base: &Error = error.as_ref(); assert_eq!(JsValue::from(base.message()), "msg"); diff --git a/crates/js-sys/tests/wasm/UriError.rs b/crates/js-sys/tests/wasm/UriError.rs index ddcafc49..df939e5d 100644 --- a/crates/js-sys/tests/wasm/UriError.rs +++ b/crates/js-sys/tests/wasm/UriError.rs @@ -9,6 +9,8 @@ fn uri_error() { assert!(error.is_instance_of::()); assert!(error.is_instance_of::()); assert!(error.is_instance_of::()); + let _: &Error = error.as_ref(); + let _: &Object = error.as_ref(); let base: &Error = error.as_ref(); assert_eq!(JsValue::from(base.message()), "msg");