Index: test/mjsunit/es6/typedarray-reduce.js |
diff --git a/test/mjsunit/es6/typedarray-reduce.js b/test/mjsunit/es6/typedarray-reduce.js |
index 1fddeca0bc749973a8f1ef68b4c6716cb0ad50b0..ba5d7f7a20dcdd52ce7afb6df1d64faa81ca5e92 100644 |
--- a/test/mjsunit/es6/typedarray-reduce.js |
+++ b/test/mjsunit/es6/typedarray-reduce.js |
@@ -2,6 +2,8 @@ |
// 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 typedArrayConstructors = [ |
Uint8Array, |
Int8Array, |
@@ -247,4 +249,18 @@ for (var constructor of typedArrayConstructors) { |
assertEquals(1, constructor.prototype.reduce.length); |
assertEquals(1, constructor.prototype.reduceRight.length); |
+ |
+ // Detached Operation |
+ var tmp = { |
+ [Symbol.toPrimitive]() { |
+ assertUnreachable("Parameter should not be processed when " + |
+ "array.[[ViewedArrayBuffer]] is neutered."); |
+ return 0; |
+ } |
+ }; |
+ |
+ var array = new constructor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); |
+ %ArrayBufferNeuter(array.buffer); |
+ assertThrows(() => array.reduce(sum, tmp), TypeError); |
+ assertThrows(() => array.reduceRight(sum, tmp), TypeError); |
} |