diff options
Diffstat (limited to 'src/gleam_stdlib.mjs')
-rw-r--r-- | src/gleam_stdlib.mjs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gleam_stdlib.mjs b/src/gleam_stdlib.mjs index 64dc1d0..8c08cb8 100644 --- a/src/gleam_stdlib.mjs +++ b/src/gleam_stdlib.mjs @@ -621,6 +621,13 @@ export function decode_result(data) { } export function decode_map(data) { + if (data instanceof Map) { + return new Ok(PMap.fromMap(data)); + } + const proto = Object.getPrototypeOf(data); + if (proto === Object.prototype || proto === null) { + return new Ok(PMap.fromObject(data)); + } return data instanceof PMap ? new Ok(data) : decoder_error("Map", data); } |