Skip to content

Commit 7c1c574

Browse files
committed
Replace Jason with built-in :json (OTP 26+)
1 parent a7bebcd commit 7c1c574

1 file changed

Lines changed: 6 additions & 8 deletions

File tree

lib/quickbeam/beam_vm/runtime.ex

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -526,10 +526,9 @@ defmodule QuickBEAM.BeamVM.Runtime do
526526
end
527527

528528
defp json_parse(s) when is_binary(s) do
529-
case Jason.decode(s) do
530-
{:ok, val} -> json_to_js(val)
531-
{:error, _} -> throw({:js_throw, "SyntaxError: JSON.parse"})
532-
end
529+
json_to_js(:json.decode(s))
530+
rescue
531+
_ -> throw({:js_throw, "SyntaxError: JSON.parse"})
533532
end
534533

535534
defp json_to_js(nil), do: nil
@@ -543,10 +542,9 @@ defmodule QuickBEAM.BeamVM.Runtime do
543542
defp json_to_js(val), do: val
544543

545544
defp json_stringify([val | _]) do
546-
case Jason.encode(js_to_json(val)) do
547-
{:ok, s} -> s
548-
{:error, _} -> :undefined
549-
end
545+
IO.iodata_to_binary(:json.encode(js_to_json(val)))
546+
rescue
547+
_ -> :undefined
550548
end
551549

552550
defp js_to_json({:obj, ref}) do

0 commit comments

Comments
 (0)