From 3a682cca03ff6f35391c0aead64b4ad4b3455bb3 Mon Sep 17 00:00:00 2001 From: Wiyeong Seo Date: Wed, 18 Sep 2024 21:18:24 +0900 Subject: [PATCH] path: remove repetitive conditional operator in `posix.resolve` PR-URL: https://github.com/nodejs/node/pull/54835 Reviewed-By: Benjamin Gruenbaum Reviewed-By: Yagiz Nizipli Reviewed-By: James M Snell --- lib/path.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/path.js b/lib/path.js index 05989794958ab8..0faf338b08e786 100644 --- a/lib/path.js +++ b/lib/path.js @@ -1164,8 +1164,8 @@ const posix = { let resolvedPath = ''; let resolvedAbsolute = false; - for (let i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) { - const path = i >= 0 ? args[i] : posixCwd(); + for (let i = args.length - 1; i >= 0 && !resolvedAbsolute; i--) { + const path = args[i]; validateString(path, `paths[${i}]`); // Skip empty entries @@ -1178,6 +1178,13 @@ const posix = { StringPrototypeCharCodeAt(path, 0) === CHAR_FORWARD_SLASH; } + if (!resolvedAbsolute) { + const cwd = posixCwd(); + resolvedPath = `${cwd}/${resolvedPath}`; + resolvedAbsolute = + StringPrototypeCharCodeAt(cwd, 0) === CHAR_FORWARD_SLASH; + } + // At this point the path should be resolved to a full absolute path, but // handle relative paths to be safe (might happen when process.cwd() fails)