aboutsummaryrefslogtreecommitdiff
path: root/src/gleam_stdlib.mjs
diff options
context:
space:
mode:
authorRichard Viney <richard.viney@gmail.com>2024-06-23 16:59:06 +1200
committerLouis Pilfold <louis@lpil.uk>2024-06-23 09:40:23 +0100
commit3592b0b847d0c4348fc37be868ac22607ce426de (patch)
tree3245d99c349932bf7c07bee1aec9b1562e375419 /src/gleam_stdlib.mjs
parent6a6d5adf356993031ab2e79012e436dd2567a2f9 (diff)
downloadgleam_stdlib-3592b0b847d0c4348fc37be868ac22607ce426de.tar.gz
gleam_stdlib-3592b0b847d0c4348fc37be868ac22607ce426de.zip
Improve Base64 decode performance
Diffstat (limited to 'src/gleam_stdlib.mjs')
-rw-r--r--src/gleam_stdlib.mjs6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gleam_stdlib.mjs b/src/gleam_stdlib.mjs
index c4111f9..d067cec 100644
--- a/src/gleam_stdlib.mjs
+++ b/src/gleam_stdlib.mjs
@@ -551,7 +551,11 @@ export function encode64(bit_array, padding) {
export function decode64(sBase64) {
try {
const binString = atob(sBase64);
- const array = Uint8Array.from(binString, (c) => c.charCodeAt(0));
+ const length = binString.length;
+ const array = new Uint8Array(length);
+ for (let i = 0; i < length; i++) {
+ array[i] = binString.charCodeAt(i);
+ }
return new Ok(new BitArray(array));
} catch {
return new Error(Nil);