| 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 |