diff options
-rw-r--r-- | src/gleam_stdlib.mjs | 14 |
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) { |