summaryrefslogtreecommitdiff
path: root/test/parallel
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2019-02-07 21:18:25 +0100
committerDaniel Bevenius <daniel.bevenius@gmail.com>2019-02-12 05:38:18 +0100
commit86799326077611d694f37753ee3ab6903397f893 (patch)
tree8f0f721bbac1929faec8e03fdbb7db4de445bb07 /test/parallel
parent0a4c69a5c5e8ba93b7c9f67d08ef6c859eb1f86a (diff)
downloadandroid-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.js17
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);
+});