function InnerArrayFill(value, start, end, array, length) {
  var i = IS_UNDEFINED(start) ? 0 : TO_INTEGER(start);
  var end = IS_UNDEFINED(end) ? length : TO_INTEGER(end);

  if (i < 0) {
    i += length;
    if (i < 0) i = 0;
  } else {
    if (i > length) i = length;
  }

  if (end < 0) {
    end += length;
    if (end < 0) end = 0;
  } else {
    if (end > length) end = length;
  }

  if ((end - i) > 0 && %object_is_frozen(array)) {
    throw MakeTypeError(kArrayFunctionsOnFrozen);
  }

  for (; i < end; i++)
    array[i] = value;
  return array;
}
function InnerArrayFill(value, start, end, array, length) {
  var i = IS_UNDEFINED(start) ? 0 : TO_INTEGER(start);
  var end = IS_UNDEFINED(end) ? length : TO_INTEGER(end);

  if (i < 0) {
    i += length;
    if (i < 0) i = 0;
  } else {
    if (i > length) i = length;
  }

  if (end < 0) {
    end += length;
    if (end < 0) end = 0;
  } else {
    if (end > length) end = length;
  }

  if ((end - i) > 0 && %object_is_frozen(array)) {
    throw MakeTypeError(kArrayFunctionsOnFrozen);
  }

  for (; i < end; i++)
    array[i] = value;
  return array;
}
function InnerArrayFill ( value , start , end , array , length ) { var i = IS_UNDEFINED ( start ) ? 0 : TO_INTEGER ( start ) ; var end = IS_UNDEFINED ( end ) ? length : TO_INTEGER ( end ) ; if ( i < 0 ) { i += length ; if ( i < 0 ) i = 0 ; } else { if ( i > length ) i = length ; } if ( end < 0 ) { end += length ; if ( end < 0 ) end = 0 ; } else { if ( end > length ) end = length ; } if ( ( end - i ) > 0 && % object_is_frozen ( array ) ) { throw MakeTypeError ( kArrayFunctionsOnFrozen ) ; } for ( ; i < end ; i ++ ) array [ i ] = value ; return array ; }
ES6, draft 04-05-14, section 22.1.3.6
ES6 draft 04 - 05 - 14 section 22 . 1 . 3 . 6