| // Copyright 2017 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. |
| |
| var ab = new Int8Array(20).map((v, i) => i).buffer; |
| var ta = new Int8Array(ab, 0, 10); |
| var seen_length = -1; |
| ta.constructor = { |
| [Symbol.species]: function(len) { |
| seen_length = len; |
| return new Int8Array(ab, 1, len); |
| } |
| }; |
| |
| assertEquals(-1, seen_length); |
| assertArrayEquals([0,1,2,3,4,5,6,7,8,9], ta); |
| var tb = ta.slice(); |
| assertEquals(10, seen_length); |
| assertArrayEquals([0,0,0,0,0,0,0,0,0,0], ta); |
| assertArrayEquals([0,0,0,0,0,0,0,0,0,0], tb); |