diff options
author | Anna Henningsen <anna@addaleax.net> | 2019-02-07 21:18:25 +0100 |
---|---|---|
committer | Daniel Bevenius <daniel.bevenius@gmail.com> | 2019-02-12 05:38:18 +0100 |
commit | 86799326077611d694f37753ee3ab6903397f893 (patch) | |
tree | 8f0f721bbac1929faec8e03fdbb7db4de445bb07 /test/parallel | |
parent | 0a4c69a5c5e8ba93b7c9f67d08ef6c859eb1f86a (diff) | |
download | android-node-v8-86799326077611d694f37753ee3ab6903397f893.tar.gz android-node-v8-86799326077611d694f37753ee3ab6903397f893.tar.bz2 android-node-v8-86799326077611d694f37753ee3ab6903397f893.zip |
src: add WeakReference utility
Add a simple `WeakReference` utility that we can use until the
language provides something on its own.
PR-URL: https://github.com/nodejs/node/pull/25993
Fixes: https://github.com/nodejs/node/issues/23862
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Diffstat (limited to 'test/parallel')
-rw-r--r-- | test/parallel/test-internal-util-weakreference.js | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/test/parallel/test-internal-util-weakreference.js b/test/parallel/test-internal-util-weakreference.js new file mode 100644 index 0000000000..b48b34fe23 --- /dev/null +++ b/test/parallel/test-internal-util-weakreference.js @@ -0,0 +1,17 @@ +// Flags: --expose-internals --expose-gc +'use strict'; +require('../common'); +const assert = require('assert'); +const { internalBinding } = require('internal/test/binding'); +const { WeakReference } = internalBinding('util'); + +let obj = { hello: 'world' }; +const ref = new WeakReference(obj); +assert.strictEqual(ref.get(), obj); + +setImmediate(() => { + obj = null; + global.gc(); + + assert.strictEqual(ref.get(), undefined); +}); |