OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
| 5 // Flags: --harmony-species |
| 6 |
| 7 'use strict'; |
| 8 |
5 var typedArray = new Int8Array(1); | 9 var typedArray = new Int8Array(1); |
6 var saved; | 10 var saved; |
7 var called; | 11 var called; |
8 typedArray.constructor = function(x) { called = true; saved = x }; | 12 class TypedArraySubclass extends Int8Array { |
9 typedArray.constructor.prototype = Int8Array.prototype; | 13 constructor(x) { |
| 14 super(x); |
| 15 called = true; |
| 16 saved = x; |
| 17 } |
| 18 } |
| 19 typedArray.constructor = TypedArraySubclass |
10 typedArray.map(function(){}); | 20 typedArray.map(function(){}); |
11 | 21 |
12 // To meet the spec, constructor shouldn't be called directly, but | 22 assertTrue(called); |
13 // if it is called for now, the argument should be an Array | 23 assertEquals(saved, 1); |
14 assertTrue(called); // Will fail later; when so, delete this test | |
15 assertEquals("Array", saved.constructor.name); | |
OLD | NEW |