| // 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); |