// Copyright 2018 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Flags: --allow-natives-syntax

var buffer = new ArrayBuffer(1024 * 1024);
buffer.constructor = {
  [Symbol.species]: new Proxy(function() {}, {
    get: _ => {
      %ArrayBufferDetach(buffer);
    }
  })
};
var array1 = new Uint8Array(buffer, 0, 1024);
assertThrows(() => new Uint8Array(array1));
assertThrows(() => new Int8Array(array1));
