Chromium Code Reviews| Index: test/mjsunit/es6/legacy-subclassing.js |
| diff --git a/test/mjsunit/es6/legacy-subclassing.js b/test/mjsunit/es6/legacy-subclassing.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..517efb755df08ab864c05e4fcb9205bbad30f67b |
| --- /dev/null |
| +++ b/test/mjsunit/es6/legacy-subclassing.js |
| @@ -0,0 +1,27 @@ |
| +// Copyright 2015 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. |
| + |
| +// Before Symbol.species was added, ArrayBuffer subclasses constructed |
|
adamk
2016/01/12 00:11:00
Might as well add:
// Flags: --noharmony-species
|
| +// ArrayBuffers, but TypedArray and Promise subclasses constructed an instance |
| +// of the subclass. |
| + |
| +'use strict'; |
| + |
| +assertEquals(undefined, Symbol.species); |
| + |
| +class MyUint8Array extends Uint8Array { } |
| +Object.defineProperty(MyUint8Array.prototype, "BYTES_PER_ELEMENT", {value: 1}); |
| +let myArray = new MyUint8Array(3); |
| +assertEquals(MyUint8Array, myArray.constructor); |
| +assertEquals(MyUint8Array, myArray.map(x => x + 1).constructor); |
| + |
| +class MyArrayBuffer extends ArrayBuffer { } |
| +let myBuffer = new MyArrayBuffer(0); |
| +assertEquals(MyArrayBuffer, myBuffer.constructor); |
| +assertEquals(ArrayBuffer, myBuffer.slice().constructor); |
| + |
| +class MyPromise extends Promise { } |
| +let myPromise = new MyPromise(() => {}); |
| +assertEquals(MyPromise, myPromise.constructor); |
| +assertEquals(MyPromise, myPromise.then().constructor); |