code: function ArrayPush() {
    CHECK_OBJECT_COERCIBLE(this, "Array.prototype.push");
  
    var array = TO_OBJECT(this);
    var n = TO_LENGTH(array.length);
    var m = arguments.length;
  
    // Subtract n from kMaxSafeInteger rather than testing m + n >
    // kMaxSafeInteger. n may already be kMaxSafeInteger. In that case adding
    // e.g., 1 would not be safe.
    if (m > kMaxSafeInteger - n) throw MakeTypeError(kPushPastSafeLength, m, n);
  
    for (var i = 0; i < m; i++) {
      array[i+n] = arguments[i];
    }
  
    var new_length = n + m;
    array.length = new_length;
    return new_length;
  }
docs: Appends the arguments to the end of the array and returns the new length of the array. See ECMA-262, section 15.4.4.7.