Skip to content

Commit 19dd1a4

Browse files
zcorpansvgeesus
authored andcommitted
Do not structured serialize -0 for m13 of a 2d matrix
Fixes w3c#161. Tests: web-platform-tests/wpt#5937
1 parent 2ca954f commit 19dd1a4

1 file changed

Lines changed: 105 additions & 34 deletions

File tree

geometry/Overview.bs

Lines changed: 105 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)