kataan 0.0.4

A high-performance JavaScript engine written in pure Rust. Library, C FFI, and CLI.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/*---
description: WeakRef.deref and FinalizationRegistry (bounded, no mid-run GC)
esid: sec-weak-ref-objects
---*/
var target = { value: 42 };
var ref = new WeakRef(target);
assert.sameValue(ref.deref(), target, "deref returns the target");
assert.sameValue(ref.deref().value, 42);
assert.sameValue(typeof WeakRef, "function");
var arr = [1, 2, 3];
var arrRef = new WeakRef(arr);
assert.sameValue(arrRef.deref().length, 3, "deref an array target");
var registry = new FinalizationRegistry(function () {});
registry.register(target, "held-value");
assert.sameValue(registry.unregister("token"), false, "nothing registered to unregister");
assert.sameValue(typeof FinalizationRegistry, "function");
var ref2 = new WeakRef(target);
assert.sameValue(ref.deref() === ref2.deref(), true, "two refs to the same target");