code: function resolvePathname(to) {
    var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
  
    var toParts = to && to.split('/') || [];
    var fromParts = from && from.split('/') || [];
  
    var isToAbs = to && isAbsolute(to);
    var isFromAbs = from && isAbsolute(from);
    var mustEndAbs = isToAbs || isFromAbs;
  
    if (to && isAbsolute(to)) {
      // to is absolute
      fromParts = toParts;
    } else if (toParts.length) {
      // to is relative, drop the filename
      fromParts.pop();
      fromParts = fromParts.concat(toParts);
    }
  
    if (!fromParts.length) { return '/'; }
  
    var hasTrailingSlash = void 0;
    if (fromParts.length) {
      var last = fromParts[fromParts.length - 1];
      hasTrailingSlash = last === '.' || last === '..' || last === '';
    } else {
      hasTrailingSlash = false;
    }
  
    var up = 0;
    for (var i = fromParts.length; i >= 0; i--) {
      var part = fromParts[i];
  
      if (part === '.') {
        spliceOne(fromParts, i);
      } else if (part === '..') {
        spliceOne(fromParts, i);
        up++;
      } else if (up) {
        spliceOne(fromParts, i);
        up--;
      }
    }
  
    if (!mustEndAbs) { for (; up--; up) {
      fromParts.unshift('..');
    } }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) { fromParts.unshift(''); }
  
    var result = fromParts.join('/');
  
    if (hasTrailingSlash && result.substr(-1) !== '/') { result += '/'; }
  
    return result;
  }
docs: This implementation is based heavily on node's url.parse