[geometry] Off list review feedback

Hi all,

We got a lot of feedback off list. Thank you very much for all your careful reviews!

As a result of a longer discussion on dev-platform@lists.mozilla.org[1] we did the following changes:

1) Removed determinant()
While useful in certain situations, the numerical instability e.g. around 0 (an important value for checking for singularity) caused the majority to accept that the author would be better served if the method is not exposed. Authors with experience can compute the determinant them self and would more likely know how to treat the determinate correctly than the UA can anticipate.

2) invert() and inverse() don’t throw exceptions
Most applications don’t check for exceptions. Without exception handling, the application will stop (and fail). Instead, all elements of the matrix (of the returning matrix) are set to NaN.

3) is2D() tracks transform changes
For the same reason as for the determinant, DOMMatrix is more conservative on checking for 2D. Instead of checking the 3D components for 0 or 1, we track all transformations and set an internal flag is2D to false if any 3D transformation was detected. Constructor calls with another DOMMatrix will set the flag to the value of the DOMMatrix argument. If the DOMMatrix constructor is called with 6 elements, it is considered 2D initially. If the DOMMatrix constructor is called with 16 element, is is considered 3D initially.

There is still an open issue with isIdentity(). isIdentity() has the same issues as determinant(). However, possible negative effects on web applications are evaluated differently. The editors will send a summary in a separate mail.

Greetings,
Dirk

[1] https://groups.google.com/forum/#!topic/mozilla.dev.platform/pO1ArHlFXdo%5B26-50-false%5D

Received on Friday, 6 June 2014 21:57:53 UTC