Yeah, there are workarounds for passing bigints.

Unfortunately, it's workaround, and it doesn't solve the problem - certain
valid JSONs can't be properly used  in ECMAScript without writing JSON
parser in user land.

On Mon, 19 Mar 2018, 03:33 Anders Rundgren, <[email protected]>
wrote:

> On 2018-03-19 02:37, Anders Rundgren wrote:
> > On 2018-03-19 02:33, Michał Wadas wrote:
> >> Fact: JSON allows arbitrary precision numbers.
> >> Problem: JavaScript is unable to express these numbers.
> >>
> >> Proposed solution: introduce JSON.safeParse. This method will work as
> JSON.parse, but throwing on values that can't be accurately represented by
> IEEE 754 64-bit float.
> >>
> >> Alternative: allow user to specify number class - eg. by adding options
> object with optional method "parseNumber", overwriting default behaviour of
> using builtin number type.
> >>
> >> Any thoughts on this?
> >
> > Yes, it is a SUPERBAD idea.
>
> Pardon my unnecessary dismissive response. A more constructive response
> would be:
>
> This is "approximately" the de-facto standard for dealing with BigNums and
> tons of other non-standard types.
>
> var obj = JSON.parse("JSON formatted data");
> var val = new BigNum(obj.sizeOfTheUniverseInCubicMeters);
>
> JSON on the wire:
> {
>    "sizeOfTheUniverseInCubicMeters": "3.45e+445454545454545776767676676"
> }
>
> When TC-39 introduces BigNums in ES, this is the most likely way they will
> address this particular aspect.
>
> Anders
>
>
> >
> > Anders
> >
> >>
> >> _______________________________________________
> >> es-discuss mailing list
> >> [email protected]
> >> https://mail.mozilla.org/listinfo/es-discuss
> >>
> >
>
>
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to