summaryrefslogtreecommitdiff
path: root/test/async-hooks
diff options
context:
space:
mode:
authorAlexander Sattelmaier <alexander.sattelmaier@gmail.com>2019-02-17 15:03:29 +0100
committerAnna Henningsen <anna@addaleax.net>2019-03-01 11:23:30 +0100
commite02453c3bd44e744c1798c5928e01dfff5c828ef (patch)
tree4ed422be954fa245398a29c1f7d6530001746ab5 /test/async-hooks
parent10de8d9ec81a12b352709b4dd5320ccd0b7c1cdd (diff)
downloadandroid-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.js38
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;