// Copyright (c) 2012 Ecma International.  All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
es5id: 15.2.3.6-4-168
description: >
    Object.defineProperty - 'O' is an Array, 'name' is the length
    property of 'O', whose writable attribute is being changed to
    false and the [[Value]] field of 'desc' is less than value of  the
    length property and also lesser than an index of the array which
    is set to configurable:false, test that new length is set to a
    value greater than the non-deletable index by 1, writable
    attribute of length is set to false and TypeError exception is
    thrown (15.4.5.1 step 3.i.iii)
---*/

var arrObj = [0, 1, 2];
assert.throws(TypeError, function() {
  Object.defineProperty(arrObj, "1", {
    configurable: false
  });

  Object.defineProperty(arrObj, "length", {
    value: 0,
    writable: false
  });
});
assert.sameValue(arrObj.length, 2, 'arrObj.length');
