// Test various ways of changing the behavior of |typedArray.length|.

function addLengthProperty() {
  var x = new Uint16Array();
  Object.defineProperty(x, "length", {value:1});
  for (var i = 0; i < 5; i++)
    assertEq(x.length, 1);
}
addLengthProperty();

function changePrototype() {
  var x = new Uint16Array();
  x.__proto__ = [0];
  for (var i = 0; i < 5; i++)
    assertEq(x.length, 1);
}
changePrototype();

function redefineLengthProperty() {
  var x = new Uint16Array();
  Object.defineProperty(Uint16Array.prototype, "length", {value:1});
  for (var i = 0; i < 5; i++)
    assertEq(x.length, 1);
}
redefineLengthProperty();