| Index: test/mjsunit/harmony/typedarrays-of.js
|
| diff --git a/test/mjsunit/harmony/typedarrays-of.js b/test/mjsunit/harmony/typedarrays-of.js
|
| deleted file mode 100644
|
| index 9df1d30c8eed87f3fc427a505d98e70078d5d76d..0000000000000000000000000000000000000000
|
| --- a/test/mjsunit/harmony/typedarrays-of.js
|
| +++ /dev/null
|
| @@ -1,135 +0,0 @@
|
| -// Copyright 2014 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.
|
| -
|
| -// Based on Mozilla Array.of() tests at http://dxr.mozilla.org/mozilla-central/source/js/src/jit-test/tests/collections
|
| -
|
| -// Flags: --harmony-arrays
|
| -
|
| -var typedArrayConstructors = [
|
| - Uint8Array,
|
| - Int8Array,
|
| - Uint16Array,
|
| - Int16Array,
|
| - Uint32Array,
|
| - Int32Array,
|
| - Uint8ClampedArray,
|
| - Float32Array,
|
| - Float64Array];
|
| -
|
| -
|
| -function TestTypedArrayOf(constructor) {
|
| - // %TypedArray%.of basics.
|
| - var a = constructor.of();
|
| - assertEquals(0, a.length);
|
| - assertEquals(constructor.prototype, Object.getPrototypeOf(a));
|
| - assertEquals(false, Array.isArray(a));
|
| -
|
| - // Items are coerced to numerical values.
|
| - a = constructor.of(undefined, null, [], true, false, 3.14);
|
| -
|
| - // For typed arrays of floating point values, values are not rounded.
|
| - if (constructor === Float32Array || constructor === Float64Array) {
|
| - assertEquals(NaN, a[0]);
|
| - assertEquals(0, a[1]);
|
| - assertEquals(0, a[2]);
|
| - assertEquals(1, a[3]);
|
| - assertEquals(0, a[4]);
|
| - assertEquals(true, Math.abs(a[5] - 3.14) < 1e-6);
|
| - } else {
|
| - assertEquals(0, a[0]);
|
| - assertEquals(0, a[1]);
|
| - assertEquals(0, a[2]);
|
| - assertEquals(1, a[3]);
|
| - assertEquals(0, a[4]);
|
| - assertEquals(3, a[5]);
|
| - }
|
| -
|
| - var aux = [];
|
| - for (var i = 0; i < 100; i++)
|
| - aux[i] = i;
|
| -
|
| - a = constructor.of.apply(constructor, aux);
|
| - assertEquals(aux.length, a.length);
|
| - assertArrayEquals(aux, a);
|
| -
|
| - // %TypedArray%.of can be transplanted to other constructors.
|
| - var hits = 0;
|
| - function Bag(length) {
|
| - assertEquals(arguments.length, 1);
|
| - assertEquals(length, 2);
|
| - this.length = length;
|
| - hits++;
|
| - }
|
| - Bag.of = constructor.of;
|
| -
|
| - hits = 0;
|
| - a = Bag.of("zero", "one");
|
| - assertEquals(1, hits);
|
| - assertEquals(2, a.length);
|
| - assertArrayEquals(["zero", "one"], a);
|
| - assertEquals(Bag.prototype, a.__proto__);
|
| -
|
| - hits = 0;
|
| - actual = constructor.of.call(Bag, "zero", "one");
|
| - assertEquals(1, hits);
|
| - assertEquals(2, a.length);
|
| - assertArrayEquals(["zero", "one"], a);
|
| - assertEquals(Bag.prototype, a.__proto__);
|
| -
|
| - // %TypedArray%.of does not trigger prototype setters.
|
| - // (It defines elements rather than assigning to them.)
|
| - var status = "pass";
|
| - Object.defineProperty(constructor.prototype, "0", {
|
| - set: function(v) { status = "fail"; }
|
| - });
|
| - assertEquals(1, constructor.of(1)[0], 1);
|
| - assertEquals("pass", status);
|
| -
|
| - // Note that %TypedArray%.of does not trigger "length" setter itself, as
|
| - // it relies on the constructor to set "length" to the value passed to it.
|
| - // If the constructor does not assign "length", the setter should not be
|
| - // invoked.
|
| -
|
| - // Setter on the newly created object.
|
| - function Pack() {
|
| - Object.defineProperty(this, "length", {
|
| - set: function (v) { status = "fail"; }
|
| - });
|
| - }
|
| - Pack.of = constructor.of;
|
| - var pack = Pack.of("wolves", "cards", "cigarettes", "lies");
|
| - assertEquals("pass", status);
|
| -
|
| - // when the setter is on the new object's prototype
|
| - function Bevy() {}
|
| - Object.defineProperty(Bevy.prototype, "length", {
|
| - set: function (v) { status = "fail"; }
|
| - });
|
| - Bevy.of = constructor.of;
|
| - var bevy = Bevy.of("quail");
|
| - assertEquals("pass", status);
|
| -
|
| - // Check superficial features of %TypedArray%.of.
|
| - var desc = Object.getOwnPropertyDescriptor(constructor, "of");
|
| -
|
| - assertEquals(desc.configurable, false);
|
| - assertEquals(desc.enumerable, false);
|
| - assertEquals(desc.writable, false);
|
| - assertEquals(constructor.of.length, 0);
|
| -
|
| - // %TypedArray%.of is not a constructor.
|
| - assertThrows(function() { new constructor.of(); }, TypeError);
|
| -
|
| - // For receivers which are not constructors %TypedArray%.of does not
|
| - // allocate a typed array using a default constructor, but throws an
|
| - // exception. Note that this is different from Array.of, which uses
|
| - // Array as default constructor.
|
| - for (var x of [undefined, null, false, true, "cow", 42, 3.14]) {
|
| - assertThrows(function () { constructor.of.call(x); }, TypeError);
|
| - }
|
| -}
|
| -
|
| -for (var constructor of typedArrayConstructors) {
|
| - TestTypedArrayOf(constructor);
|
| -}
|
|
|