123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- use js_sys::*;
- use wasm_bindgen::prelude::*;
- use wasm_bindgen::JsCast;
- use wasm_bindgen_test::*;
- #[wasm_bindgen]
- extern "C" {
- type SomeValue;
- #[wasm_bindgen(method, setter, structural)]
- fn set_some(this: &SomeValue, val: JsValue);
- }
- fn some_value() -> Object {
- let value = SomeValue::from(JsValue::from(Object::new()));
- value.set_some("value".into());
- Object::from(JsValue::from(value))
- }
- #[wasm_bindgen_test]
- fn new() {
- assert!(JsValue::from(WeakSet::new()).is_object())
- }
- #[wasm_bindgen_test]
- fn has() {
- let set = WeakSet::new();
- let value = some_value();
- assert!(!set.has(&value));
- set.add(&value);
- assert!(set.has(&value));
- assert!(!set.has(&some_value()));
- }
- #[wasm_bindgen_test]
- fn delete() {
- let set = WeakSet::new();
- let value = some_value();
- set.add(&value);
- assert!(set.has(&value));
- assert!(set.delete(&value));
- assert!(!set.has(&value));
- assert!(!set.delete(&value));
- }
- #[wasm_bindgen_test]
- fn weakset_inheritance() {
- let set = WeakSet::new();
- assert!(set.is_instance_of::<WeakSet>());
- assert!(set.is_instance_of::<Object>());
- let _: &Object = set.as_ref();
- }
|