158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)/** 658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) * @fileoverview Some utility functions that don't belong anywhere else in the 758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) * code. 858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) */ 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)var util = (function() { 1158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) var util = {}; 1258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) util.object = {}; 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) * Calls a function for each element in an object/map/hash. 1558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) * 1658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) * @param obj The object to iterate over. 1758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) * @param f The function to call on every value in the object. F should have 1858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) * the following arguments: f(value, key, object) where value is the value 1958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) * of the property, key is the corresponding key, and obj is the object that 2058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) * was passed in originally. 2158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) * @param optObj The object use as 'this' within f. 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 2358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) util.object.forEach = function(obj, f, optObj) { 2458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 'use strict'; 2558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) var key; 2658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) for (key in obj) { 2758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) if (obj.hasOwnProperty(key)) { 2858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) f.call(optObj, obj[key], key, obj); 2958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 3058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 3158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) }; 3258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) util.millisecondsToString = function(timeMillis) { 3358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) function pad(num) { 3458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) num = num.toString(); 3558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) if (num.length < 2) { 3658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return '0' + num; 3758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 3858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return num; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) var date = new Date(timeMillis); 4258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return pad(date.getUTCHours()) + ':' + pad(date.getUTCMinutes()) + ':' + 4358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) pad(date.getUTCSeconds()) + ' ' + pad((date.getMilliseconds()) % 1000); 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 4558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 4658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return util; 4758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)}()); 48