aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2021-09-01 20:38:35 +0100
committerLouis Pilfold <louis@lpil.uk>2021-09-01 20:38:35 +0100
commit2455b836fc97492b58bcda34fa689d5f570a4a21 (patch)
tree84d1dd1b292551b5d968a1dfe1c252054200c1c8
parent182ad10998bd0548a13ca92405e100a80ce036b6 (diff)
downloadgleam_stdlib-2455b836fc97492b58bcda34fa689d5f570a4a21.tar.gz
gleam_stdlib-2455b836fc97492b58bcda34fa689d5f570a4a21.zip
Avoid building array
-rw-r--r--src/gleam_stdlib.js15
1 files changed, 5 insertions, 10 deletions
diff --git a/src/gleam_stdlib.js b/src/gleam_stdlib.js
index bc79844..64b1aeb 100644
--- a/src/gleam_stdlib.js
+++ b/src/gleam_stdlib.js
@@ -288,9 +288,7 @@ export function map_to_list(map) {
export function map_from_list(list) {
let map = new Map();
- for (let pair of list) {
- map.set(hashcode(pair[0]), pair);
- }
+ for (let pair of list) map.set(hashcode(pair[0]), pair);
return map;
}
@@ -345,12 +343,9 @@ export function map_merge(into, merge) {
export function map_take(keys, map) {
const result = new Map();
- keys.toArray().forEach((key) => {
- const hash = hashcode(key);
- const keyValue = map.get(hash);
- if (keyValue !== undefined) {
- result.set(hash, keyValue);
- }
- });
+ for (let key of keys) {
+ const code = hashcode(key);
+ if (map.has(code)) result.set(code, map.get(code));
+ }
return result;
}