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

Side by Side Diff: tracing/tracing/base/iteration_helpers.html

Issue 2955043002: Remove tr.b.asArray. (Closed)
Patch Set: Created 3 years, 5 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 | « no previous file | tracing/tracing/base/iteration_helpers_test.html » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <!-- 2 <!--
3 Copyright (c) 2014 The Chromium Authors. All rights reserved. 3 Copyright (c) 2014 The Chromium Authors. All rights reserved.
4 Use of this source code is governed by a BSD-style license that can be 4 Use of this source code is governed by a BSD-style license that can be
5 found in the LICENSE file. 5 found in the LICENSE file.
6 --> 6 -->
7 7
8 <link rel="import" href="/tracing/base/base.html"> 8 <link rel="import" href="/tracing/base/base.html">
9 9
10 <script> 10 <script>
11 'use strict'; 11 'use strict';
12 12
13 tr.exportTo('tr.b', function() { 13 tr.exportTo('tr.b', function() {
14 /** 14 /**
15 * Converts any object which is either (a) an iterable, or (b) an
16 * "array-ish" object (has length property and can be indexed into)
17 * into an array.
18 */
19 function asArray(x) {
20 const values = [];
21 if (x[Symbol.iterator]) {
22 for (const value of x) {
23 values.push(value);
24 }
25 } else {
26 for (let i = 0; i < x.length; i++) {
27 values.push(x[i]);
28 }
29 }
30 return values;
31 }
32
33 /**
34 * Returns the only element in the iterable. If the iterable is empty or has 15 * Returns the only element in the iterable. If the iterable is empty or has
35 * more than one element, an error is thrown. 16 * more than one element, an error is thrown.
36 */ 17 */
37 function getOnlyElement(iterable) { 18 function getOnlyElement(iterable) {
38 const iterator = iterable[Symbol.iterator](); 19 const iterator = iterable[Symbol.iterator]();
39 20
40 const firstIteration = iterator.next(); 21 const firstIteration = iterator.next();
41 if (firstIteration.done) { 22 if (firstIteration.done) {
42 throw new Error('getOnlyElement was passed an empty iterable.'); 23 throw new Error('getOnlyElement was passed an empty iterable.');
43 } 24 }
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 if (!(a instanceof Set) || !(b instanceof Set)) return false; 317 if (!(a instanceof Set) || !(b instanceof Set)) return false;
337 if (a.size !== b.size) return false; 318 if (a.size !== b.size) return false;
338 // Avoid Array.from() here -- it creates garbage. 319 // Avoid Array.from() here -- it creates garbage.
339 for (const x of a) { 320 for (const x of a) {
340 if (!b.has(x)) return false; 321 if (!b.has(x)) return false;
341 } 322 }
342 return true; 323 return true;
343 } 324 }
344 325
345 return { 326 return {
346 asArray,
347 concatenateObjects, 327 concatenateObjects,
348 compareArrays, 328 compareArrays,
349 comparePossiblyUndefinedValues, 329 comparePossiblyUndefinedValues,
350 dictionaryContainsValue, 330 dictionaryContainsValue,
351 getOnlyElement, 331 getOnlyElement,
352 getFirstElement, 332 getFirstElement,
353 groupIntoMap, 333 groupIntoMap,
354 mapItems, 334 mapItems,
355 filterItems, 335 filterItems,
356 inPlaceFilter, 336 inPlaceFilter,
357 invertArrayOfDicts, 337 invertArrayOfDicts,
358 arrayToDict, 338 arrayToDict,
359 identity, 339 identity,
360 findFirstIndexInArray, 340 findFirstIndexInArray,
361 findFirstInArray, 341 findFirstInArray,
362 findFirstKeyInDictMatching, 342 findFirstKeyInDictMatching,
363 mapValues, 343 mapValues,
364 setsEqual, 344 setsEqual,
365 }; 345 };
366 }); 346 });
367 </script> 347 </script>
OLDNEW
« no previous file with comments | « no previous file | tracing/tracing/base/iteration_helpers_test.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698