text: // Copyright (C) 2016 the V8 project authors. All rights reserved.
  // This code is governed by the BSD license found in the LICENSE file.
  /*---
  esid: sec-%typedarray%.prototype.subarray
  description: Return abrupt from SpeciesConstructor's get Constructor
  info: >
    22.2.3.27 %TypedArray%.prototype.subarray( begin , end )
  
    ...
    17. Return ? TypedArraySpeciesCreate(O, argumentsList).
  
    22.2.4.7 TypedArraySpeciesCreate ( exemplar, argumentList )
  
    ...
    3. Let constructor be ? SpeciesConstructor(exemplar, defaultConstructor).
    ...
  
    7.3.20 SpeciesConstructor ( O, defaultConstructor )
  
    1. Assert: Type(O) is Object.
    2. Let C be ? Get(O, "constructor").
    3. If C is undefined, return defaultConstructor.
    ...
  includes: [testTypedArray.js]
  ---*/
  
  testWithTypedArrayConstructors(function(TA) {
    var sample = new TA([40, 41, 42, 43]);
  
    Object.defineProperty(sample, "constructor", {
      get: function() {
        throw new Test262Error();
      }
    });
  
    assert.throws(Test262Error, function() {
      sample.subarray(0);
    });
  });
  