Skip to content

Commit 4e00fa3

Browse files
LiaoPengdcodeIO
authored andcommitted
Fix Map#keys and Map#values returns (AssemblyScript#1004)
1 parent 12424eb commit 4e00fa3

File tree

8 files changed

+24445
-7528
lines changed

8 files changed

+24445
-7528
lines changed

std/assembly/map.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -210,8 +210,7 @@ export class Map<K,V> {
210210
for (let i = 0; i < size; ++i) {
211211
let entry = changetype<MapEntry<K,V>>(start + <usize>i * ENTRY_SIZE<K,V>());
212212
if (!(entry.taggedNext & EMPTY)) {
213-
keys.push(entry.key);
214-
++length;
213+
keys[length++] = entry.key;
215214
}
216215
}
217216
keys.length = length;
@@ -227,8 +226,7 @@ export class Map<K,V> {
227226
for (let i = 0; i < size; ++i) {
228227
let entry = changetype<MapEntry<K,V>>(start + <usize>i * ENTRY_SIZE<K,V>());
229228
if (!(entry.taggedNext & EMPTY)) {
230-
values.push(entry.value);
231-
++length;
229+
values[length++] = entry.value;
232230
}
233231
}
234232
values.length = length;

std/assembly/set.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -187,11 +187,9 @@ export class Set<T> {
187187
for (let i = 0; i < size; ++i) {
188188
let entry = changetype<SetEntry<T>>(start + <usize>i * ENTRY_SIZE<T>());
189189
if (!(entry.taggedNext & EMPTY)) {
190-
values.push(entry.key);
191-
++length;
190+
values[length++] = entry.key;
192191
}
193192
}
194-
values.length = length;
195193
return values;
196194
}
197195

0 commit comments

Comments
 (0)