Use macro style for more internal helpers; Update dist files

This commit is contained in:
dcodeIO
2018-12-08 23:38:49 +01:00
parent b585703eae
commit 3ed83ef3ae
37 changed files with 544 additions and 543 deletions

View File

@ -3,7 +3,7 @@ import {
} from "./internal/arraybuffer";
import {
hash
HASH
} from "./internal/hash";
// A deterministic hash map based on CloseTable from https://github.com/jorendorff/dht
@ -80,16 +80,16 @@ export class Map<K,V> {
}
has(key: K): bool {
return this.find(key, hash<K>(key)) !== null;
return this.find(key, HASH<K>(key)) !== null;
}
get(key: K): V {
var entry = this.find(key, hash<K>(key));
var entry = this.find(key, HASH<K>(key));
return entry ? entry.value : <V>unreachable();
}
set(key: K, value: V): void {
var hashCode = hash<K>(key);
var hashCode = HASH<K>(key);
var entry = this.find(key, hashCode);
if (entry) {
entry.value = value;
@ -120,7 +120,7 @@ export class Map<K,V> {
}
delete(key: K): bool {
var entry = this.find(key, hash<K>(key));
var entry = this.find(key, HASH<K>(key));
if (!entry) return false;
entry.taggedNext |= EMPTY;
--this.entriesCount;
@ -149,7 +149,7 @@ export class Map<K,V> {
let newEntry = changetype<MapEntry<K,V>>(newPtr);
newEntry.key = oldEntry.key;
newEntry.value = oldEntry.value;
let newBucketIndex = hash<K>(oldEntry.key) & newBucketsMask;
let newBucketIndex = HASH<K>(oldEntry.key) & newBucketsMask;
let newBucketPtrBase = changetype<usize>(newBuckets) + <usize>newBucketIndex * BUCKET_SIZE;
newEntry.taggedNext = load<usize>(newBucketPtrBase, HEADER_SIZE_AB);
store<usize>(newBucketPtrBase, newPtr, HEADER_SIZE_AB);