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

/*---
esid: sec-array-len
info: |
    If the argument len is not a Number, then the length property of
    the newly constructed object is set to 1 and the 0 property of
    the newly constructed object is set to len
es5id: 15.4.2.2_A2.3_T2
description: Checking for boolean primitive and Boolean object
---*/

var x = new Array(true);

//CHECK#1
if (x.length !== 1) {
  $ERROR('#1: var x = new Array(true); x.length === 1. Actual: ' + (x.length));
}

//CHECK#2
if (x[0] !== true) {
  $ERROR('#2: var x = new Array(true); x[0] === true. Actual: ' + (x[0]));
}

var obj = new Boolean(false);
var x = new Array(obj);

//CHECK#3
if (x.length !== 1) {
  $ERROR('#3: var obj = new Boolean(false); var x = new Array(obj); x.length === 1. Actual: ' + (x.length));
}

//CHECK#4
if (x[0] !== obj) {
  $ERROR('#4: var obj = new Boolean(false); var x = new Array(obj); x[0] === obj. Actual: ' + (x[0]));
}
