◐ Shell
clean mode source ↗

url: replaced slice with at · nodejs/node@8b29bbc

@@ -22,10 +22,12 @@

2222

'use strict';

23232424

const {

25+

ArrayPrototypeJoin,

2526

Boolean,

2627

Int8Array,

2728

ObjectAssign,

2829

ObjectKeys,

30+

StringPrototypeAt,

2931

StringPrototypeCharCodeAt,

3032

StringPrototypeIndexOf,

3133

StringPrototypeReplaceAll,

@@ -923,7 +925,7 @@ Url.prototype.resolveObject = function resolveObject(relative) {

923925

// If a url ENDs in . or .., then it must get a trailing slash.

924926

// however, if it ends in anything else non-slashy,

925927

// then it must NOT get a trailing slash.

926-

let last = srcPath.slice(-1)[0];

928+

let last = srcPath[srcPath.length - 1];

927929

const hasTrailingSlash = (

928930

((result.host || relative.host || srcPath.length > 1) &&

929931

(last === '.' || last === '..')) || last === '');

@@ -956,7 +958,7 @@ Url.prototype.resolveObject = function resolveObject(relative) {

956958

srcPath.unshift('');

957959

}

958960959-

if (hasTrailingSlash && (srcPath.join('/').slice(-1) !== '/')) {

961+

if (hasTrailingSlash && StringPrototypeAt(ArrayPrototypeJoin(srcPath, '/'), -1) !== '/') {

960962

srcPath.push('');

961963

}

962964