OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library engine.utilities.general; | 5 library engine.utilities.general; |
6 | 6 |
7 import 'dart:collection'; | 7 import 'dart:collection'; |
8 import 'dart:developer' show UserTag; | 8 import 'dart:developer' show UserTag; |
9 | 9 |
10 /** | 10 /** |
| 11 * Test if the given [value] is `true` or the string "true" (case-insensitive). |
| 12 */ |
| 13 bool isTrue(Object value) => |
| 14 value is bool ? value : toLowerCase(value) == 'true'; |
| 15 |
| 16 /** |
| 17 * Safely convert this [value] to lower case, returning `null` if [value] is |
| 18 * null. |
| 19 */ |
| 20 String toLowerCase(Object value) => value?.toString()?.toLowerCase(); |
| 21 |
| 22 /** |
| 23 * Safely convert this [value] to upper case, returning `null` if [value] is |
| 24 * null. |
| 25 */ |
| 26 String toUpperCase(Object value) => value?.toString()?.toUpperCase(); |
| 27 |
| 28 /** |
11 * Jenkins hash function, optimized for small integers. | 29 * Jenkins hash function, optimized for small integers. |
12 * Borrowed from sdk/lib/math/jenkins_smi_hash.dart. | 30 * Borrowed from sdk/lib/math/jenkins_smi_hash.dart. |
13 */ | 31 */ |
14 class JenkinsSmiHash { | 32 class JenkinsSmiHash { |
15 static int combine(int hash, int value) { | 33 static int combine(int hash, int value) { |
16 hash = 0x1fffffff & (hash + value); | 34 hash = 0x1fffffff & (hash + value); |
17 hash = 0x1fffffff & (hash + ((0x0007ffff & hash) << 10)); | 35 hash = 0x1fffffff & (hash + ((0x0007ffff & hash) << 10)); |
18 return hash ^ (hash >> 6); | 36 return hash ^ (hash >> 6); |
19 } | 37 } |
20 | 38 |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 | 184 |
167 makeCurrentWhile(f()) { | 185 makeCurrentWhile(f()) { |
168 PerformanceTag prevTag = makeCurrent(); | 186 PerformanceTag prevTag = makeCurrent(); |
169 try { | 187 try { |
170 return f(); | 188 return f(); |
171 } finally { | 189 } finally { |
172 prevTag.makeCurrent(); | 190 prevTag.makeCurrent(); |
173 } | 191 } |
174 } | 192 } |
175 } | 193 } |
OLD | NEW |