Skip to content

Commit 2d91fa1

Browse files
committed
Add binding for Object.getOwnPropertyDescriptors()
1 parent b005e96 commit 2d91fa1

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

crates/js-sys/src/lib.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2031,6 +2031,13 @@ extern "C" {
20312031
#[wasm_bindgen(static_method_of = Object, js_name = getOwnPropertyDescriptor)]
20322032
pub fn get_own_property_descriptor(obj: &Object, prop: &JsValue) -> JsValue;
20332033

2034+
/// The Object.getOwnPropertyDescriptors() method returns all own
2035+
/// property descriptors of a given object.
2036+
///
2037+
/// [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors)
2038+
#[wasm_bindgen(static_method_of = Object, js_name = getOwnPropertyDescriptors)]
2039+
pub fn get_own_property_descriptors(obj: &Object) -> JsValue;
2040+
20342041
/// The `hasOwnProperty()` method returns a boolean indicating whether the
20352042
/// object has the specified property as its own property (as opposed to
20362043
/// inheriting it).

crates/js-sys/tests/wasm/Object.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,14 @@ fn get_own_property_descriptor() {
114114
assert!(PropertyDescriptor::from(desc).value().is_undefined());
115115
}
116116

117+
#[wasm_bindgen_test]
118+
fn get_own_property_descriptors() {
119+
let foo = foo_42();
120+
let descriptors = Object::get_own_property_descriptors(&foo);
121+
let foo_desc = Reflect::get(&descriptors, &"foo".into());
122+
assert_eq!(PropertyDescriptor::from(foo_desc).value(), 42);
123+
}
124+
117125
#[wasm_bindgen_test]
118126
fn has_own_property() {
119127
assert!(foo_42().has_own_property(&"foo".into()));

0 commit comments

Comments
 (0)