| Index: test/mjsunit/harmony/typedarray-iteration.js
|
| diff --git a/test/mjsunit/harmony/typedarray-iteration.js b/test/mjsunit/harmony/typedarray-iteration.js
|
| deleted file mode 100644
|
| index 85c509193d0671bdecbf02b7fc36e60af9e941c4..0000000000000000000000000000000000000000
|
| --- a/test/mjsunit/harmony/typedarray-iteration.js
|
| +++ /dev/null
|
| @@ -1,196 +0,0 @@
|
| -// 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.
|
| -
|
| -// Flags: --harmony-arrays
|
| -
|
| -// Tests for standard TypedArray array iteration functions.
|
| -
|
| -var typedArrayConstructors = [
|
| - Uint8Array,
|
| - Int8Array,
|
| - Uint16Array,
|
| - Int16Array,
|
| - Uint32Array,
|
| - Int32Array,
|
| - Uint8ClampedArray,
|
| - Float32Array,
|
| - Float64Array
|
| -];
|
| -
|
| -function assertArrayLikeEquals(expected, value, type) {
|
| - assertEquals(value.__proto__, type.prototype);
|
| - assertEquals(expected.length, value.length);
|
| - for (var i = 0; i < value.length; ++i) {
|
| - assertEquals(expected[i], value[i]);
|
| - }
|
| -}
|
| -
|
| -for (var constructor of typedArrayConstructors) {
|
| - (function TypedArrayFilterTest() {
|
| - // Simple use.
|
| - var a = new constructor([0, 1]);
|
| - assertArrayLikeEquals([0], a.filter(function(n) { return n == 0; }),
|
| - constructor);
|
| - assertArrayLikeEquals([0, 1], a, constructor);
|
| -
|
| - // Use specified object as this object when calling the function.
|
| - var o = { value: 42 }
|
| - a = new constructor([1, 42, 3, 42, 4]);
|
| - assertArrayLikeEquals([42, 42], a.filter(function(n) {
|
| - return this.value == n
|
| - }, o), constructor);
|
| -
|
| - // Modify original array.
|
| - a = new constructor([1, 42, 3, 42, 4]);
|
| - assertArrayLikeEquals([42, 42], a.filter(function(n, index, array) {
|
| - array[index] = 43; return 42 == n;
|
| - }), constructor);
|
| - assertArrayLikeEquals([43, 43, 43, 43, 43], a, constructor);
|
| -
|
| - // Create a new object in each function call when receiver is a
|
| - // primitive value. See ECMA-262, Annex C.
|
| - a = [];
|
| - new constructor([1, 2]).filter(function() { a.push(this) }, '');
|
| - assertTrue(a[0] !== a[1]);
|
| -
|
| - // Do not create a new object otherwise.
|
| - a = [];
|
| - new constructor([1, 2]).filter(function() { a.push(this) }, {});
|
| - assertEquals(a[0], a[1]);
|
| -
|
| - // In strict mode primitive values should not be coerced to an object.
|
| - a = [];
|
| - new constructor([1, 2]).filter(function() {
|
| - 'use strict';
|
| - a.push(this);
|
| - }, '');
|
| - assertEquals('', a[0]);
|
| - assertEquals(a[0], a[1]);
|
| -
|
| - // Calling this method on other types is a TypeError
|
| - assertThrows(function() {
|
| - constructor.prototype.filter.call([], function() {});
|
| - }, TypeError);
|
| -
|
| - // Shadowing the length property doesn't change anything
|
| - a = new constructor([1, 2]);
|
| - Object.defineProperty(a, 'length', { value: 1 });
|
| - assertArrayLikeEquals([2], a.filter(function(elt) {
|
| - return elt == 2;
|
| - }), constructor);
|
| - })();
|
| -
|
| - (function TypedArrayMapTest() {
|
| - var a = new constructor([0, 1, 2, 3, 4]);
|
| -
|
| - // Simple use.
|
| - var result = [1, 2, 3, 4, 5];
|
| - assertArrayLikeEquals(result, a.map(function(n) { return n + 1; }),
|
| - constructor);
|
| - assertEquals(a, a);
|
| -
|
| - // Use specified object as this object when calling the function.
|
| - var o = { delta: 42 }
|
| - result = [42, 43, 44, 45, 46];
|
| - assertArrayLikeEquals(result, a.map(function(n) {
|
| - return this.delta + n;
|
| - }, o), constructor);
|
| -
|
| - // Modify original array.
|
| - a = new constructor([0, 1, 2, 3, 4]);
|
| - result = [1, 2, 3, 4, 5];
|
| - assertArrayLikeEquals(result, a.map(function(n, index, array) {
|
| - array[index] = n + 1;
|
| - return n + 1;
|
| - }), constructor);
|
| - assertArrayLikeEquals(result, a, constructor);
|
| -
|
| - // Create a new object in each function call when receiver is a
|
| - // primitive value. See ECMA-262, Annex C.
|
| - a = [];
|
| - new constructor([1, 2]).map(function() { a.push(this) }, '');
|
| - assertTrue(a[0] !== a[1]);
|
| -
|
| - // Do not create a new object otherwise.
|
| - a = [];
|
| - new constructor([1, 2]).map(function() { a.push(this) }, {});
|
| - assertEquals(a[0], a[1]);
|
| -
|
| - // In strict mode primitive values should not be coerced to an object.
|
| - a = [];
|
| - new constructor([1, 2]).map(function() { 'use strict'; a.push(this); }, '');
|
| - assertEquals('', a[0]);
|
| - assertEquals(a[0], a[1]);
|
| -
|
| - // Test that the result is converted to the right type
|
| - assertArrayLikeEquals([3, 3], new constructor([1, 2]).map(function() {
|
| - return "3";
|
| - }), constructor);
|
| - if (constructor !== Float32Array && constructor !== Float64Array) {
|
| - assertArrayLikeEquals([0, 0], new constructor([1, 2]).map(function() {
|
| - return NaN;
|
| - }), constructor);
|
| - }
|
| - })();
|
| -
|
| - //
|
| - // %TypedArray%.prototype.some
|
| - //
|
| - (function TypedArraySomeTest() {
|
| - var a = new constructor([0, 1, 2, 3, 4]);
|
| -
|
| - // Simple use.
|
| - assertTrue(a.some(function(n) { return n == 3}));
|
| - assertFalse(a.some(function(n) { return n == 5}));
|
| -
|
| - // Use specified object as this object when calling the function.
|
| - var o = { element: 42 };
|
| - a = new constructor([1, 42, 3]);
|
| - assertTrue(a.some(function(n) { return this.element == n; }, o));
|
| - a = new constructor([1]);
|
| - assertFalse(a.some(function(n) { return this.element == n; }, o));
|
| -
|
| - // Modify original array.
|
| - a = new constructor([0, 1, 2, 3]);
|
| - assertTrue(a.some(function(n, index, array) {
|
| - array[index] = n + 1;
|
| - return n == 2;
|
| - }));
|
| - assertArrayLikeEquals([1, 2, 3, 3], a, constructor);
|
| -
|
| - // Create a new object in each function call when receiver is a
|
| - // primitive value. See ECMA-262, Annex C.
|
| - a = [];
|
| - new constructor([1, 2]).some(function() { a.push(this) }, '');
|
| - assertTrue(a[0] !== a[1]);
|
| -
|
| - // Do not create a new object otherwise.
|
| - a = [];
|
| - new constructor([1, 2]).some(function() { a.push(this) }, {});
|
| - assertEquals(a[0], a[1]);
|
| -
|
| - // In strict mode primitive values should not be coerced to an object.
|
| - a = [];
|
| - new constructor([1, 2]).some(function() {
|
| - 'use strict';
|
| - a.push(this);
|
| - }, '');
|
| - assertEquals('', a[0]);
|
| - assertEquals(a[0], a[1]);
|
| -
|
| - // Calling this method on other types is a TypeError
|
| - assertThrows(function() {
|
| - constructor.prototype.some.call([], function() {});
|
| - }, TypeError);
|
| -
|
| - // Shadowing the length property doesn't change anything
|
| - a = new constructor([1, 2]);
|
| - Object.defineProperty(a, 'length', { value: 1 });
|
| - assertEquals(true, a.some(function(elt) { return elt == 2; }));
|
| - assertEquals(false, Array.prototype.some.call(a, function(elt) {
|
| - return elt == 2;
|
| - }));
|
| - })();
|
| -
|
| -}
|
|
|