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.
|
// Each hook is only allowed to be added once.
|
||||||
if (hooks_array.includes(this))
|
if (hooks_array.includes(this))
|
||||||
return;
|
return this;
|
||||||
|
|
||||||
if (!setupHooksCalled) {
|
if (!setupHooksCalled) {
|
||||||
setupHooksCalled = true;
|
setupHooksCalled = true;
|
||||||
@ -124,7 +124,7 @@ class AsyncHook {
|
|||||||
|
|
||||||
const index = hooks_array.indexOf(this);
|
const index = hooks_array.indexOf(this);
|
||||||
if (index === -1)
|
if (index === -1)
|
||||||
return;
|
return this;
|
||||||
|
|
||||||
hook_fields[kInit] -= +!!this[init_symbol];
|
hook_fields[kInit] -= +!!this[init_symbol];
|
||||||
hook_fields[kBefore] -= +!!this[before_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