1// Flags: --expose-internals --expose-gc
2'use strict';
3require('../common');
4const assert = require('assert');
5const { internalBinding } = require('internal/test/binding');
6const { WeakReference } = internalBinding('util');
7
8let obj = { hello: 'world' };
9const ref = new WeakReference(obj);
10assert.strictEqual(ref.get(), obj);
11
12setImmediate(() => {
13  obj = null;
14  global.gc();
15
16  assert.strictEqual(ref.get(), undefined);
17});
18