actually, `{type: 'String', value: ''}` ... so the rule is: usable as class ? `{new: 'ClassName', value: 'how to construct it'}` : `{type: 'Primitive', value: 'how to create it'}` and the unserialized value uses `new global[obj.new](obj.value)` or `global[obj.type](obj.value)` to recreate the value.
Regards On Tue, Jul 17, 2018 at 6:04 PM Andrea Giammarchi < andrea.giammar...@gmail.com> wrote: > My idea is that `JSON.stringify(new Uint8Array([1, 2, 3]));` is also an > issue, not only BigInt. > > if every value could be represented as `{{type: 'BigInt', value: > '55555555'}, {new: 'Uint8Array', value: [1, 2, 3]}, {type: 'string', value: > 'dastring'}, {type: 'number', value: 123}, {new: 'String', value: 'as > wrap'}}` and resurrected later on it's basically problem solved except for > Weak* and Symbol, unless it's a global one, and it'd be OK. > > That transformation would be compatible also with all circular-json like > libraries I know (or I've written). > > Regards > > > > On Tue, Jul 17, 2018 at 5:44 PM Cyril Auburtin <cyril.aubur...@gmail.com> > wrote: > >> It would be great to have >> ```js >> JSON.stringify({x: 5n, y: BigInt('6')}) === '{"x":5n,"y":6n}' >> JSON.parse('{"x": 3n}') // {x: 3n} >> ``` >> I don't know how feasable it would be, maybe have a new JSON5 object if >> JSON can't be changed for some reasons >> _______________________________________________ >> es-discuss mailing list >> es-discuss@mozilla.org >> https://mail.mozilla.org/listinfo/es-discuss >> >
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss