aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Saxton <peterhsaxton@gmail.com>2023-01-12 19:07:26 +0100
committerLouis Pilfold <louis@lpil.uk>2023-01-18 15:05:13 +0000
commit258386a7707ffda30f63b4acd72eb31ccd3ac981 (patch)
tree5de69907cf1b1375da8b704a529e41e7be485a8e /src
parentf4696dd73497f767c6144db5428b2991eea23ba7 (diff)
downloadgleam_stdlib-258386a7707ffda30f63b4acd72eb31ccd3ac981.tar.gz
gleam_stdlib-258386a7707ffda30f63b4acd72eb31ccd3ac981.zip
only decode as map if plain object
Diffstat (limited to 'src')
-rw-r--r--src/gleam_stdlib.mjs14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/gleam_stdlib.mjs b/src/gleam_stdlib.mjs
index 4f54c4d..1fa2563 100644
--- a/src/gleam_stdlib.mjs
+++ b/src/gleam_stdlib.mjs
@@ -673,14 +673,14 @@ export function decode_result(data) {
return Result.isResult(data) ? new Ok(data) : decoder_error("Result", data);
}
-function decode_object_to_map(data) {
- return typeof data === 'object' && data !== null && !Array.isArray(data)
- ? new Ok(new Map(Object.entries(data)))
- : decoder_error("Map", data);
-}
-
export function decode_map(data) {
- return data instanceof Map ? new Ok(data) : decode_object_to_map(data);
+ if (data instanceof Map) {
+ return new Ok(data)
+ }
+ if (typeof data === 'object' && data !== null && Object.getPrototypeOf(data) == Object.getPrototypeOf({})) {
+ return new Ok(new Map(Object.entries(data)))
+ }
+ return decoder_error("Map", data);
}
export function decode_option(data, decoder) {