1'use strict';
2// Flags: --expose_gc
3
4// This test ensures that userland-only AsyncResources cause a destroy event to
5// be emitted when they get gced.
6
7const common = require('../common');
8const async_hooks = require('async_hooks');
9
10const hook = async_hooks.createHook({
11  destroy: common.mustCallAtLeast(1) // only 1 immediate is destroyed
12}).enable();
13
14new async_hooks.AsyncResource('foobar', { requireManualDestroy: true });
15
16setImmediate(() => {
17  global.gc();
18  setImmediate(() => {
19    hook.disable();
20  });
21});
22