Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 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 | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 // Before Symbol.species was added, ArrayBuffer subclasses constructed | |
|
adamk
2016/01/12 00:11:00
Might as well add:
// Flags: --noharmony-species
| |
| 6 // ArrayBuffers, but TypedArray and Promise subclasses constructed an instance | |
| 7 // of the subclass. | |
| 8 | |
| 9 'use strict'; | |
| 10 | |
| 11 assertEquals(undefined, Symbol.species); | |
| 12 | |
| 13 class MyUint8Array extends Uint8Array { } | |
| 14 Object.defineProperty(MyUint8Array.prototype, "BYTES_PER_ELEMENT", {value: 1}); | |
| 15 let myArray = new MyUint8Array(3); | |
| 16 assertEquals(MyUint8Array, myArray.constructor); | |
| 17 assertEquals(MyUint8Array, myArray.map(x => x + 1).constructor); | |
| 18 | |
| 19 class MyArrayBuffer extends ArrayBuffer { } | |
| 20 let myBuffer = new MyArrayBuffer(0); | |
| 21 assertEquals(MyArrayBuffer, myBuffer.constructor); | |
| 22 assertEquals(ArrayBuffer, myBuffer.slice().constructor); | |
| 23 | |
| 24 class MyPromise extends Promise { } | |
| 25 let myPromise = new MyPromise(() => {}); | |
| 26 assertEquals(MyPromise, myPromise.constructor); | |
| 27 assertEquals(MyPromise, myPromise.then().constructor); | |
| OLD | NEW |