From b192e5e1b397e7c32aafc9e3fcccce4d5456c1be Mon Sep 17 00:00:00 2001 From: HBSPS Date: Sun, 8 Sep 2024 02:07:05 +0900 Subject: [PATCH] path: remove repetitive conditional operator in `posix.resolve` --- lib/path.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/path.js b/lib/path.js index 48c7f67dcd617a..b2b21a83c4f2a6 100644 --- a/lib/path.js +++ b/lib/path.js @@ -1163,8 +1163,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 @@ -1177,6 +1177,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)