Skip to content

Commit 22feded

Browse files
authored
Merge pull request #288 from belfz/expose-bindings/object-has-own-property-allow-jsvalue
allows using &JsValue as an arg to Object's has_own_property
2 parents 0b29721 + dd3740e commit 22feded

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

src/js.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ extern {
8484
///
8585
/// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty
8686
#[wasm_bindgen(method, js_name = hasOwnProperty)]
87-
pub fn has_own_property(this: &Object, property: &str) -> bool;
87+
pub fn has_own_property(this: &Object, property: &JsValue) -> bool;
8888

8989
/// The toString() method returns a string representing the object.
9090
///

tests/all/js_globals/Object.rs

+8-4
Original file line numberDiff line numberDiff line change
@@ -39,17 +39,21 @@ fn has_own_property() {
3939
use wasm_bindgen::js;
4040
4141
#[wasm_bindgen]
42-
pub fn has_own_foo_property(obj: &js::Object) -> bool {
43-
obj.has_own_property("foo")
42+
pub fn has_own_foo_property(obj: &js::Object, property: &JsValue) -> bool {
43+
obj.has_own_property(&property)
4444
}
4545
"#)
4646
.file("test.ts", r#"
4747
import * as assert from "assert";
4848
import * as wasm from "./out";
4949
5050
export function test() {
51-
assert.ok(wasm.has_own_foo_property({ foo: 42 }));
52-
assert.ok(!wasm.has_own_foo_property({}));
51+
assert(wasm.has_own_foo_property({ foo: 42 }, "foo"));
52+
assert(wasm.has_own_foo_property({ 42: "foo" }, 42));
53+
assert(!wasm.has_own_foo_property({ foo: 42 }, "bar"));
54+
55+
const s = Symbol();
56+
assert(wasm.has_own_foo_property({ [s]: "foo" }, s));
5357
}
5458
"#)
5559
.test()

0 commit comments

Comments
 (0)