OLD | NEW |
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> |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
262 * element and returns a value that is coerced to a boolean. Defaults to | 262 * element and returns a value that is coerced to a boolean. Defaults to |
263 * the identity function. | 263 * the identity function. |
264 * @param {*=} opt_this Optional 'this' context for opt_func. | 264 * @param {*=} opt_this Optional 'this' context for opt_func. |
265 */ | 265 */ |
266 function findFirstInArray(ary, opt_func, opt_this) { | 266 function findFirstInArray(ary, opt_func, opt_this) { |
267 const i = findFirstIndexInArray(ary, opt_func, opt_func); | 267 const i = findFirstIndexInArray(ary, opt_func, opt_func); |
268 if (i === -1) return undefined; | 268 if (i === -1) return undefined; |
269 return ary[i]; | 269 return ary[i]; |
270 } | 270 } |
271 | 271 |
272 /** | |
273 * Returns the key of the first dictionary entry for which |opt_func| returns | |
274 * a truthy value. | |
275 * | |
276 * @param {!Object} dict The dictionary being searched. | |
277 * @param {function(*, *): *=} opt_func The test function which accepts a | |
278 * dictionary key as its first parameter, the corresponding dictionary | |
279 * value as its second parameter, and returns a value that is coerced to a | |
280 * boolean. Defaults to the identity function (which returns the key). | |
281 * @param {*=} opt_this Optional 'this' context for opt_func. | |
282 */ | |
283 function findFirstKeyInDictMatching(dict, opt_func, opt_this) { | |
284 const func = opt_func || (x => x); | |
285 for (const key in dict) { | |
286 if (func.call(opt_this, key, dict[key])) { | |
287 return key; | |
288 } | |
289 } | |
290 return undefined; | |
291 } | |
292 | |
293 /** Returns the values in an ES6 Map object. */ | 272 /** Returns the values in an ES6 Map object. */ |
294 function mapValues(map) { | 273 function mapValues(map) { |
295 const values = []; | 274 const values = []; |
296 for (const value of map.values()) { | 275 for (const value of map.values()) { |
297 values.push(value); | 276 values.push(value); |
298 } | 277 } |
299 return values; | 278 return values; |
300 } | 279 } |
301 | 280 |
302 function setsEqual(a, b) { | 281 function setsEqual(a, b) { |
(...skipping 13 matching lines...) Expand all Loading... |
316 getOnlyElement, | 295 getOnlyElement, |
317 getFirstElement, | 296 getFirstElement, |
318 groupIntoMap, | 297 groupIntoMap, |
319 mapItems, | 298 mapItems, |
320 filterItems, | 299 filterItems, |
321 inPlaceFilter, | 300 inPlaceFilter, |
322 invertArrayOfDicts, | 301 invertArrayOfDicts, |
323 arrayToDict, | 302 arrayToDict, |
324 findFirstIndexInArray, | 303 findFirstIndexInArray, |
325 findFirstInArray, | 304 findFirstInArray, |
326 findFirstKeyInDictMatching, | |
327 mapValues, | 305 mapValues, |
328 setsEqual, | 306 setsEqual, |
329 }; | 307 }; |
330 }); | 308 }); |
331 </script> | 309 </script> |
OLD | NEW |