From f2ecc28cc10d61698a767a482ae410c797e8092d Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Sun, 23 Jan 2022 15:48:59 +0200 Subject: [PATCH] visit: simplify handling of root node (#3461) --- src/language/visitor.ts | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/language/visitor.ts b/src/language/visitor.ts index 821c9cb3e0..daf96497bf 100644 --- a/src/language/visitor.ts +++ b/src/language/visitor.ts @@ -192,12 +192,11 @@ export function visit( let keys: any = [root]; let index = -1; let edits = []; - let node: any = undefined; + let node: any = root; let key: any = undefined; let parent: any = undefined; const path: any = []; const ancestors = []; - let newRoot = root; /* eslint-enable no-undef-init */ do { @@ -237,15 +236,13 @@ export function visit( edits = stack.edits; inArray = stack.inArray; stack = stack.prev; - } else { - key = parent ? (inArray ? index : keys[index]) : undefined; - node = parent ? parent[key] : newRoot; + } else if (parent) { + key = inArray ? index : keys[index]; + node = parent[key]; if (node === null || node === undefined) { continue; } - if (parent) { - path.push(key); - } + path.push(key); } let result; @@ -300,10 +297,11 @@ export function visit( } while (stack !== undefined); if (edits.length !== 0) { - newRoot = edits[edits.length - 1][1]; + // New root + return edits[edits.length - 1][1]; } - return newRoot; + return root; } /**