mirror of
https://github.com/fluencelabs/wasm-bindgen
synced 2025-03-31 17:31:06 +00:00
Merge pull request #1456 from bakkot/object-from-entries
js-sys: add Object.fromEntries
This commit is contained in:
commit
38fcfc3125
@ -2176,6 +2176,13 @@ extern "C" {
|
|||||||
#[wasm_bindgen(static_method_of = Object)]
|
#[wasm_bindgen(static_method_of = Object)]
|
||||||
pub fn freeze(value: &Object) -> Object;
|
pub fn freeze(value: &Object) -> Object;
|
||||||
|
|
||||||
|
/// The Object.fromEntries() method transforms a list of key-value pairs
|
||||||
|
/// into an object.
|
||||||
|
///
|
||||||
|
/// [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries)
|
||||||
|
#[wasm_bindgen(static_method_of = Object, catch, js_name = fromEntries)]
|
||||||
|
pub fn from_entries(iterable: &JsValue) -> Result<Object, JsValue>;
|
||||||
|
|
||||||
/// The Object.getOwnPropertyDescriptor() method returns a
|
/// The Object.getOwnPropertyDescriptor() method returns a
|
||||||
/// property descriptor for an own property (that is, one directly
|
/// property descriptor for an own property (that is, one directly
|
||||||
/// present on an object and not in the object's prototype chain)
|
/// present on an object and not in the object's prototype chain)
|
||||||
|
@ -123,6 +123,27 @@ fn entries() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[wasm_bindgen_test]
|
||||||
|
fn from_entries() {
|
||||||
|
let array = Array::new();
|
||||||
|
let entry_one = Array::new();
|
||||||
|
let entry_two = Array::new();
|
||||||
|
entry_one.push(&"foo".into());
|
||||||
|
entry_one.push(&"bar".into());
|
||||||
|
entry_two.push(&"baz".into());
|
||||||
|
entry_two.push(&42.into());
|
||||||
|
array.push(&entry_one);
|
||||||
|
array.push(&entry_two);
|
||||||
|
let object = Object::from_entries(&array).unwrap();
|
||||||
|
|
||||||
|
assert_eq!(Reflect::get(object.as_ref(), &"foo".into()).unwrap(), "bar");
|
||||||
|
assert_eq!(Reflect::get(object.as_ref(), &"baz".into()).unwrap(), 42);
|
||||||
|
|
||||||
|
let not_iterable = Object::new();
|
||||||
|
let error = Object::from_entries(¬_iterable).unwrap_err();
|
||||||
|
assert!(error.is_instance_of::<TypeError>());
|
||||||
|
}
|
||||||
|
|
||||||
#[wasm_bindgen_test]
|
#[wasm_bindgen_test]
|
||||||
fn get_own_property_descriptor() {
|
fn get_own_property_descriptor() {
|
||||||
let foo = foo_42();
|
let foo = foo_42();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user