(string: string)
| 68 | } |
| 69 | |
| 70 | function cachedHashString(string: string): number { |
| 71 | let hashed = stringHashCache[string]; |
| 72 | if (hashed === undefined) { |
| 73 | hashed = hashString(string); |
| 74 | if (STRING_HASH_CACHE_SIZE === STRING_HASH_CACHE_MAX_SIZE) { |
| 75 | STRING_HASH_CACHE_SIZE = 0; |
| 76 | stringHashCache = {}; |
| 77 | } |
| 78 | STRING_HASH_CACHE_SIZE++; |
| 79 | stringHashCache[string] = hashed; |
| 80 | } |
| 81 | return hashed; |
| 82 | } |
| 83 | |
| 84 | // http://jsperf.com/hashing-strings |
| 85 | function hashString(string: string): number { |