| 'use strict'; | |
| // Flags: --expose_gc | |
| // This test ensures that userland-only AsyncResources cause a destroy event to | |
| // be emitted when they get gced. | |
| const common = require('../common'); | |
| const async_hooks = require('async_hooks'); | |
| const hook = async_hooks.createHook({ | |
| destroy: common.mustCallAtLeast(1) // only 1 immediate is destroyed | |
| }).enable(); | |
| new async_hooks.AsyncResource('foobar', { requireManualDestroy: true }); | |
| setImmediate(() => { | |
| global.gc(); | |
| setImmediate(() => { | |
| hook.disable(); | |
| }); | |
| }); |