diff options
author | Louis Pilfold <louis@lpil.uk> | 2021-09-01 20:38:35 +0100 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2021-09-01 20:38:35 +0100 |
commit | 2455b836fc97492b58bcda34fa689d5f570a4a21 (patch) | |
tree | 84d1dd1b292551b5d968a1dfe1c252054200c1c8 | |
parent | 182ad10998bd0548a13ca92405e100a80ce036b6 (diff) | |
download | gleam_stdlib-2455b836fc97492b58bcda34fa689d5f570a4a21.tar.gz gleam_stdlib-2455b836fc97492b58bcda34fa689d5f570a4a21.zip |
Avoid building array
-rw-r--r-- | src/gleam_stdlib.js | 15 |
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; } |