@@ -88,8 +88,9 @@ export class Map<K,V> {
8888 changetype < usize > ( this . buckets ) + < usize > ( hashCode & this . bucketsMask ) * BUCKET_SIZE
8989 ) ;
9090 while ( entry ) {
91- if ( ! ( entry . taggedNext & EMPTY ) && entry . key == key ) return entry ;
92- entry = changetype < MapEntry < K , V > > ( entry . taggedNext & ~ EMPTY ) ;
91+ let taggedNext = entry . taggedNext ;
92+ if ( ! ( taggedNext & EMPTY ) && entry . key == key ) return entry ;
93+ entry = changetype < MapEntry < K , V > > ( taggedNext & ~ EMPTY ) ;
9394 }
9495 return null ;
9596 }
@@ -177,9 +178,10 @@ export class Map<K,V> {
177178 let oldEntry = changetype < MapEntry < K , V > > ( oldPtr ) ;
178179 if ( ! ( oldEntry . taggedNext & EMPTY ) ) {
179180 let newEntry = changetype < MapEntry < K , V > > ( newPtr ) ;
180- newEntry . key = oldEntry . key ;
181+ let oldEntryKey = oldEntry . key ;
182+ newEntry . key = oldEntryKey ;
181183 newEntry . value = oldEntry . value ;
182- let newBucketIndex = HASH < K > ( oldEntry . key ) & newBucketsMask ;
184+ let newBucketIndex = HASH < K > ( oldEntryKey ) & newBucketsMask ;
183185 let newBucketPtrBase = changetype < usize > ( newBuckets ) + < usize > newBucketIndex * BUCKET_SIZE ;
184186 newEntry . taggedNext = load < usize > ( newBucketPtrBase ) ;
185187 store < usize > ( newBucketPtrBase , newPtr ) ;
0 commit comments