Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(57)

Side by Side Diff: test/mjsunit/es6/typedarray-iteration.js

Issue 2793233003: Revert of [typedarrays] Check detached buffer at start of typed array methods (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « test/mjsunit/es6/typedarray-indexing.js ('k') | test/mjsunit/es6/typedarray-reduce.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 // Tests for standard TypedArray array iteration functions. 5 // Tests for standard TypedArray array iteration functions.
6 6
7 // Flags: --allow-natives-syntax
8
9 var typedArrayConstructors = [ 7 var typedArrayConstructors = [
10 Uint8Array, 8 Uint8Array,
11 Int8Array, 9 Int8Array,
12 Uint16Array, 10 Uint16Array,
13 Int16Array, 11 Int16Array,
14 Uint32Array, 12 Uint32Array,
15 Int32Array, 13 Int32Array,
16 Uint8ClampedArray, 14 Uint8ClampedArray,
17 Float32Array, 15 Float32Array,
18 Float64Array 16 Float64Array
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 assertThrows(function() { 70 assertThrows(function() {
73 constructor.prototype.filter.call([], function() {}); 71 constructor.prototype.filter.call([], function() {});
74 }, TypeError); 72 }, TypeError);
75 73
76 // Shadowing the length property doesn't change anything 74 // Shadowing the length property doesn't change anything
77 a = new constructor([1, 2]); 75 a = new constructor([1, 2]);
78 Object.defineProperty(a, 'length', { value: 1 }); 76 Object.defineProperty(a, 'length', { value: 1 });
79 assertArrayLikeEquals([2], a.filter(function(elt) { 77 assertArrayLikeEquals([2], a.filter(function(elt) {
80 return elt == 2; 78 return elt == 2;
81 }), constructor); 79 }), constructor);
82
83 // Detached Operation
84 var array = new constructor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
85 %ArrayBufferNeuter(array.buffer);
86 assertThrows(() => array.filter(() => false), TypeError);
87 })(); 80 })();
88 81
89 (function TypedArrayMapTest() { 82 (function TypedArrayMapTest() {
90 var a = new constructor([0, 1, 2, 3, 4]); 83 var a = new constructor([0, 1, 2, 3, 4]);
91 84
92 // Simple use. 85 // Simple use.
93 var result = [1, 2, 3, 4, 5]; 86 var result = [1, 2, 3, 4, 5];
94 assertArrayLikeEquals(result, a.map(function(n) { return n + 1; }), 87 assertArrayLikeEquals(result, a.map(function(n) { return n + 1; }),
95 constructor); 88 constructor);
96 assertEquals(a, a); 89 assertEquals(a, a);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 123
131 // Test that the result is converted to the right type 124 // Test that the result is converted to the right type
132 assertArrayLikeEquals([3, 3], new constructor([1, 2]).map(function() { 125 assertArrayLikeEquals([3, 3], new constructor([1, 2]).map(function() {
133 return "3"; 126 return "3";
134 }), constructor); 127 }), constructor);
135 if (constructor !== Float32Array && constructor !== Float64Array) { 128 if (constructor !== Float32Array && constructor !== Float64Array) {
136 assertArrayLikeEquals([0, 0], new constructor([1, 2]).map(function() { 129 assertArrayLikeEquals([0, 0], new constructor([1, 2]).map(function() {
137 return NaN; 130 return NaN;
138 }), constructor); 131 }), constructor);
139 } 132 }
140
141 // Detached Operation
142 var array = new constructor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
143 %ArrayBufferNeuter(array.buffer);
144 assertThrows(() => array.map((v) => v), TypeError);
145 })(); 133 })();
146 134
147 // 135 //
148 // %TypedArray%.prototype.some 136 // %TypedArray%.prototype.some
149 // 137 //
150 (function TypedArraySomeTest() { 138 (function TypedArraySomeTest() {
151 var a = new constructor([0, 1, 2, 3, 4]); 139 var a = new constructor([0, 1, 2, 3, 4]);
152 140
153 // Simple use. 141 // Simple use.
154 assertTrue(a.some(function(n) { return n == 3})); 142 assertTrue(a.some(function(n) { return n == 3}));
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 constructor.prototype.some.call([], function() {}); 182 constructor.prototype.some.call([], function() {});
195 }, TypeError); 183 }, TypeError);
196 184
197 // Shadowing the length property doesn't change anything 185 // Shadowing the length property doesn't change anything
198 a = new constructor([1, 2]); 186 a = new constructor([1, 2]);
199 Object.defineProperty(a, 'length', { value: 1 }); 187 Object.defineProperty(a, 'length', { value: 1 });
200 assertEquals(true, a.some(function(elt) { return elt == 2; })); 188 assertEquals(true, a.some(function(elt) { return elt == 2; }));
201 assertEquals(false, Array.prototype.some.call(a, function(elt) { 189 assertEquals(false, Array.prototype.some.call(a, function(elt) {
202 return elt == 2; 190 return elt == 2;
203 })); 191 }));
204
205 // Detached Operation
206 var array = new constructor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
207 %ArrayBufferNeuter(array.buffer);
208 assertThrows(() => array.some((v) => false), TypeError);
209 })(); 192 })();
210 193
211 } 194 }
OLDNEW
« no previous file with comments | « test/mjsunit/es6/typedarray-indexing.js ('k') | test/mjsunit/es6/typedarray-reduce.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698