// 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.7-6-a-164
description: >
    Object.defineProperties - 'O' is an Array, 'P' is the length
    property of 'O', the [[Value]] field of 'desc' is less than value
    of the length property, test the [[Writable]] attribute of the
    length property in 'O' is set as true before deleting properties
    with large index named (15.4.5.1 step 3.i.iii)
includes: [propertyHelper.js]
---*/


var arr = [0, 1, 2];
var result = 0;

try {
  Object.defineProperty(arr, "1", {
    configurable: false
  });

  Object.defineProperties(arr, {
    length: {
      value: 0,
      writable: false
    }
  });

  $ERROR("expected to throw TypeError")
} catch (e) {
  assert(e instanceof TypeError);
  assert.sameValue(arr.length, 2);
  verifyNotWritable(arr, "length");
}
