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

