| 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> |
| 11 'use strict'; | 11 'use strict'; |
| 12 | 12 |
| 13 tr.exportTo('tr.b', function() { | 13 tr.exportTo('tr.b', function() { |
| 14 const URL_REGEX = /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,
6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$/; // eslint-disable-line max-len | 14 const URL_REGEX = /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,
6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$/; // eslint-disable-line max-len |
| 15 | 15 |
| 16 /** | |
| 17 * Adds a {@code getInstance} static method that always return the same | |
| 18 * instance object. | |
| 19 * @param {!Function} ctor The constructor for the class to add the static | |
| 20 * method to. | |
| 21 */ | |
| 22 function addSingletonGetter(ctor) { | |
| 23 ctor.getInstance = function() { | |
| 24 return ctor.instance_ || (ctor.instance_ = new ctor()); | |
| 25 }; | |
| 26 } | |
| 27 | |
| 28 function deepCopy(value) { | 16 function deepCopy(value) { |
| 29 if (!(value instanceof Object)) { | 17 if (!(value instanceof Object)) { |
| 30 if (value === undefined || value === null) return value; | 18 if (value === undefined || value === null) return value; |
| 31 if (typeof value === 'string') return value.substring(); | 19 if (typeof value === 'string') return value.substring(); |
| 32 if (typeof value === 'boolean') return value; | 20 if (typeof value === 'boolean') return value; |
| 33 if (typeof value === 'number') return value; | 21 if (typeof value === 'number') return value; |
| 34 throw new Error('Unrecognized: ' + typeof value); | 22 throw new Error('Unrecognized: ' + typeof value); |
| 35 } | 23 } |
| 36 | 24 |
| 37 const object = value; | 25 const object = value; |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 182 | 170 |
| 183 /** | 171 /** |
| 184 * @param {string} s | 172 * @param {string} s |
| 185 * @return {boolean} | 173 * @return {boolean} |
| 186 */ | 174 */ |
| 187 function isUrl(s) { | 175 function isUrl(s) { |
| 188 return typeof(s) === 'string' && s.match(URL_REGEX) !== null; | 176 return typeof(s) === 'string' && s.match(URL_REGEX) !== null; |
| 189 } | 177 } |
| 190 | 178 |
| 191 return { | 179 return { |
| 192 addSingletonGetter, | |
| 193 deepCopy, | 180 deepCopy, |
| 194 formatDate, | 181 formatDate, |
| 195 getUsingPath, | 182 getUsingPath, |
| 196 isUrl, | 183 isUrl, |
| 197 normalizeException, | 184 normalizeException, |
| 198 numberFromJson, | 185 numberFromJson, |
| 199 numberToJson, | 186 numberToJson, |
| 200 runLengthEncoding, | 187 runLengthEncoding, |
| 201 stackTrace, | 188 stackTrace, |
| 202 stackTraceAsString, | 189 stackTraceAsString, |
| 203 }; | 190 }; |
| 204 }); | 191 }); |
| 205 </script> | 192 </script> |
| OLD | NEW |