From 6c7cd9ee5a5955aa921c0e940ceee3180eb4d587 Mon Sep 17 00:00:00 2001
From: Ruben Bridgewater <ruben@bridgewater.de>
Date: Sun, 27 Jan 2019 15:23:21 +0100
Subject: [PATCH] path: minor refactoring
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

1) Consolidate nested if statements if possible
     `if (foo) { if bar () { /* do stuff */ } }`)
   to reduce indentation depth.
2) Remove obsolete else cases to reduce indentation.

PR-URL: https://github.com/nodejs/node/pull/25278
Reviewed-By: Michaƫl Zasso <targos@protonmail.com>
---
 lib/path.js | 125 ++++++++++++++++++++++++----------------------------
 1 file changed, 57 insertions(+), 68 deletions(-)

diff --git a/lib/path.js b/lib/path.js
index b43a1ec0eb3372..ec27f280a59a61 100644
--- a/lib/path.js
+++ b/lib/path.js
@@ -206,20 +206,16 @@ const win32 = {
           } else {
             rootEnd = 1;
           }
-        } else if (isWindowsDeviceRoot(code)) {
+        } else if (isWindowsDeviceRoot(code) &&
+                   path.charCodeAt(1) === CHAR_COLON) {
           // Possible device root
-
-          if (path.charCodeAt(1) === CHAR_COLON) {
-            device = path.slice(0, 2);
-            rootEnd = 2;
-            if (len > 2) {
-              if (isPathSeparator(path.charCodeAt(2))) {
-                // Treat separator following drive name as an absolute path
-                // indicator
-                isAbsolute = true;
-                rootEnd = 3;
-              }
-            }
+          device = path.slice(0, 2);
+          rootEnd = 2;
+          if (len > 2 && isPathSeparator(path.charCodeAt(2))) {
+            // Treat separator following drive name as an absolute path
+            // indicator
+            isAbsolute = true;
+            rootEnd = 3;
           }
         }
       } else if (isPathSeparator(code)) {
@@ -567,26 +563,23 @@ const win32 = {
 
     const resolvedPath = win32.resolve(path);
 
-    if (resolvedPath.length >= 3) {
-      if (resolvedPath.charCodeAt(0) === CHAR_BACKWARD_SLASH) {
-        // Possible UNC root
-
-        if (resolvedPath.charCodeAt(1) === CHAR_BACKWARD_SLASH) {
-          const code = resolvedPath.charCodeAt(2);
-          if (code !== CHAR_QUESTION_MARK && code !== CHAR_DOT) {
-            // Matched non-long UNC root, convert the path to a long UNC path
-            return '\\\\?\\UNC\\' + resolvedPath.slice(2);
-          }
-        }
-      } else if (isWindowsDeviceRoot(resolvedPath.charCodeAt(0))) {
-        // Possible device root
+    if (resolvedPath.length <= 2)
+      return path;
 
-        if (resolvedPath.charCodeAt(1) === CHAR_COLON &&
-            resolvedPath.charCodeAt(2) === CHAR_BACKWARD_SLASH) {
-          // Matched device root, convert the path to a long UNC path
-          return '\\\\?\\' + resolvedPath;
+    if (resolvedPath.charCodeAt(0) === CHAR_BACKWARD_SLASH) {
+      // Possible UNC root
+      if (resolvedPath.charCodeAt(1) === CHAR_BACKWARD_SLASH) {
+        const code = resolvedPath.charCodeAt(2);
+        if (code !== CHAR_QUESTION_MARK && code !== CHAR_DOT) {
+          // Matched non-long UNC root, convert the path to a long UNC path
+          return `\\\\?\\UNC\\${resolvedPath.slice(2)}`;
         }
       }
+    } else if (isWindowsDeviceRoot(resolvedPath.charCodeAt(0)) &&
+               resolvedPath.charCodeAt(1) === CHAR_COLON &&
+               resolvedPath.charCodeAt(2) === CHAR_BACKWARD_SLASH) {
+      // Matched device root, convert the path to a long UNC path
+      return `\\\\?\\${resolvedPath}`;
     }
 
     return path;
@@ -749,29 +742,27 @@ const win32 = {
       else if (end === -1)
         end = path.length;
       return path.slice(start, end);
-    } else {
-      for (i = path.length - 1; i >= start; --i) {
-        if (isPathSeparator(path.charCodeAt(i))) {
-          // If we reached a path separator that was not part of a set of path
-          // separators at the end of the string, stop now
-          if (!matchedSlash) {
-            start = i + 1;
-            break;
-          }
-        } else if (end === -1) {
-          // We saw the first non-path separator, mark this as the end of our
-          // path component
-          matchedSlash = false;
-          end = i + 1;
+    }
+    for (i = path.length - 1; i >= start; --i) {
+      if (isPathSeparator(path.charCodeAt(i))) {
+        // If we reached a path separator that was not part of a set of path
+        // separators at the end of the string, stop now
+        if (!matchedSlash) {
+          start = i + 1;
+          break;
         }
+      } else if (end === -1) {
+        // We saw the first non-path separator, mark this as the end of our
+        // path component
+        matchedSlash = false;
+        end = i + 1;
       }
-
-      if (end === -1)
-        return '';
-      return path.slice(start, end);
     }
-  },
 
+    if (end === -1)
+      return '';
+    return path.slice(start, end);
+  },
 
   extname(path) {
     validateString(path, 'path');
@@ -1256,29 +1247,27 @@ const posix = {
       else if (end === -1)
         end = path.length;
       return path.slice(start, end);
-    } else {
-      for (i = path.length - 1; i >= 0; --i) {
-        if (path.charCodeAt(i) === CHAR_FORWARD_SLASH) {
-          // If we reached a path separator that was not part of a set of path
-          // separators at the end of the string, stop now
-          if (!matchedSlash) {
-            start = i + 1;
-            break;
-          }
-        } else if (end === -1) {
-          // We saw the first non-path separator, mark this as the end of our
-          // path component
-          matchedSlash = false;
-          end = i + 1;
+    }
+    for (i = path.length - 1; i >= 0; --i) {
+      if (path.charCodeAt(i) === CHAR_FORWARD_SLASH) {
+        // If we reached a path separator that was not part of a set of path
+        // separators at the end of the string, stop now
+        if (!matchedSlash) {
+          start = i + 1;
+          break;
         }
+      } else if (end === -1) {
+        // We saw the first non-path separator, mark this as the end of our
+        // path component
+        matchedSlash = false;
+        end = i + 1;
       }
-
-      if (end === -1)
-        return '';
-      return path.slice(start, end);
     }
-  },
 
+    if (end === -1)
+      return '';
+    return path.slice(start, end);
+  },
 
   extname(path) {
     validateString(path, 'path');