Home | History | Annotate | Download | only in regress
      1 // Copyright 2016 the V8 project authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Flags: --allow-natives-syntax
      6 
      7 // Neutered source
      8 var ab = new ArrayBuffer(10);
      9 ab.constructor = { get [Symbol.species]() { %ArrayBufferNeuter(ab); return ArrayBuffer; } };
     10 assertThrows(() => ab.slice(0), TypeError);
     11 
     12 // Neutered target
     13 class NeuteredArrayBuffer extends ArrayBuffer {
     14   constructor(...args) {
     15     super(...args);
     16     %ArrayBufferNeuter(this);
     17   }
     18 }
     19 
     20 var ab2 = new ArrayBuffer(10);
     21 ab2.constructor = NeuteredArrayBuffer;
     22 assertThrows(() => ab2.slice(0), TypeError);
     23