Index: test/mjsunit/regress/regress-4964.js |
diff --git a/test/mjsunit/regress/regress-4964.js b/test/mjsunit/regress/regress-4964.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d834708667d35f0c3e9c5a9de014f60742492d50 |
--- /dev/null |
+++ b/test/mjsunit/regress/regress-4964.js |
@@ -0,0 +1,22 @@ |
+// Copyright 2016 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 |
+ |
+// Neutered source |
+var ab = new ArrayBuffer(10); |
+ab.constructor = { get [Symbol.species]() { %ArrayBufferNeuter(ab); return ArrayBuffer; } }; |
+assertThrows(() => ab.slice(0), TypeError); |
+ |
+// Neutered target |
+class NeuteredArrayBuffer extends ArrayBuffer { |
+ constructor(...args) { |
+ super(...args); |
+ %ArrayBufferNeuter(this); |
+ } |
+} |
+ |
+var ab2 = new ArrayBuffer(10); |
+ab2.constructor = NeuteredArrayBuffer; |
+assertThrows(() => ab2.slice(0), TypeError); |