// Copyright 2009 the Sputnik authors.  All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
info: |
    The 0 property of the newly constructed object is set to item0
    (if supplied); the 1 property of the newly constructed object is set to item1
    (if supplied); and, in general, for as many arguments as there are, the k property
    of the newly constructed object is set to argument k, where the first argument is
    considered to be argument number 0
es5id: 15.4.2.1_A2.2_T1
description: Checking correct work this algorithm
---*/

//CHECK#
var x = new Array(
  0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
  10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
  20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
  30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
  40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
  50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
  60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
  70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
  80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
  90, 91, 92, 93, 94, 95, 96, 97, 98, 99
);

for (var i = 0; i < 100; i++) {
  var result = true;
  if (x[i] !== i) {
    result = false;
  }
}

if (result !== true) {
  $ERROR('#1: x[i] === i. Actual: ' + (x[i]));
}
