@@ -1895,77 +1895,148 @@ user agents.
18951895|serialized|, are:
18961896
18971897<ol>
1898- <li><p> Set |serialized|.\[[M11]] to |value|'s <a for=matrix>m11 element</a> .
1898+ <li>
1899+ <p> If |value|'s <a for=matrix>is 2D</a> is <code> true</code> :
1900+
1901+ <ol>
1902+ <li><p> Set |serialized|.\[[M11]] to |value|'s <a for=matrix>m11 element</a> .
1903+
1904+ <li><p> Set |serialized|.\[[M12]] to |value|'s <a for=matrix>m12 element</a> .
1905+
1906+ <li><p> Set |serialized|.\[[M21]] to |value|'s <a for=matrix>m21 element</a> .
1907+
1908+ <li><p> Set |serialized|.\[[M22]] to |value|'s <a for=matrix>m22 element</a> .
1909+
1910+ <li><p> Set |serialized|.\[[M41]] to |value|'s <a for=matrix>m41 element</a> .
1911+
1912+ <li><p> Set |serialized|.\[[M42]] to |value|'s <a for=matrix>m42 element</a> .
1913+
1914+ <li><p> Set |serialized|.\[[Is2D]] to <code> true</code> .
1915+ </ol>
18991916
1900- <li><p> Set |serialized|.\[[M12]] to |value|'s <a for=matrix>m12 element</a> .
1917+ <p class=note> It is possible for a 2D {{DOMMatrix}} or {{DOMMatrixReadOnly}} to have ''-0'' for
1918+ some of the other elements, e.g., the <a for=matrix>m13 element</a> , which will not be
1919+ roundtripped by this algorithm.
19011920
1902- <li><p> Set |serialized|.\[[M13]] to |value|'s <a for=matrix>m13 element</a> .
1921+ <li>
1922+ <p> Otherwise:
1923+
1924+ <ol>
1925+ <li><p> Set |serialized|.\[[M11]] to |value|'s <a for=matrix>m11 element</a> .
1926+
1927+ <li><p> Set |serialized|.\[[M12]] to |value|'s <a for=matrix>m12 element</a> .
1928+
1929+ <li><p> Set |serialized|.\[[M13]] to |value|'s <a for=matrix>m13 element</a> .
19031930
1904- <li><p> Set |serialized|.\[[M14]] to |value|'s <a for=matrix>m14 element</a> .
1931+ <li><p> Set |serialized|.\[[M14]] to |value|'s <a for=matrix>m14 element</a> .
19051932
1906- <li><p> Set |serialized|.\[[M21]] to |value|'s <a for=matrix>m21 element</a> .
1933+ <li><p> Set |serialized|.\[[M21]] to |value|'s <a for=matrix>m21 element</a> .
19071934
1908- <li><p> Set |serialized|.\[[M22]] to |value|'s <a for=matrix>m22 element</a> .
1935+ <li><p> Set |serialized|.\[[M22]] to |value|'s <a for=matrix>m22 element</a> .
19091936
1910- <li><p> Set |serialized|.\[[M23]] to |value|'s <a for=matrix>m23 element</a> .
1937+ <li><p> Set |serialized|.\[[M23]] to |value|'s <a for=matrix>m23 element</a> .
19111938
1912- <li><p> Set |serialized|.\[[M24]] to |value|'s <a for=matrix>m24 element</a> .
1939+ <li><p> Set |serialized|.\[[M24]] to |value|'s <a for=matrix>m24 element</a> .
19131940
1914- <li><p> Set |serialized|.\[[M31]] to |value|'s <a for=matrix>m31 element</a> .
1941+ <li><p> Set |serialized|.\[[M31]] to |value|'s <a for=matrix>m31 element</a> .
19151942
1916- <li><p> Set |serialized|.\[[M32]] to |value|'s <a for=matrix>m32 element</a> .
1943+ <li><p> Set |serialized|.\[[M32]] to |value|'s <a for=matrix>m32 element</a> .
19171944
1918- <li><p> Set |serialized|.\[[M33]] to |value|'s <a for=matrix>m33 element</a> .
1945+ <li><p> Set |serialized|.\[[M33]] to |value|'s <a for=matrix>m33 element</a> .
19191946
1920- <li><p> Set |serialized|.\[[M34]] to |value|'s <a for=matrix>m34 element</a> .
1947+ <li><p> Set |serialized|.\[[M34]] to |value|'s <a for=matrix>m34 element</a> .
19211948
1922- <li><p> Set |serialized|.\[[M41]] to |value|'s <a for=matrix>m41 element</a> .
1949+ <li><p> Set |serialized|.\[[M41]] to |value|'s <a for=matrix>m41 element</a> .
19231950
1924- <li><p> Set |serialized|.\[[M42]] to |value|'s <a for=matrix>m42 element</a> .
1951+ <li><p> Set |serialized|.\[[M42]] to |value|'s <a for=matrix>m42 element</a> .
19251952
1926- <li><p> Set |serialized|.\[[M43]] to |value|'s <a for=matrix>m43 element</a> .
1953+ <li><p> Set |serialized|.\[[M43]] to |value|'s <a for=matrix>m43 element</a> .
19271954
1928- <li><p> Set |serialized|.\[[M44]] to |value|'s <a for=matrix>m44 element</a> .
1955+ <li><p> Set |serialized|.\[[M44]] to |value|'s <a for=matrix>m44 element</a> .
19291956
1930- <li><p> Set |serialized|.\[[Is2D]] to |value|'s <a for=matrix>is 2D</a > .
1957+ <li><p> Set |serialized|.\[[Is2D]] to <code> false </code > .
19311958</ol>
19321959
19331960<p> Their <a>deserialization steps</a> , given |serialized| and |value|, are:
19341961
19351962<ol>
1936- <li><p> Set |value|'s <a for=matrix>m11 element</a> to |serialized|.\[[M11]] .
1963+ <li>
1964+ <p> If |serialized|.\[[Is2D]] is <code> true</code> :
1965+
1966+ <ol>
1967+ <li><p> Set |value|'s <a for=matrix>m11 element</a> to |serialized|.\[[M11]] .
1968+
1969+ <li><p> Set |value|'s <a for=matrix>m12 element</a> to |serialized|.\[[M12]] .
1970+
1971+ <li><p> Set |value|'s <a for=matrix>m13 element</a> to ''0' '.
19371972
1938- <li><p> Set |value|'s <a for=matrix>m12 element</a> to |serialized|.\ [[M12]] .
1973+ <li><p> Set |value|'s <a for=matrix>m14 element</a> to ''0' ' .
19391974
1940- <li><p> Set |value|'s <a for=matrix>m13 element</a> to |serialized|.\[[M13 ]] .
1975+ <li><p> Set |value|'s <a for=matrix>m21 element</a> to |serialized|.\[[M21 ]] .
19411976
1942- <li><p> Set |value|'s <a for=matrix>m14 element</a> to |serialized|.\[[M14 ]] .
1977+ <li><p> Set |value|'s <a for=matrix>m22 element</a> to |serialized|.\[[M22 ]] .
19431978
1944- <li><p> Set |value|'s <a for=matrix>m21 element</a> to |serialized|.\ [[M21]] .
1979+ <li><p> Set |value|'s <a for=matrix>m23 element</a> to ''0' ' .
19451980
1946- <li><p> Set |value|'s <a for=matrix>m22 element</a> to |serialized|.\ [[M22]] .
1981+ <li><p> Set |value|'s <a for=matrix>m24 element</a> to ''0' ' .
19471982
1948- <li><p> Set |value|'s <a for=matrix>m23 element</a> to |serialized|.\ [[M23]] .
1983+ <li><p> Set |value|'s <a for=matrix>m31 element</a> to ''0' ' .
19491984
1950- <li><p> Set |value|'s <a for=matrix>m24 element</a> to |serialized|.\ [[M24]] .
1985+ <li><p> Set |value|'s <a for=matrix>m32 element</a> to ''0' ' .
19511986
1952- <li><p> Set |value|'s <a for=matrix>m31 element</a> to |serialized|.\ [[M31]] .
1987+ <li><p> Set |value|'s <a for=matrix>m33 element</a> to ''1' ' .
19531988
1954- <li><p> Set |value|'s <a for=matrix>m32 element</a> to |serialized|.\ [[M32]] .
1989+ <li><p> Set |value|'s <a for=matrix>m34 element</a> to ''0' ' .
19551990
1956- <li><p> Set |value|'s <a for=matrix>m33 element</a> to |serialized|.\[[M33 ]] .
1991+ <li><p> Set |value|'s <a for=matrix>m41 element</a> to |serialized|.\[[M41 ]] .
19571992
1958- <li><p> Set |value|'s <a for=matrix>m34 element</a> to |serialized|.\[[M34 ]] .
1993+ <li><p> Set |value|'s <a for=matrix>m42 element</a> to |serialized|.\[[M42 ]] .
19591994
1960- <li><p> Set |value|'s <a for=matrix>m41 element</a> to |serialized|.\ [[M41]] .
1995+ <li><p> Set |value|'s <a for=matrix>m43 element</a> to ''0' ' .
19611996
1962- <li><p> Set |value|'s <a for=matrix>m42 element</a> to |serialized|.\ [[M42]] .
1997+ <li><p> Set |value|'s <a for=matrix>m44 element</a> to ''1' ' .
19631998
1964- <li><p> Set |value|'s <a for=matrix>m43 element</a> to |serialized|.\[[M43]] .
1999+ <li><p> Set |value|'s <a for=matrix>is 2D</a> to <code> true</code> .
2000+ </ol>
2001+
2002+ <li>
2003+ <p> Otherwise:
2004+
2005+ <ol>
2006+ <li><p> Set |value|'s <a for=matrix>m11 element</a> to |serialized|.\[[M11]] .
2007+
2008+ <li><p> Set |value|'s <a for=matrix>m12 element</a> to |serialized|.\[[M12]] .
2009+
2010+ <li><p> Set |value|'s <a for=matrix>m13 element</a> to |serialized|.\[[M13]] .
2011+
2012+ <li><p> Set |value|'s <a for=matrix>m14 element</a> to |serialized|.\[[M14]] .
2013+
2014+ <li><p> Set |value|'s <a for=matrix>m21 element</a> to |serialized|.\[[M21]] .
2015+
2016+ <li><p> Set |value|'s <a for=matrix>m22 element</a> to |serialized|.\[[M22]] .
19652017
1966- <li><p> Set |value|'s <a for=matrix>m44 element</a> to |serialized|.\[[M44 ]] .
2018+ <li><p> Set |value|'s <a for=matrix>m23 element</a> to |serialized|.\[[M23 ]] .
19672019
1968- <li><p> Set |value|'s <a for=matrix>is 2D</a> to |serialized|.\[[Is2D]] .
2020+ <li><p> Set |value|'s <a for=matrix>m24 element</a> to |serialized|.\[[M24]] .
2021+
2022+ <li><p> Set |value|'s <a for=matrix>m31 element</a> to |serialized|.\[[M31]] .
2023+
2024+ <li><p> Set |value|'s <a for=matrix>m32 element</a> to |serialized|.\[[M32]] .
2025+
2026+ <li><p> Set |value|'s <a for=matrix>m33 element</a> to |serialized|.\[[M33]] .
2027+
2028+ <li><p> Set |value|'s <a for=matrix>m34 element</a> to |serialized|.\[[M34]] .
2029+
2030+ <li><p> Set |value|'s <a for=matrix>m41 element</a> to |serialized|.\[[M41]] .
2031+
2032+ <li><p> Set |value|'s <a for=matrix>m42 element</a> to |serialized|.\[[M42]] .
2033+
2034+ <li><p> Set |value|'s <a for=matrix>m43 element</a> to |serialized|.\[[M43]] .
2035+
2036+ <li><p> Set |value|'s <a for=matrix>m44 element</a> to |serialized|.\[[M44]] .
2037+
2038+ <li><p> Set |value|'s <a for=matrix>is 2D</a> to <code> false</code> .
2039+ </ol>
19692040</ol>
19702041
19712042
0 commit comments