<div dir="ltr"><div><br></div><br><div class="gmail_quote"><div dir="ltr">On Sat, Jul 14, 2018 at 1:36 AM Anders Rundgren <<a href="mailto:anders.rundgren.net@gmail.com">anders.rundgren.net@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">var small = BigInt("5");<br>
var big = BigInt("5555555555555555555555555500003");<br>
JSON.stringify([big,small]);<br>
VM330:1 Uncaught TypeError: Do not know how to serialize a BigInt<br>
     at JSON.stringify (<anonymous>)<br>
     at <anonymous>:1:6<br>
<br></blockquote><div><br></div><div>

<div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">is BigInt the only way to create a BigInt ?  Or did they also implement the 'n' suffix, which I noted  here <a href="https://github.com/tc39/proposal-bigint/issues/24#issuecomment-392307848">https://github.com/tc39/proposal-bigint/issues/24#issuecomment-392307848</a> would easily distinguish bigint from other numbers; and be easy to add on the parsing side; and call BigInt(xxx) instead of Number(xxx).</div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">

<span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">var small = 5n;</span><br style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">var big = 5555555555555555555555</span><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">555500003n;</span>

<br></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">n suffix as from</div><span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><a href="https://github.com/tc39/proposal-bigint">https://github.com/tc39/proposal-bigint</a></span>

<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
JSON Number serialization has apparently reached a new level (of confusion).<br>
<br>
Personally I don't see the problem.  XML did just fine without hard-coded data types.<br>
<br>
The JSON type system is basically a relic from JavaScript.  As such it has proved to be quite useful.<br>
However, when you are outside of that scope, the point with the JSON type system gets pretty much zero since you anyway need to map extended types.<br>
<br>
Oracle's JSON-B solution which serializes small values as Number and large values as String rather than having a unified serialization based on the underlying data type seems like a pretty broken concept although indeed fully conforming to the JSON specification. "Like the Devil reads the Bible" as we say in Scandinavia :-)<br>
<br>
Adding a couple of double quotes is a major problem?  If so, it seems like a way more useful project making quotes optional for keys (named in a specific way), like they already are in JavaScript.<br>
<br>
Yeah, and of course adding support for comments.<br></blockquote><div><br></div><div>I'd rather not see numbers converted to strings; that would be required to allow application handling of values; at a layer higher than JSON core itself.  It is nice that JSON keeps numbers as numbers and strings as strings without needing intimite knowledge about the actual 'types' they end up in.</div><div><br></div><div>Comparing numeric length would be a half/useless solution since bigints are required to interop with other bigints only; so small numbers couldn't be 'guessed' and the application would have to provide a reviver.</div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Anders<br>
<br>
_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" rel="noreferrer" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
</blockquote></div></div>