mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 10:59:27 +00:00
async_hooks: make sure .{en|dis}able() === this
Make sure that `hook.enable()` and `hook.disable()` return `hook` consistently, as the documentation indicates. PR-URL: https://github.com/nodejs/node/pull/13418 Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Andreas Madsen <amwebdk@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Trevor Norris <trev.norris@gmail.com>
This commit is contained in:
parent
d0571a926a
commit
6318078d2c
@ -96,7 +96,7 @@ class AsyncHook {
|
||||
|
||||
// Each hook is only allowed to be added once.
|
||||
if (hooks_array.includes(this))
|
||||
return;
|
||||
return this;
|
||||
|
||||
if (!setupHooksCalled) {
|
||||
setupHooksCalled = true;
|
||||
@ -124,7 +124,7 @@ class AsyncHook {
|
||||
|
||||
const index = hooks_array.indexOf(this);
|
||||
if (index === -1)
|
||||
return;
|
||||
return this;
|
||||
|
||||
hook_fields[kInit] -= +!!this[init_symbol];
|
||||
hook_fields[kBefore] -= +!!this[before_symbol];
|
||||
|
20
test/parallel/test-async-hooks-enable-disable.js
Normal file
20
test/parallel/test-async-hooks-enable-disable.js
Normal file
@ -0,0 +1,20 @@
|
||||
'use strict';
|
||||
const common = require('../common');
|
||||
const assert = require('assert');
|
||||
const async_hooks = require('async_hooks');
|
||||
|
||||
const hook = async_hooks.createHook({
|
||||
init: common.mustCall(() => {}, 1),
|
||||
before: common.mustNotCall(),
|
||||
after: common.mustNotCall(),
|
||||
destroy: common.mustNotCall()
|
||||
});
|
||||
|
||||
assert.strictEqual(hook.enable(), hook);
|
||||
assert.strictEqual(hook.enable(), hook);
|
||||
|
||||
setImmediate(common.mustCall());
|
||||
|
||||
assert.strictEqual(hook.disable(), hook);
|
||||
assert.strictEqual(hook.disable(), hook);
|
||||
assert.strictEqual(hook.disable(), hook);
|
Loading…
Reference in New Issue
Block a user