diff --git a/lib/path.js b/lib/path.js index 3bfcb9637c8..641e21e4c40 100644 --- a/lib/path.js +++ b/lib/path.js @@ -47,16 +47,14 @@ if (isWindows) { // path.resolve([from ...], to) // windows version exports.resolve = function() { - // Prepend cwd to provided paths - var paths = [process.cwd()].concat( - Array.prototype.slice.call(arguments, 0)); - var resolvedDevice = '', resolvedTail = '', resolvedAbsolute = false; - for (var i = paths.length; i >= 0; i--) { - var path = paths[i]; + for (var i = arguments.length; i >= -1; i--) { + var path = (i >= 0) + ? arguments[i] + : process.cwd(); // Skip empty and invalid entries if (typeof path !== 'string' || !path) { @@ -177,19 +175,19 @@ if (isWindows) { // path.resolve([from ...], to) // posix version exports.resolve = function() { - // Prepend cwd to provided paths - var paths = [process.cwd()].concat( - Array.prototype.slice.call(arguments, 0)); - var resolvedPath = '', resolvedAbsolute = false; - for (var i = paths.length; i >= 0 && !resolvedAbsolute; i--) { - var path = paths[i]; + for (var i = arguments.length; i >= -1 && !resolvedAbsolute; i--) { + var path = (i >= 0) + ? arguments[i] + : process.cwd(); + // Skip empty and invalid entries if (typeof path !== 'string' || !path) { continue; } + resolvedPath = path + '/' + resolvedPath; resolvedAbsolute = path.charAt(0) === '/'; }