docs: function (args, start, end) {
              var object = toObjectFixIndexedAccess(args),
                  length = toLength(object.length),
                  relativeStart = toInteger(start),
                  val = [],
                  next = 0,
                  type = typeof end,
                  relativeEnd,
                  finalEnd,
                  k;
  
              if (relativeStart < 0) {
                  k = mMax(length + relativeStart, 0);
              } else {
                  k = mMin(relativeStart, length);
              }
  
              if (type === 'undefined') {
                  relativeEnd = length;
              } else {
                  relativeEnd = toInteger(end);
              }
  
              if (relativeEnd < 0) {
                  finalEnd = mMax(length + relativeEnd, 0);
              } else {
                  finalEnd = mMin(relativeEnd, length);
              }
  
              val.length = mMax(finalEnd - k, 0);
              while (k < finalEnd) {
                  if (k in object) {
                      val[next] = object[k];
                  }
  
                  next += 1;
                  k += 1;
              }
  
              return val;
          }