Skip to content

Commit d29c943

Browse files
committed
Faster?
1 parent 9c97617 commit d29c943

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

src/glue/js/collections.js

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,28 @@
44
*/
55

66
global.Map_keys = function Map_keys(map) {
7-
return Array.from(map.keys());
7+
const arr = new Array(map.size);
8+
let i = 0;
9+
for (let key of map.keys()) {
10+
arr[i++] = key;
11+
}
12+
return arr;
813
};
914

1015
global.Map_values = function Map_values(map) {
11-
return Array.from(map.values());
16+
const arr = new Array(map.size);
17+
let i = 0;
18+
for (let value of map.values()) {
19+
arr[i++] = value;
20+
}
21+
return arr;
1222
};
1323

1424
global.Set_values = function Set_values(set) {
15-
return Array.from(set.values());
25+
const arr = new Array(set.size);
26+
let i = 0;
27+
for (let value of set.values()) {
28+
arr[i++] = value;
29+
}
30+
return arr;
1631
};

0 commit comments

Comments
 (0)