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

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

Issue 2162963002: [polymer] Merge of master into polymer10-migration (Closed) Base URL: git@github.com:catapult-project/catapult.git@polymer10-migration
Patch Set: Merge polymer10-migration int polymer10-merge Created 4 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 | « tracing/tracing/base/extension_registry.html ('k') | tracing/tracing/base/math.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 /**
15 * Converts any object which is either (a) an iterable, or (b) an 16 * Converts any object which is either (a) an iterable, or (b) an
16 * "array-ish" obect (has length property and can be indexed into) 17 * "array-ish" object (has length property and can be indexed into)
17 * into an array. 18 * into an array.
18 */ 19 */
19 function asArray(x) { 20 function asArray(x) {
20 var values = []; 21 var values = [];
21 if (x[Symbol.iterator]) 22 if (x[Symbol.iterator])
22 for (var value of x) 23 for (var value of x)
23 values.push(value); 24 values.push(value);
24 else 25 else
25 for (var i = 0; i < x.length; i++) 26 for (var i = 0; i < x.length; i++)
26 values.push(x[i]); 27 values.push(x[i]);
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 function every(iterable, predicate) { 167 function every(iterable, predicate) {
167 for (var x of iterable) 168 for (var x of iterable)
168 if (!predicate(x)) 169 if (!predicate(x))
169 return false; 170 return false;
170 return true; 171 return true;
171 } 172 }
172 173
173 /** 174 /**
174 * Returns a new dictionary with items grouped by the return value of the 175 * Returns a new dictionary with items grouped by the return value of the
175 * specified function being called on each item. 176 * specified function being called on each item.
176 * @param {!Array.<Object>} ary The array being iterated through 177 * @param {!Array.<!*>} ary The array being iterated through
177 * @param {!Function} fn The mapping function between the array value and the 178 * @param {!function(!*):!*} callback The mapping function between the array
178 * map key. 179 * value and the map key.
180 * @param {*=} opt_this
179 */ 181 */
180 function group(ary, fn) { 182 function group(ary, callback, opt_this) {
181 return ary.reduce(function(accumulator, curr) { 183 var results = {};
182 var key = fn(curr); 184 for (var element of ary) {
183 185 var key = callback.call(opt_this, element);
184 if (key in accumulator) 186 if (key in results)
185 accumulator[key].push(curr); 187 results[key].push(element);
186 else 188 else
187 accumulator[key] = [curr]; 189 results[key] = [element];
188 190 }
189 return accumulator; 191 return results;
190 }, {});
191 } 192 }
192 193
193 function iterItems(dict, fn, opt_this) { 194 function iterItems(dict, fn, opt_this) {
194 opt_this = opt_this || this; 195 opt_this = opt_this || this;
195 var keys = Object.keys(dict); 196 var keys = Object.keys(dict);
196 for (var i = 0; i < keys.length; i++) { 197 for (var i = 0; i < keys.length; i++) {
197 var key = keys[i]; 198 var key = keys[i];
198 fn.call(opt_this, key, dict[key]); 199 fn.call(opt_this, key, dict[key]);
199 } 200 }
200 } 201 }
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
438 arrayToDict: arrayToDict, 439 arrayToDict: arrayToDict,
439 identity: identity, 440 identity: identity,
440 findFirstIndexInArray: findFirstIndexInArray, 441 findFirstIndexInArray: findFirstIndexInArray,
441 findFirstInArray: findFirstInArray, 442 findFirstInArray: findFirstInArray,
442 findFirstKeyInDictMatching: findFirstKeyInDictMatching, 443 findFirstKeyInDictMatching: findFirstKeyInDictMatching,
443 mapValues: mapValues, 444 mapValues: mapValues,
444 iterMapItems: iterMapItems 445 iterMapItems: iterMapItems
445 }; 446 };
446 }); 447 });
447 </script> 448 </script>
OLDNEW
« no previous file with comments | « tracing/tracing/base/extension_registry.html ('k') | tracing/tracing/base/math.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698