diff options
author | Alexander Sattelmaier <alexander.sattelmaier@gmail.com> | 2019-02-17 15:03:29 +0100 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2019-03-01 11:23:30 +0100 |
commit | e02453c3bd44e744c1798c5928e01dfff5c828ef (patch) | |
tree | 4ed422be954fa245398a29c1f7d6530001746ab5 /test/async-hooks | |
parent | 10de8d9ec81a12b352709b4dd5320ccd0b7c1cdd (diff) | |
download | android-node-v8-e02453c3bd44e744c1798c5928e01dfff5c828ef.tar.gz android-node-v8-e02453c3bd44e744c1798c5928e01dfff5c828ef.tar.bz2 android-node-v8-e02453c3bd44e744c1798c5928e01dfff5c828ef.zip |
test: refactor tick objects prune function
PR-URL: https://github.com/nodejs/node/pull/26163
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'test/async-hooks')
-rw-r--r-- | test/async-hooks/verify-graph.js | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/test/async-hooks/verify-graph.js b/test/async-hooks/verify-graph.js index 42a45d3f50..c402dc3ba8 100644 --- a/test/async-hooks/verify-graph.js +++ b/test/async-hooks/verify-graph.js @@ -17,29 +17,37 @@ function pruneTickObjects(activities) { // Remove one TickObject on each pass until none is left anymore // not super efficient, but simplest especially to handle // multiple TickObjects in a row - let foundTickObject = true; + const tickObject = { + found: true, + index: null, + data: null + }; - while (foundTickObject) { - foundTickObject = false; - let tickObjectIdx = -1; + while (tickObject.found) { for (let i = 0; i < activities.length; i++) { - if (activities[i].type !== 'TickObject') continue; - tickObjectIdx = i; - break; + if (activities[i].type === 'TickObject') { + tickObject.index = i; + break; + } else if (i + 1 === activities.length) { + tickObject.found = false; + } } - if (tickObjectIdx >= 0) { - foundTickObject = true; - + if (tickObject.found) { // Point all triggerAsyncIds that point to the tickObject // to its triggerAsyncId and finally remove it from the activities - const tickObject = activities[tickObjectIdx]; - const newTriggerId = tickObject.triggerAsyncId; - const oldTriggerId = tickObject.uid; + tickObject.data = activities[tickObject.index]; + const triggerId = { + new: tickObject.data.triggerAsyncId, + old: tickObject.data.uid + }; + activities.forEach(function repointTriggerId(x) { - if (x.triggerAsyncId === oldTriggerId) x.triggerAsyncId = newTriggerId; + if (x.triggerAsyncId === triggerId.old) + x.triggerAsyncId = triggerId.new; }); - activities.splice(tickObjectIdx, 1); + + activities.splice(tickObject.index, 1); } } return activities; |