On Tue, 25 Nov 2014 15:32:38 +0100, Boris Zbarsky <[email protected]> wrote:

On 11/25/14, 5:09 AM, Simon Pieters wrote:
What are the use cases for JSON stringifying geometry objects?

Logging? All I know is people are reporting bugs about the behavior being surprising when the stringify them. I can ask why they're stringifying if that would be useful.

Yes, please. It would help figuring out the details below.

I tried asking for use cases on Twitter but haven't got anything so far. https://twitter.com/zcorpan/status/539849995751804928

It seems to me the returned object should have the same shape as the
*Init dictionaries, so you can use it in the constructors that accept them.

You mean a superset of the shape, right? Having more properties than the init dictionary contains is not a problem.

Yeah, true.

That said, the current state of the *Init dictionaries in the spec is a bit weird. You can't construct a DOMRect from a DOMRectInit, but you can construct a DOMQuad from a DOMRectInit?

This is probably a bug. https://www.w3.org/Bugs/Public/show_bug.cgi?id=27490

For DOMRect, the first-class properties are x, y, width, height, so { x,
y, width, height }.

Is there an actual reason to exclude top/right/bottom/left?

No particular reason.

For DOMPoint, we could either always serialize { x, y, w, z } or only
serialize { x, y } when w = 0 and z = 1.

I think the former is a lot simpler, fwiw.

OK.

For DOMQuad I guess it would just serialize as { p1, p2, p3, p4 }
(without bounds).

Why without bounds?

I wanted to include the minimum necessary I think, but it's not a problem to include bounds.

For DOMMatrix, I guess it makes sense to serialize an array with the
elements. We could either always serialize all of them or only serialize
6 elements when is2D returns true.

Yeah, I'm not sure what's best here.

OK. Always serializing 16 elements is simpler.

--
Simon Pieters
Opera Software

Reply via email to