Implement DOMMatrix2DInit for setTransform()/addPath()
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 1 Sep 2017 00:21:59 +0000 (00:21 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 1 Sep 2017 00:21:59 +0000 (00:21 +0000)
https://bugs.webkit.org/show_bug.cgi?id=176048

Patch by Sam Weinig <sam@webkit.org> on 2017-08-31
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

* web-platform-tests/css/geometry-1/DOMMatrix-001.html:
* web-platform-tests/css/geometry-1/DOMMatrix-css-string.worker.js:
(string_appeared_here.forEach.constr.test):
* web-platform-tests/css/geometry-1/DOMMatrixInit-validate-fixup-expected.txt: Added.
* web-platform-tests/css/geometry-1/DOMMatrixInit-validate-fixup.html: Added.
* web-platform-tests/css/geometry-1/historical.html:
* web-platform-tests/css/geometry-1/interfaces-expected.txt: Added.
* web-platform-tests/css/geometry-1/interfaces.html: Added.
* web-platform-tests/css/geometry-1/interfaces.worker-expected.txt: Added.
* web-platform-tests/css/geometry-1/interfaces.worker.html: Added.
* web-platform-tests/css/geometry-1/interfaces.worker.js: Added.
* web-platform-tests/css/geometry-1/structured-serialization.html:
* web-platform-tests/css/geometry-1/w3c-import.log:

    Pull latest web-platform-tests/css/geometry-1/ and rebase the results.

Source/WebCore:

* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* CMakeLists.txt:

    Add new files.

* bindings/js/CallTracerTypes.h:
* inspector/InspectorCanvas.cpp:

    Swap out DOMMatrixInit for DOMMatrix2DInit in canvas tracing infrastructure.

* css/DOMMatrix2DInit.h: Added.
* css/DOMMatrix2DInit.idl: Added.
* css/DOMMatrixInit.h:
* css/DOMMatrixInit.idl:
Split DOMMatrixInit in two, with the 2D bits going into DOMMatrix2DInit.

* css/DOMMatrixReadOnly.cpp:
* css/DOMMatrixReadOnly.h:

    Add a validateAndFixup overload for DOMMatrix2DInit.

* html/canvas/CanvasRenderingContext2D.cpp:
* html/canvas/CanvasRenderingContext2D.h:

    Swap out DOMMatrixInit for DOMMatrix2DInit in setTransform. This
    should have no observable difference, since we ignored the 3D prior.

* html/canvas/DOMPath.cpp:
* html/canvas/DOMPath.h:
* html/canvas/DOMPath.idl:

    Update DOMPath (actually called Path2D) to take an optional DOMMatrix2DInit
    rather than an SVGMatrix. Passing an SVGMatrix is still valid, as it conforms
    as a DOMMatrix2DInit dictionary (having the necessary properties), so the
    risk of compatibility issues is minimal.

LayoutTests:

* fast/canvas/canvas-path-addPath-expected.txt:
* fast/canvas/canvas-path-addPath.html:
Update test / results now that the transform is for the path is an optional dictionary.
Mostly this means we throw a little less.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221462 268f45cc-cd09-0410-ab3c-d52691b4dbfc

36 files changed:
LayoutTests/ChangeLog
LayoutTests/fast/canvas/canvas-path-addPath-expected.txt
LayoutTests/fast/canvas/canvas-path-addPath.html
LayoutTests/imported/w3c/ChangeLog
LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMMatrix-001-expected.txt
LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMMatrix-001.html
LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMMatrix-css-string.worker-expected.txt
LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMMatrix-css-string.worker.js
LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMMatrixInit-validate-fixup-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMMatrixInit-validate-fixup.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/historical-expected.txt
LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/historical.html
LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/interfaces-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/interfaces.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/interfaces.worker-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/interfaces.worker.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/interfaces.worker.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/structured-serialization.html
LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/w3c-import.log
Source/WebCore/CMakeLists.txt
Source/WebCore/ChangeLog
Source/WebCore/DerivedSources.make
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebCore/bindings/js/CallTracerTypes.h
Source/WebCore/css/DOMMatrix2DInit.h [new file with mode: 0644]
Source/WebCore/css/DOMMatrix2DInit.idl [new file with mode: 0644]
Source/WebCore/css/DOMMatrixInit.h
Source/WebCore/css/DOMMatrixInit.idl
Source/WebCore/css/DOMMatrixReadOnly.cpp
Source/WebCore/css/DOMMatrixReadOnly.h
Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp
Source/WebCore/html/canvas/CanvasRenderingContext2D.h
Source/WebCore/html/canvas/DOMPath.cpp
Source/WebCore/html/canvas/DOMPath.h
Source/WebCore/html/canvas/DOMPath.idl
Source/WebCore/inspector/InspectorCanvas.cpp

index fc7e310..c612e25 100644 (file)
@@ -1,3 +1,15 @@
+2017-08-31  Sam Weinig  <sam@webkit.org>
+
+        Implement DOMMatrix2DInit for setTransform()/addPath()
+        https://bugs.webkit.org/show_bug.cgi?id=176048
+
+        Reviewed by Simon Fraser.
+
+        * fast/canvas/canvas-path-addPath-expected.txt:
+        * fast/canvas/canvas-path-addPath.html:
+        Update test / results now that the transform is for the path is an optional dictionary.
+        Mostly this means we throw a little less.
+
 2017-08-31  Brady Eidson  <beidson@apple.com>
 
         Add (entirely incorrect) fetching of ServiceWorker scripts.
index 164b17c..9a5ea76 100644 (file)
@@ -32,11 +32,8 @@ PASS refTest(result.data, expected.data) is true
 
 Various tests of invalid values.
 PASS pathA.addPath(matrix, pathB) threw exception TypeError: Argument 1 ('path') to Path2D.addPath must be an instance of DOMPath.
-PASS pathA.addPath(pathB, ctx.canvas) threw exception TypeError: Argument 2 ('transform') to Path2D.addPath must be an instance of SVGMatrix.
-PASS pathA.addPath(pathB, null) threw exception TypeError: Argument 2 ('transform') to Path2D.addPath must be an instance of SVGMatrix.
-PASS pathA.addPath(pathB, undefined) threw exception TypeError: Argument 2 ('transform') to Path2D.addPath must be an instance of SVGMatrix.
-PASS pathA.addPath(pathB, 0) threw exception TypeError: Argument 2 ('transform') to Path2D.addPath must be an instance of SVGMatrix.
-PASS pathA.addPath(pathB, "0") threw exception TypeError: Argument 2 ('transform') to Path2D.addPath must be an instance of SVGMatrix.
+PASS pathA.addPath(pathB, 0) threw exception TypeError: Type error.
+PASS pathA.addPath(pathB, "0") threw exception TypeError: Type error.
 PASS successfullyParsed is true
 
 TEST COMPLETE
index 4b2b9c6..bf0f27b 100644 (file)
@@ -239,7 +239,6 @@ shouldBe('refTest(result.data, expected.data)', 'true');
 ctx.clearRect(0,0,300,150);
 debug('');
 
-
 debug('Various tests of invalid values.');
 matrix.a = 1;
 matrix.b = 0;
@@ -250,9 +249,6 @@ matrix.f = 0;
 pathA = new Path2D();
 pathB = new Path2D();
 shouldThrow('pathA.addPath(matrix, pathB)');
-shouldThrow('pathA.addPath(pathB, ctx.canvas)');
-shouldThrow('pathA.addPath(pathB, null)');
-shouldThrow('pathA.addPath(pathB, undefined)');
 shouldThrow('pathA.addPath(pathB, 0)');
 shouldThrow('pathA.addPath(pathB, "0")');
 
index c1991aa..6e8593c 100644 (file)
@@ -1,3 +1,26 @@
+2017-08-31  Sam Weinig  <sam@webkit.org>
+
+        Implement DOMMatrix2DInit for setTransform()/addPath()
+        https://bugs.webkit.org/show_bug.cgi?id=176048
+
+        Reviewed by Simon Fraser.
+
+        * web-platform-tests/css/geometry-1/DOMMatrix-001.html:
+        * web-platform-tests/css/geometry-1/DOMMatrix-css-string.worker.js:
+        (string_appeared_here.forEach.constr.test):
+        * web-platform-tests/css/geometry-1/DOMMatrixInit-validate-fixup-expected.txt: Added.
+        * web-platform-tests/css/geometry-1/DOMMatrixInit-validate-fixup.html: Added.
+        * web-platform-tests/css/geometry-1/historical.html:
+        * web-platform-tests/css/geometry-1/interfaces-expected.txt: Added.
+        * web-platform-tests/css/geometry-1/interfaces.html: Added.
+        * web-platform-tests/css/geometry-1/interfaces.worker-expected.txt: Added.
+        * web-platform-tests/css/geometry-1/interfaces.worker.html: Added.
+        * web-platform-tests/css/geometry-1/interfaces.worker.js: Added.
+        * web-platform-tests/css/geometry-1/structured-serialization.html:
+        * web-platform-tests/css/geometry-1/w3c-import.log:
+
+            Pull latest web-platform-tests/css/geometry-1/ and rebase the results.
+
 2017-08-29  Youenn Fablet  <youenn@apple.com>
 
         [Fetch API] Request should throw when keep alive is true and body is a ReadableStream
index 1fc8636..a145bd1 100644 (file)
@@ -16,10 +16,13 @@ PASS new DOMMatrix((float64Array) 6 elements
 PASS new DOMMatrix(sequence) 16 elements 
 PASS new DOMMatrix(sequence) 6 elements 
 PASS new DOMMatrix("scale(2) translateX(5px) translateY(5px)") 
-FAIL new DOMMatrix("scale(2 2) translateX(5) translateY(5)") The string did not match the expected pattern.
-FAIL new DOMMatrix("scale(2, 2), translateX(5)  ,translateY(5)") The string did not match the expected pattern.
+PASS new DOMMatrix("scale(2, 2) translateX(5px) translateY(5px)") 
+PASS new DOMMatrix("scale(2)translateX(5px)translateY(5px)") 
+PASS new DOMMatrix("scale(2) translateX(calc(2 * 2.5px)) translateY(5px)") 
+PASS new DOMMatrix("scale(2) translateX(5px) translateY(5px) rotate(5deg) rotate(-5deg)") 
 PASS new DOMMatrix("translateX    (5px)") 
-FAIL new DOMMatrix("scale(2)translateX(5px)") assert_throws: function "function () { new self[constr](string); }" did not throw
+PASS new DOMMatrix("scale(2 2) translateX(5) translateY(5)") 
+PASS new DOMMatrix("scale(2, 2), translateX(5)  ,translateY(5)") 
 PASS new DOMMatrix("translateX(5em)") 
 PASS new DOMMatrix("translateX(5ex)") 
 PASS new DOMMatrix("translateX(5ch)") 
@@ -29,6 +32,10 @@ FAIL new DOMMatrix("translateX(5vh)") assert_throws: function "function () { new
 FAIL new DOMMatrix("translateX(5vmin)") assert_throws: function "function () { new self[constr](string); }" did not throw
 FAIL new DOMMatrix("translateX(5vmax)") assert_throws: function "function () { new self[constr](string); }" did not throw
 PASS new DOMMatrix("translateX(5%)") 
+PASS new DOMMatrix("rotate(5)") 
+PASS new DOMMatrix("rotate(5, 5, 5)") 
+PASS new DOMMatrix("rotate(5, 5px, 5px)") 
+PASS new DOMMatrix("rotate(5deg, 5px, 5px)") 
 PASS new DOMMatrix(" ") 
 PASS new DOMMatrix("/**/") 
 PASS new DOMMatrix("\0") 
@@ -64,10 +71,13 @@ PASS new DOMMatrixReadOnly((float64Array) 6 elements
 PASS new DOMMatrixReadOnly(sequence) 16 elements 
 PASS new DOMMatrixReadOnly(sequence) 6 elements 
 PASS new DOMMatrixReadOnly("scale(2) translateX(5px) translateY(5px)") 
-FAIL new DOMMatrixReadOnly("scale(2 2) translateX(5) translateY(5)") The string did not match the expected pattern.
-FAIL new DOMMatrixReadOnly("scale(2, 2), translateX(5)  ,translateY(5)") The string did not match the expected pattern.
+PASS new DOMMatrixReadOnly("scale(2, 2) translateX(5px) translateY(5px)") 
+PASS new DOMMatrixReadOnly("scale(2)translateX(5px)translateY(5px)") 
+PASS new DOMMatrixReadOnly("scale(2) translateX(calc(2 * 2.5px)) translateY(5px)") 
+PASS new DOMMatrixReadOnly("scale(2) translateX(5px) translateY(5px) rotate(5deg) rotate(-5deg)") 
 PASS new DOMMatrixReadOnly("translateX    (5px)") 
-FAIL new DOMMatrixReadOnly("scale(2)translateX(5px)") assert_throws: function "function () { new self[constr](string); }" did not throw
+PASS new DOMMatrixReadOnly("scale(2 2) translateX(5) translateY(5)") 
+PASS new DOMMatrixReadOnly("scale(2, 2), translateX(5)  ,translateY(5)") 
 PASS new DOMMatrixReadOnly("translateX(5em)") 
 PASS new DOMMatrixReadOnly("translateX(5ex)") 
 PASS new DOMMatrixReadOnly("translateX(5ch)") 
@@ -77,6 +87,10 @@ FAIL new DOMMatrixReadOnly("translateX(5vh)") assert_throws: function "function
 FAIL new DOMMatrixReadOnly("translateX(5vmin)") assert_throws: function "function () { new self[constr](string); }" did not throw
 FAIL new DOMMatrixReadOnly("translateX(5vmax)") assert_throws: function "function () { new self[constr](string); }" did not throw
 PASS new DOMMatrixReadOnly("translateX(5%)") 
+PASS new DOMMatrixReadOnly("rotate(5)") 
+PASS new DOMMatrixReadOnly("rotate(5, 5, 5)") 
+PASS new DOMMatrixReadOnly("rotate(5, 5px, 5px)") 
+PASS new DOMMatrixReadOnly("rotate(5deg, 5px, 5px)") 
 PASS new DOMMatrixReadOnly(" ") 
 PASS new DOMMatrixReadOnly("/**/") 
 PASS new DOMMatrixReadOnly("\0") 
index cea4547..a8a357b 100644 (file)
             });
 
             ['scale(2) translateX(5px) translateY(5px)',
-             'scale(2 2) translateX(5) translateY(5)',
-             'scale(2, 2), translateX(5)  ,translateY(5)',
+             'scale(2, 2) translateX(5px) translateY(5px)',
+             'scale(2)translateX(5px)translateY(5px)',
+             'scale(2) translateX(calc(2 * 2.5px)) translateY(5px)',
+             'scale(2) translateX(5px) translateY(5px) rotate(5deg) rotate(-5deg)',
             ].forEach(function(string) {
                 test(function() {
                     checkDOMMatrix(new self[constr](string), scaleTranslate2D);
             });
 
             ['translateX    (5px)',
-             'scale(2)translateX(5px)',
+             'scale(2 2) translateX(5) translateY(5)',
+             'scale(2, 2), translateX(5)  ,translateY(5)',
              'translateX(5em)',
              'translateX(5ex)',
              'translateX(5ch)',
              'translateX(5vmin)',
              'translateX(5vmax)',
              'translateX(5%)',
+             'rotate(5)',
+             'rotate(5, 5, 5)',
+             'rotate(5, 5px, 5px)',
+             'rotate(5deg, 5px, 5px)',
              ' ',
              '/**/',
              '\0',
index 4cf6f9e..5dd7677 100644 (file)
@@ -1,9 +1,11 @@
 
 FAIL DOMMatrix constructor with string argument in worker assert_true: DOMMatrix should exist expected true got false
+FAIL DOMMatrix constructor with empty string argument in worker assert_true: DOMMatrix should exist expected true got false
 FAIL DOMMatrix stringifier in worker (2d identity) undefined is not a constructor (evaluating 'new self[constr]()')
 FAIL DOMMatrix stringifier in worker (3d identity) undefined is not an object (evaluating 'self[constr].fromMatrix')
 FAIL DOMMatrix stringifier in worker (non-finite values) undefined is not a constructor (evaluating 'new self[constr]([1, 0, 0, NaN, Infinity, -Infinity])')
 FAIL DOMMatrixReadOnly constructor with string argument in worker assert_true: DOMMatrixReadOnly should exist expected true got false
+FAIL DOMMatrixReadOnly constructor with empty string argument in worker assert_true: DOMMatrixReadOnly should exist expected true got false
 FAIL DOMMatrixReadOnly stringifier in worker (2d identity) undefined is not a constructor (evaluating 'new self[constr]()')
 FAIL DOMMatrixReadOnly stringifier in worker (3d identity) undefined is not an object (evaluating 'self[constr].fromMatrix')
 FAIL DOMMatrixReadOnly stringifier in worker (non-finite values) undefined is not a constructor (evaluating 'new self[constr]([1, 0, 0, NaN, Infinity, -Infinity])')
index 7b209f4..42f919d 100644 (file)
@@ -9,6 +9,11 @@ importScripts("/resources/testharness.js");
   }, `${constr} constructor with string argument in worker`);
 
   test(() => {
+    assert_true(constr in self, `${constr} should exist`);
+    assert_throws(new TypeError(), () => new self[constr]('') );
+  }, `${constr} constructor with empty string argument in worker`);
+
+  test(() => {
     const matrix = new self[constr]();
     assert_equals(String(matrix), `[object ${constr}]`);
   }, `${constr} stringifier in worker (2d identity)`);
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMMatrixInit-validate-fixup-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMMatrixInit-validate-fixup-expected.txt
new file mode 100644 (file)
index 0000000..17c690e
--- /dev/null
@@ -0,0 +1,93 @@
+
+PASS {a: 1, m11: 2} (invalid) 
+PASS {b: 0, m12: -1} (invalid) 
+PASS {c: Infinity, m21: -Infinity} (invalid) 
+PASS {d: 0, m22: NaN} (invalid) 
+PASS {e: 1, m41: 1.00000001} (invalid) 
+PASS {f: 0, m42: 5e-324} (invalid) 
+PASS {m13: 1, is2D: true} (invalid) 
+PASS {m14: 1, is2D: true} (invalid) 
+PASS {m23: 1, is2D: true} (invalid) 
+PASS {m24: 1, is2D: true} (invalid) 
+PASS {m31: 1, is2D: true} (invalid) 
+PASS {m32: 1, is2D: true} (invalid) 
+PASS {m33: 0, is2D: true} (invalid) 
+PASS {m33: -0, is2D: true} (invalid) 
+PASS {m33: -1, is2D: true} (invalid) 
+PASS {m34: 1, is2D: true} (invalid) 
+PASS {m43: 1, is2D: true} (invalid) 
+PASS {m44: 0, is2D: true} (invalid) 
+PASS {} (2d) 
+PASS {is2D: undefined} (2d) 
+PASS {a: 1, m11: 1} (2d) 
+PASS {b: 0, m12: undefined} (2d) 
+PASS {c: 0, m21: 0} (2d) 
+PASS {c: 0, m21: -0} (2d) 
+PASS {c: -0, m21: 0} (2d) 
+PASS {c: -0, m21: -0} (2d) 
+PASS {d: Infinity, m22: Infinity} (2d) 
+PASS {e: -Infinity, m41: -Infinity} (2d) 
+FAIL {f: NaN, m42: NaN} (2d) init.f and init.m42 do not match
+FAIL {f: NaN, m42: NaN, is2D: true} (2d) init.f and init.m42 do not match
+PASS {f: 0, m42: null} (2d) 
+PASS {f: -0, m42: null} (2d) 
+PASS {a: 2} (2d) 
+PASS {b: 2} (2d) 
+PASS {c: 2} (2d) 
+PASS {d: 2} (2d) 
+PASS {e: 2} (2d) 
+PASS {f: 2} (2d) 
+PASS {a: -0, b: -0, c: -0, d: -0, e: -0, f: -0} (2d) 
+PASS {a: -0, b: -0, c: -0, d: -0, e: -0, f: -0, is2D: true} (2d) 
+PASS {m11: 2} (2d) 
+PASS {m12: 2} (2d) 
+PASS {m21: 2} (2d) 
+PASS {m22: 2} (2d) 
+PASS {m41: 2} (2d) 
+PASS {m42: 2} (2d) 
+PASS {m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0} (2d) 
+PASS {m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0, is2D: true} (2d) 
+PASS {m13: 0, is2D: true} (2d) 
+PASS {m13: -0, is2D: true} (2d) 
+PASS {m14: 0, is2D: true} (2d) 
+PASS {m14: -0, is2D: true} (2d) 
+PASS {m23: 0, is2D: true} (2d) 
+PASS {m23: -0, is2D: true} (2d) 
+PASS {m24: 0, is2D: true} (2d) 
+PASS {m24: -0, is2D: true} (2d) 
+PASS {m31: 0, is2D: true} (2d) 
+PASS {m31: -0, is2D: true} (2d) 
+PASS {m32: 0, is2D: true} (2d) 
+PASS {m32: -0, is2D: true} (2d) 
+PASS {m33: 1, is2D: true} (2d) 
+PASS {m34: 0, is2D: true} (2d) 
+PASS {m34: -0, is2D: true} (2d) 
+PASS {m43: 0, is2D: true} (2d) 
+PASS {m43: -0, is2D: true} (2d) 
+PASS {m44: 1, is2D: true} (2d) 
+PASS {is2D: true} (2d) 
+PASS {m13: 1, is2D: false} (3d) 
+PASS {m14: 1, is2D: false} (3d) 
+PASS {m23: 1, is2D: false} (3d) 
+PASS {m24: 1, is2D: false} (3d) 
+PASS {m31: 1, is2D: false} (3d) 
+PASS {m32: 1, is2D: false} (3d) 
+PASS {m33: 0, is2D: false} (3d) 
+PASS {m33: -0, is2D: false} (3d) 
+PASS {m33: -1, is2D: false} (3d) 
+PASS {m34: 1, is2D: false} (3d) 
+PASS {m43: 1, is2D: false} (3d) 
+PASS {m44: 0, is2D: false} (3d) 
+PASS {m13: 1} (3d) 
+PASS {m14: 1} (3d) 
+PASS {m23: 1} (3d) 
+PASS {m24: 1} (3d) 
+PASS {m31: 1} (3d) 
+PASS {m32: 1} (3d) 
+PASS {m33: 0} (3d) 
+PASS {m34: 1} (3d) 
+PASS {m43: 1} (3d) 
+PASS {m44: 0} (3d) 
+PASS {is2D: false} (3d) 
+PASS {is2D: null} (3d) 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMMatrixInit-validate-fixup.html b/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMMatrixInit-validate-fixup.html
new file mode 100644 (file)
index 0000000..cf511cd
--- /dev/null
@@ -0,0 +1,168 @@
+<!DOCTYPE html>
+<title>Geometry Interfaces: DOMMatrixInit validate and fixup</title>
+<link rel="help" href="https://drafts.fxtf.org/geometry/#dommatrixinit-dictionary">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+// This formats dict as a string suitable as test name.
+// format_value() is provided by testharness.js,
+// which also preserves sign for -0.
+function format_dict(dict) {
+  const props = [];
+  for (let prop in dict) {
+    props.push(`${prop}: ${format_value(dict[prop])}`);
+  }
+  return `{${props.join(', ')}}`;
+}
+
+// Create a normal JS object with the expected properties
+// from a dict with only m11..m44 specified (not a..f).
+function matrix3D(dict) {
+  const matrix = {m11: 1, m12: 0, m13: 0, m14: 0,
+                  m21: 0, m22: 1, m23: 0, m24: 0,
+                  m31: 0, m32: 0, m33: 1, m34: 0,
+                  m41: 0, m42: 0, m43: 0, m44: 1}
+  matrix.is2D = false;
+  for (let member in dict) {
+    matrix[member] = dict[member];
+  }
+  matrix.a = matrix.m11;
+  matrix.b = matrix.m12;
+  matrix.c = matrix.m21;
+  matrix.d = matrix.m22;
+  matrix.e = matrix.m41;
+  matrix.f = matrix.m42;
+  return matrix;
+}
+
+function matrix2D(dict) {
+  const matrix = matrix3D(dict);
+  matrix.is2D = true;
+  return matrix;
+}
+
+function checkMatrix(actual, expected) {
+  for (let member in expected) {
+    assert_equals(actual[member], expected[member], member);
+  }
+}
+
+[
+  {a: 1, m11: 2},
+  {b: 0, m12: -1},
+  {c: Infinity, m21: -Infinity},
+  {d: 0, m22: NaN},
+  {e: 1, m41: 1.00000001},
+  {f: 0, m42: Number.MIN_VALUE},
+  {m13: 1, is2D: true},
+  {m14: 1, is2D: true},
+  {m23: 1, is2D: true},
+  {m24: 1, is2D: true},
+  {m31: 1, is2D: true},
+  {m32: 1, is2D: true},
+  {m33: 0, is2D: true},
+  {m33: -0, is2D: true},
+  {m33: -1, is2D: true},
+  {m34: 1, is2D: true},
+  {m43: 1, is2D: true},
+  {m44: 0, is2D: true},
+].forEach(dict => {
+  test(() => {
+    assert_true('fromMatrix' in DOMMatrix, 'fromMatrix should exist');
+    assert_throws(new TypeError(), () => DOMMatrix.fromMatrix(dict));
+  }, `${format_dict(dict)} (invalid)`);
+});
+
+[
+  [{},                             matrix2D({})],
+  [{is2D: undefined},              matrix2D({})], // undefined means the dictionary member is not present
+  [{a: 1, m11: 1},                 matrix2D({m11: 1})],
+  [{b: 0, m12: undefined},         matrix2D({m12: 0})],
+  [{c: 0, m21: 0},                 matrix2D({m21: 0})],
+  [{c: 0, m21: -0},                matrix2D({m21: -0})],
+  [{c: -0, m21: 0},                matrix2D({m21: 0})],
+  [{c: -0, m21: -0},               matrix2D({m21: -0})],
+  [{d: Infinity, m22: Infinity},   matrix2D({m22: Infinity})],
+  [{e: -Infinity, m41: -Infinity}, matrix2D({m41: -Infinity})],
+  [{f: NaN, m42: NaN},             matrix2D({m42: NaN})],
+  [{f: NaN, m42: NaN, is2D: true}, matrix2D({m42: NaN})],
+  [{f: 0, m42: null},              matrix2D({m42: 0})], // null is converted to 0
+  [{f: -0, m42: null},             matrix2D({m42: 0})], // null is converted to 0
+  [{a: 2},                         matrix2D({m11: 2})],
+  [{b: 2},                         matrix2D({m12: 2})],
+  [{c: 2},                         matrix2D({m21: 2})],
+  [{d: 2},                         matrix2D({m22: 2})],
+  [{e: 2},                         matrix2D({m41: 2})],
+  [{f: 2},                         matrix2D({m42: 2})],
+  [{a: -0, b: -0, c: -0, d: -0, e: -0, f: -0},
+                                   matrix2D({m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0})],
+  [{a: -0, b: -0, c: -0, d: -0, e: -0, f: -0, is2D: true},
+                                   matrix2D({m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0})],
+  [{m11:2},                        matrix2D({m11: 2})],
+  [{m12:2},                        matrix2D({m12: 2})],
+  [{m21:2},                        matrix2D({m21: 2})],
+  [{m22:2},                        matrix2D({m22: 2})],
+  [{m41:2},                        matrix2D({m41: 2})],
+  [{m42:2},                        matrix2D({m42: 2})],
+  [{m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0},
+                                   matrix2D({m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0})],
+  [{m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0, is2D: true},
+                                   matrix2D({m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0})],
+  [{m13: 0, is2D: true},           matrix2D({m13: 0})],
+  [{m13: -0, is2D: true},          matrix2D({m13: 0})],
+  [{m14: 0, is2D: true},           matrix2D({m14: 0})],
+  [{m14: -0, is2D: true},          matrix2D({m14: 0})],
+  [{m23: 0, is2D: true},           matrix2D({m23: 0})],
+  [{m23: -0, is2D: true},          matrix2D({m23: 0})],
+  [{m24: 0, is2D: true},           matrix2D({m24: 0})],
+  [{m24: -0, is2D: true},          matrix2D({m24: 0})],
+  [{m31: 0, is2D: true},           matrix2D({m31: 0})],
+  [{m31: -0, is2D: true},          matrix2D({m31: 0})],
+  [{m32: 0, is2D: true},           matrix2D({m32: 0})],
+  [{m32: -0, is2D: true},          matrix2D({m32: 0})],
+  [{m33: 1, is2D: true},           matrix2D({m33: 1})],
+  [{m34: 0, is2D: true},           matrix2D({m34: 0})],
+  [{m34: -0, is2D: true},          matrix2D({m34: 0})],
+  [{m43: 0, is2D: true},           matrix2D({m43: 0})],
+  [{m43: -0, is2D: true},          matrix2D({m43: 0})],
+  [{m44: 1, is2D: true},           matrix2D({m44: 1})],
+  [{is2D: true},                   matrix2D({})],
+].forEach(([dict, expected]) => {
+  test(() => {
+    const matrix = DOMMatrix.fromMatrix(dict);
+    checkMatrix(matrix, expected);
+  }, `${format_dict(dict)} (2d)`);
+});
+
+[
+  [{m13: 1, is2D: false},          matrix3D({m13: 1})],
+  [{m14: 1, is2D: false},          matrix3D({m14: 1})],
+  [{m23: 1, is2D: false},          matrix3D({m23: 1})],
+  [{m24: 1, is2D: false},          matrix3D({m24: 1})],
+  [{m31: 1, is2D: false},          matrix3D({m31: 1})],
+  [{m32: 1, is2D: false},          matrix3D({m32: 1})],
+  [{m33: 0, is2D: false},          matrix3D({m33: 0})],
+  [{m33: -0, is2D: false},         matrix3D({m33: -0})],
+  [{m33: -1, is2D: false},         matrix3D({m33: -1})],
+  [{m34: 1, is2D: false},          matrix3D({m34: 1})],
+  [{m43: 1, is2D: false},          matrix3D({m43: 1})],
+  [{m44: 0, is2D: false},          matrix3D({m44: 0})],
+  [{m13: 1},                       matrix3D({m13: 1})],
+  [{m14: 1},                       matrix3D({m14: 1})],
+  [{m23: 1},                       matrix3D({m23: 1})],
+  [{m24: 1},                       matrix3D({m24: 1})],
+  [{m31: 1},                       matrix3D({m31: 1})],
+  [{m32: 1},                       matrix3D({m32: 1})],
+  [{m33: 0},                       matrix3D({m33: 0})],
+  [{m34: 1},                       matrix3D({m34: 1})],
+  [{m43: 1},                       matrix3D({m43: 1})],
+  [{m44: 0},                       matrix3D({m44: 0})],
+  [{is2D: false},                  matrix3D({})],
+  [{is2D: null},                   matrix3D({})], // null is converted to false
+].forEach(([dict, expected]) => {
+  test(() => {
+    const matrix = DOMMatrix.fromMatrix(dict);
+    checkMatrix(matrix, expected);
+  }, `${format_dict(dict)} (3d)`);
+});
+</script>
index 7587875..15cfd45 100644 (file)
@@ -33,4 +33,9 @@ PASS DOMMatrixReadOnly multiply number of required arguments
 PASS DOMMatrix multiplySelf number of required arguments 
 PASS DOMMatrix preMultiplySelf number of required arguments 
 PASS CSSMatrix must be nuked 
+PASS DOMMatrixImmutable must be nuked 
+PASS ClientRect must be nuked 
+PASS ClientRectList must be nuked 
+FAIL WebKitPoint must be nuked assert_false: expected false got true
+PASS MSCSSMatrix must be nuked 
 
index 9d6864e..357ae91 100644 (file)
 });
 
 // Renamed interfaces
-// https://github.com/w3c/fxtf-drafts/commit/9031c94c8536cec7f7007c18d7be037a793e5ed5
-test(() => {
-  assert_false('CSSMatrix' in self);
-}, 'CSSMatrix must be nuked');
+[
+  // https://github.com/w3c/fxtf-drafts/commit/9031c94c8536cec7f7007c18d7be037a793e5ed5
+  'CSSMatrix',
+  // https://github.com/w3c/csswg-drafts/commit/8d01810fe403bc935c24ee5a29101cac9b958c8c
+  'DOMMatrixImmutable',
+  // https://github.com/w3c/csswg-drafts/commit/6e05c3ee01528daba6dc0776f342beae577cefa9
+  'ClientRect',
+  'ClientRectList',
+  // Non-standard
+  'WebKitPoint',
+  'MSCSSMatrix',
+].forEach(interf => {
+  test(() => {
+    assert_false(interf in self);
+  }, `${interf} must be nuked`);
+});
 </script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/interfaces-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/interfaces-expected.txt
new file mode 100644 (file)
index 0000000..bc7f53a
--- /dev/null
@@ -0,0 +1,544 @@
+
+PASS Test driver 
+PASS DOMPointReadOnly interface: existence and properties of interface object 
+PASS DOMPointReadOnly interface object length 
+PASS DOMPointReadOnly interface object name 
+PASS DOMPointReadOnly interface: existence and properties of interface prototype object 
+PASS DOMPointReadOnly interface: existence and properties of interface prototype object's "constructor" property 
+PASS DOMPointReadOnly interface: operation fromPoint(DOMPointInit) 
+PASS DOMPointReadOnly interface: attribute x 
+PASS DOMPointReadOnly interface: attribute y 
+PASS DOMPointReadOnly interface: attribute z 
+PASS DOMPointReadOnly interface: attribute w 
+PASS DOMPointReadOnly interface: operation matrixTransform(DOMMatrixInit) 
+PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "fromPoint" with the proper type (0) 
+PASS DOMPointReadOnly interface: calling fromPoint(DOMPointInit) on new DOMPointReadOnly() with too few arguments must throw TypeError 
+PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "x" with the proper type (1) 
+PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "y" with the proper type (2) 
+PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "z" with the proper type (3) 
+PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "w" with the proper type (4) 
+PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "matrixTransform" with the proper type (5) 
+PASS DOMPointReadOnly interface: calling matrixTransform(DOMMatrixInit) on new DOMPointReadOnly() with too few arguments must throw TypeError 
+PASS DOMPoint interface: existence and properties of interface object 
+PASS DOMPoint interface object length 
+PASS DOMPoint interface object name 
+FAIL DOMPoint interface: legacy window alias assert_equals: self.SVGPoint should be the same value as self.DOMPoint expected function "function DOMPoint() {
+    [native code]
+}" but got function "function SVGPoint() {
+    [native code]
+}"
+PASS DOMPoint interface: existence and properties of interface prototype object 
+PASS DOMPoint interface: existence and properties of interface prototype object's "constructor" property 
+PASS DOMPoint interface: operation fromPoint(DOMPointInit) 
+PASS DOMPoint interface: attribute x 
+PASS DOMPoint interface: attribute y 
+PASS DOMPoint interface: attribute z 
+PASS DOMPoint interface: attribute w 
+PASS DOMPoint interface: new DOMPoint() must inherit property "fromPoint" with the proper type (0) 
+PASS DOMPoint interface: calling fromPoint(DOMPointInit) on new DOMPoint() with too few arguments must throw TypeError 
+PASS DOMPoint interface: new DOMPoint() must inherit property "x" with the proper type (1) 
+PASS DOMPoint interface: new DOMPoint() must inherit property "y" with the proper type (2) 
+PASS DOMPoint interface: new DOMPoint() must inherit property "z" with the proper type (3) 
+PASS DOMPoint interface: new DOMPoint() must inherit property "w" with the proper type (4) 
+PASS DOMPointReadOnly interface: new DOMPoint() must inherit property "fromPoint" with the proper type (0) 
+PASS DOMPointReadOnly interface: calling fromPoint(DOMPointInit) on new DOMPoint() with too few arguments must throw TypeError 
+PASS DOMPointReadOnly interface: new DOMPoint() must inherit property "x" with the proper type (1) 
+PASS DOMPointReadOnly interface: new DOMPoint() must inherit property "y" with the proper type (2) 
+PASS DOMPointReadOnly interface: new DOMPoint() must inherit property "z" with the proper type (3) 
+PASS DOMPointReadOnly interface: new DOMPoint() must inherit property "w" with the proper type (4) 
+PASS DOMPointReadOnly interface: new DOMPoint() must inherit property "matrixTransform" with the proper type (5) 
+PASS DOMPointReadOnly interface: calling matrixTransform(DOMMatrixInit) on new DOMPoint() with too few arguments must throw TypeError 
+PASS DOMRectReadOnly interface: existence and properties of interface object 
+PASS DOMRectReadOnly interface object length 
+PASS DOMRectReadOnly interface object name 
+PASS DOMRectReadOnly interface: existence and properties of interface prototype object 
+PASS DOMRectReadOnly interface: existence and properties of interface prototype object's "constructor" property 
+PASS DOMRectReadOnly interface: operation fromRect(DOMRectInit) 
+PASS DOMRectReadOnly interface: attribute x 
+PASS DOMRectReadOnly interface: attribute y 
+PASS DOMRectReadOnly interface: attribute width 
+PASS DOMRectReadOnly interface: attribute height 
+PASS DOMRectReadOnly interface: attribute top 
+PASS DOMRectReadOnly interface: attribute right 
+PASS DOMRectReadOnly interface: attribute bottom 
+PASS DOMRectReadOnly interface: attribute left 
+PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "fromRect" with the proper type (0) 
+PASS DOMRectReadOnly interface: calling fromRect(DOMRectInit) on new DOMRectReadOnly() with too few arguments must throw TypeError 
+PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "x" with the proper type (1) 
+PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "y" with the proper type (2) 
+PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "width" with the proper type (3) 
+PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "height" with the proper type (4) 
+PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "top" with the proper type (5) 
+PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "right" with the proper type (6) 
+PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "bottom" with the proper type (7) 
+PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "left" with the proper type (8) 
+PASS DOMRect interface: existence and properties of interface object 
+PASS DOMRect interface object length 
+PASS DOMRect interface object name 
+FAIL DOMRect interface: legacy window alias assert_equals: self.SVGRect should be the same value as self.DOMRect expected function "function DOMRect() {
+    [native code]
+}" but got function "function SVGRect() {
+    [native code]
+}"
+PASS DOMRect interface: existence and properties of interface prototype object 
+PASS DOMRect interface: existence and properties of interface prototype object's "constructor" property 
+PASS DOMRect interface: operation fromRect(DOMRectInit) 
+PASS DOMRect interface: attribute x 
+PASS DOMRect interface: attribute y 
+PASS DOMRect interface: attribute width 
+PASS DOMRect interface: attribute height 
+PASS DOMRect interface: new DOMRect() must inherit property "fromRect" with the proper type (0) 
+PASS DOMRect interface: calling fromRect(DOMRectInit) on new DOMRect() with too few arguments must throw TypeError 
+PASS DOMRect interface: new DOMRect() must inherit property "x" with the proper type (1) 
+PASS DOMRect interface: new DOMRect() must inherit property "y" with the proper type (2) 
+PASS DOMRect interface: new DOMRect() must inherit property "width" with the proper type (3) 
+PASS DOMRect interface: new DOMRect() must inherit property "height" with the proper type (4) 
+PASS DOMRectReadOnly interface: new DOMRect() must inherit property "fromRect" with the proper type (0) 
+PASS DOMRectReadOnly interface: calling fromRect(DOMRectInit) on new DOMRect() with too few arguments must throw TypeError 
+PASS DOMRectReadOnly interface: new DOMRect() must inherit property "x" with the proper type (1) 
+PASS DOMRectReadOnly interface: new DOMRect() must inherit property "y" with the proper type (2) 
+PASS DOMRectReadOnly interface: new DOMRect() must inherit property "width" with the proper type (3) 
+PASS DOMRectReadOnly interface: new DOMRect() must inherit property "height" with the proper type (4) 
+PASS DOMRectReadOnly interface: new DOMRect() must inherit property "top" with the proper type (5) 
+PASS DOMRectReadOnly interface: new DOMRect() must inherit property "right" with the proper type (6) 
+PASS DOMRectReadOnly interface: new DOMRect() must inherit property "bottom" with the proper type (7) 
+PASS DOMRectReadOnly interface: new DOMRect() must inherit property "left" with the proper type (8) 
+PASS DOMQuad interface: existence and properties of interface object 
+PASS DOMQuad interface object length 
+PASS DOMQuad interface object name 
+PASS DOMQuad interface: existence and properties of interface prototype object 
+PASS DOMQuad interface: existence and properties of interface prototype object's "constructor" property 
+PASS DOMQuad interface: operation fromRect(DOMRectInit) 
+PASS DOMQuad interface: operation fromQuad(DOMQuadInit) 
+PASS DOMQuad interface: attribute p1 
+PASS DOMQuad interface: attribute p2 
+PASS DOMQuad interface: attribute p3 
+PASS DOMQuad interface: attribute p4 
+PASS DOMQuad interface: operation getBounds() 
+PASS DOMQuad interface: new DOMQuad() must inherit property "fromRect" with the proper type (0) 
+PASS DOMQuad interface: calling fromRect(DOMRectInit) on new DOMQuad() with too few arguments must throw TypeError 
+PASS DOMQuad interface: new DOMQuad() must inherit property "fromQuad" with the proper type (1) 
+PASS DOMQuad interface: calling fromQuad(DOMQuadInit) on new DOMQuad() with too few arguments must throw TypeError 
+PASS DOMQuad interface: new DOMQuad() must inherit property "p1" with the proper type (2) 
+PASS DOMQuad interface: new DOMQuad() must inherit property "p2" with the proper type (3) 
+PASS DOMQuad interface: new DOMQuad() must inherit property "p3" with the proper type (4) 
+PASS DOMQuad interface: new DOMQuad() must inherit property "p4" with the proper type (5) 
+PASS DOMQuad interface: new DOMQuad() must inherit property "getBounds" with the proper type (6) 
+PASS DOMMatrixReadOnly interface: existence and properties of interface object 
+PASS DOMMatrixReadOnly interface object length 
+PASS DOMMatrixReadOnly interface object name 
+PASS DOMMatrixReadOnly interface: existence and properties of interface prototype object 
+PASS DOMMatrixReadOnly interface: existence and properties of interface prototype object's "constructor" property 
+PASS DOMMatrixReadOnly interface: operation fromMatrix(DOMMatrixInit) 
+PASS DOMMatrixReadOnly interface: operation fromFloat32Array(Float32Array) 
+PASS DOMMatrixReadOnly interface: operation fromFloat64Array(Float64Array) 
+PASS DOMMatrixReadOnly interface: attribute a 
+PASS DOMMatrixReadOnly interface: attribute b 
+PASS DOMMatrixReadOnly interface: attribute c 
+PASS DOMMatrixReadOnly interface: attribute d 
+PASS DOMMatrixReadOnly interface: attribute e 
+PASS DOMMatrixReadOnly interface: attribute f 
+PASS DOMMatrixReadOnly interface: attribute m11 
+PASS DOMMatrixReadOnly interface: attribute m12 
+PASS DOMMatrixReadOnly interface: attribute m13 
+PASS DOMMatrixReadOnly interface: attribute m14 
+PASS DOMMatrixReadOnly interface: attribute m21 
+PASS DOMMatrixReadOnly interface: attribute m22 
+PASS DOMMatrixReadOnly interface: attribute m23 
+PASS DOMMatrixReadOnly interface: attribute m24 
+PASS DOMMatrixReadOnly interface: attribute m31 
+PASS DOMMatrixReadOnly interface: attribute m32 
+PASS DOMMatrixReadOnly interface: attribute m33 
+PASS DOMMatrixReadOnly interface: attribute m34 
+PASS DOMMatrixReadOnly interface: attribute m41 
+PASS DOMMatrixReadOnly interface: attribute m42 
+PASS DOMMatrixReadOnly interface: attribute m43 
+PASS DOMMatrixReadOnly interface: attribute m44 
+PASS DOMMatrixReadOnly interface: attribute is2D 
+PASS DOMMatrixReadOnly interface: attribute isIdentity 
+PASS DOMMatrixReadOnly interface: operation translate(unrestricted double,unrestricted double,unrestricted double) 
+PASS DOMMatrixReadOnly interface: operation scale(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double) 
+PASS DOMMatrixReadOnly interface: operation scale3d(unrestricted double,unrestricted double,unrestricted double,unrestricted double) 
+PASS DOMMatrixReadOnly interface: operation rotate(unrestricted double,unrestricted double,unrestricted double) 
+PASS DOMMatrixReadOnly interface: operation rotateFromVector(unrestricted double,unrestricted double) 
+PASS DOMMatrixReadOnly interface: operation rotateAxisAngle(unrestricted double,unrestricted double,unrestricted double,unrestricted double) 
+PASS DOMMatrixReadOnly interface: operation skewX(unrestricted double) 
+PASS DOMMatrixReadOnly interface: operation skewY(unrestricted double) 
+PASS DOMMatrixReadOnly interface: operation multiply(DOMMatrixInit) 
+PASS DOMMatrixReadOnly interface: operation flipX() 
+PASS DOMMatrixReadOnly interface: operation flipY() 
+PASS DOMMatrixReadOnly interface: operation inverse() 
+PASS DOMMatrixReadOnly interface: operation transformPoint(DOMPointInit) 
+PASS DOMMatrixReadOnly interface: operation toFloat32Array() 
+PASS DOMMatrixReadOnly interface: operation toFloat64Array() 
+PASS DOMMatrixReadOnly interface: stringifier 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "fromMatrix" with the proper type (0) 
+PASS DOMMatrixReadOnly interface: calling fromMatrix(DOMMatrixInit) on new DOMMatrixReadOnly() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "fromFloat32Array" with the proper type (1) 
+PASS DOMMatrixReadOnly interface: calling fromFloat32Array(Float32Array) on new DOMMatrixReadOnly() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "fromFloat64Array" with the proper type (2) 
+PASS DOMMatrixReadOnly interface: calling fromFloat64Array(Float64Array) on new DOMMatrixReadOnly() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "a" with the proper type (3) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "b" with the proper type (4) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "c" with the proper type (5) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "d" with the proper type (6) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "e" with the proper type (7) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "f" with the proper type (8) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m11" with the proper type (9) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m12" with the proper type (10) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m13" with the proper type (11) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m14" with the proper type (12) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m21" with the proper type (13) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m22" with the proper type (14) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m23" with the proper type (15) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m24" with the proper type (16) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m31" with the proper type (17) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m32" with the proper type (18) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m33" with the proper type (19) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m34" with the proper type (20) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m41" with the proper type (21) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m42" with the proper type (22) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m43" with the proper type (23) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m44" with the proper type (24) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "is2D" with the proper type (25) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "isIdentity" with the proper type (26) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "translate" with the proper type (27) 
+PASS DOMMatrixReadOnly interface: calling translate(unrestricted double,unrestricted double,unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "scale" with the proper type (28) 
+PASS DOMMatrixReadOnly interface: calling scale(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "scale3d" with the proper type (29) 
+PASS DOMMatrixReadOnly interface: calling scale3d(unrestricted double,unrestricted double,unrestricted double,unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "rotate" with the proper type (30) 
+PASS DOMMatrixReadOnly interface: calling rotate(unrestricted double,unrestricted double,unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "rotateFromVector" with the proper type (31) 
+PASS DOMMatrixReadOnly interface: calling rotateFromVector(unrestricted double,unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "rotateAxisAngle" with the proper type (32) 
+PASS DOMMatrixReadOnly interface: calling rotateAxisAngle(unrestricted double,unrestricted double,unrestricted double,unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "skewX" with the proper type (33) 
+PASS DOMMatrixReadOnly interface: calling skewX(unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "skewY" with the proper type (34) 
+PASS DOMMatrixReadOnly interface: calling skewY(unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "multiply" with the proper type (35) 
+PASS DOMMatrixReadOnly interface: calling multiply(DOMMatrixInit) on new DOMMatrixReadOnly() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "flipX" with the proper type (36) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "flipY" with the proper type (37) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "inverse" with the proper type (38) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "transformPoint" with the proper type (39) 
+PASS DOMMatrixReadOnly interface: calling transformPoint(DOMPointInit) on new DOMMatrixReadOnly() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "toFloat32Array" with the proper type (40) 
+PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "toFloat64Array" with the proper type (41) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "fromMatrix" with the proper type (0) 
+PASS DOMMatrixReadOnly interface: calling fromMatrix(DOMMatrixInit) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "fromFloat32Array" with the proper type (1) 
+PASS DOMMatrixReadOnly interface: calling fromFloat32Array(Float32Array) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "fromFloat64Array" with the proper type (2) 
+PASS DOMMatrixReadOnly interface: calling fromFloat64Array(Float64Array) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "a" with the proper type (3) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "b" with the proper type (4) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "c" with the proper type (5) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "d" with the proper type (6) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "e" with the proper type (7) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "f" with the proper type (8) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m11" with the proper type (9) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m12" with the proper type (10) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m13" with the proper type (11) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m14" with the proper type (12) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m21" with the proper type (13) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m22" with the proper type (14) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m23" with the proper type (15) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m24" with the proper type (16) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m31" with the proper type (17) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m32" with the proper type (18) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m33" with the proper type (19) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m34" with the proper type (20) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m41" with the proper type (21) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m42" with the proper type (22) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m43" with the proper type (23) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m44" with the proper type (24) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "is2D" with the proper type (25) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "isIdentity" with the proper type (26) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "translate" with the proper type (27) 
+PASS DOMMatrixReadOnly interface: calling translate(unrestricted double,unrestricted double,unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "scale" with the proper type (28) 
+PASS DOMMatrixReadOnly interface: calling scale(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "scale3d" with the proper type (29) 
+PASS DOMMatrixReadOnly interface: calling scale3d(unrestricted double,unrestricted double,unrestricted double,unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "rotate" with the proper type (30) 
+PASS DOMMatrixReadOnly interface: calling rotate(unrestricted double,unrestricted double,unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "rotateFromVector" with the proper type (31) 
+PASS DOMMatrixReadOnly interface: calling rotateFromVector(unrestricted double,unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "rotateAxisAngle" with the proper type (32) 
+PASS DOMMatrixReadOnly interface: calling rotateAxisAngle(unrestricted double,unrestricted double,unrestricted double,unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "skewX" with the proper type (33) 
+PASS DOMMatrixReadOnly interface: calling skewX(unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "skewY" with the proper type (34) 
+PASS DOMMatrixReadOnly interface: calling skewY(unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "multiply" with the proper type (35) 
+PASS DOMMatrixReadOnly interface: calling multiply(DOMMatrixInit) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "flipX" with the proper type (36) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "flipY" with the proper type (37) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "inverse" with the proper type (38) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "transformPoint" with the proper type (39) 
+PASS DOMMatrixReadOnly interface: calling transformPoint(DOMPointInit) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "toFloat32Array" with the proper type (40) 
+PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "toFloat64Array" with the proper type (41) 
+PASS DOMMatrix interface: existence and properties of interface object 
+PASS DOMMatrix interface object length 
+PASS DOMMatrix interface object name 
+FAIL DOMMatrix interface: legacy window alias assert_equals: self.SVGMatrix should be the same value as self.DOMMatrix expected function "function DOMMatrix() {
+    [native code]
+}" but got function "function SVGMatrix() {
+    [native code]
+}"
+PASS DOMMatrix interface: existence and properties of interface prototype object 
+PASS DOMMatrix interface: existence and properties of interface prototype object's "constructor" property 
+PASS DOMMatrix interface: operation fromMatrix(DOMMatrixInit) 
+PASS DOMMatrix interface: operation fromFloat32Array(Float32Array) 
+PASS DOMMatrix interface: operation fromFloat64Array(Float64Array) 
+PASS DOMMatrix interface: attribute a 
+PASS DOMMatrix interface: attribute b 
+PASS DOMMatrix interface: attribute c 
+PASS DOMMatrix interface: attribute d 
+PASS DOMMatrix interface: attribute e 
+PASS DOMMatrix interface: attribute f 
+PASS DOMMatrix interface: attribute m11 
+PASS DOMMatrix interface: attribute m12 
+PASS DOMMatrix interface: attribute m13 
+PASS DOMMatrix interface: attribute m14 
+PASS DOMMatrix interface: attribute m21 
+PASS DOMMatrix interface: attribute m22 
+PASS DOMMatrix interface: attribute m23 
+PASS DOMMatrix interface: attribute m24 
+PASS DOMMatrix interface: attribute m31 
+PASS DOMMatrix interface: attribute m32 
+PASS DOMMatrix interface: attribute m33 
+PASS DOMMatrix interface: attribute m34 
+PASS DOMMatrix interface: attribute m41 
+PASS DOMMatrix interface: attribute m42 
+PASS DOMMatrix interface: attribute m43 
+PASS DOMMatrix interface: attribute m44 
+PASS DOMMatrix interface: operation multiplySelf(DOMMatrixInit) 
+PASS DOMMatrix interface: operation preMultiplySelf(DOMMatrixInit) 
+PASS DOMMatrix interface: operation translateSelf(unrestricted double,unrestricted double,unrestricted double) 
+PASS DOMMatrix interface: operation scaleSelf(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double) 
+PASS DOMMatrix interface: operation scale3dSelf(unrestricted double,unrestricted double,unrestricted double,unrestricted double) 
+PASS DOMMatrix interface: operation rotateSelf(unrestricted double,unrestricted double,unrestricted double) 
+PASS DOMMatrix interface: operation rotateFromVectorSelf(unrestricted double,unrestricted double) 
+PASS DOMMatrix interface: operation rotateAxisAngleSelf(unrestricted double,unrestricted double,unrestricted double,unrestricted double) 
+PASS DOMMatrix interface: operation skewXSelf(unrestricted double) 
+PASS DOMMatrix interface: operation skewYSelf(unrestricted double) 
+PASS DOMMatrix interface: operation invertSelf() 
+PASS DOMMatrix interface: operation setMatrixValue(DOMString) 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "fromMatrix" with the proper type (0) 
+PASS DOMMatrix interface: calling fromMatrix(DOMMatrixInit) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "fromFloat32Array" with the proper type (1) 
+PASS DOMMatrix interface: calling fromFloat32Array(Float32Array) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "fromFloat64Array" with the proper type (2) 
+PASS DOMMatrix interface: calling fromFloat64Array(Float64Array) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "a" with the proper type (3) 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "b" with the proper type (4) 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "c" with the proper type (5) 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "d" with the proper type (6) 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "e" with the proper type (7) 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "f" with the proper type (8) 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "m11" with the proper type (9) 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "m12" with the proper type (10) 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "m13" with the proper type (11) 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "m14" with the proper type (12) 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "m21" with the proper type (13) 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "m22" with the proper type (14) 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "m23" with the proper type (15) 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "m24" with the proper type (16) 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "m31" with the proper type (17) 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "m32" with the proper type (18) 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "m33" with the proper type (19) 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "m34" with the proper type (20) 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "m41" with the proper type (21) 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "m42" with the proper type (22) 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "m43" with the proper type (23) 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "m44" with the proper type (24) 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "multiplySelf" with the proper type (25) 
+PASS DOMMatrix interface: calling multiplySelf(DOMMatrixInit) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "preMultiplySelf" with the proper type (26) 
+PASS DOMMatrix interface: calling preMultiplySelf(DOMMatrixInit) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "translateSelf" with the proper type (27) 
+PASS DOMMatrix interface: calling translateSelf(unrestricted double,unrestricted double,unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "scaleSelf" with the proper type (28) 
+PASS DOMMatrix interface: calling scaleSelf(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "scale3dSelf" with the proper type (29) 
+PASS DOMMatrix interface: calling scale3dSelf(unrestricted double,unrestricted double,unrestricted double,unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "rotateSelf" with the proper type (30) 
+PASS DOMMatrix interface: calling rotateSelf(unrestricted double,unrestricted double,unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "rotateFromVectorSelf" with the proper type (31) 
+PASS DOMMatrix interface: calling rotateFromVectorSelf(unrestricted double,unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "rotateAxisAngleSelf" with the proper type (32) 
+PASS DOMMatrix interface: calling rotateAxisAngleSelf(unrestricted double,unrestricted double,unrestricted double,unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "skewXSelf" with the proper type (33) 
+PASS DOMMatrix interface: calling skewXSelf(unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "skewYSelf" with the proper type (34) 
+PASS DOMMatrix interface: calling skewYSelf(unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "invertSelf" with the proper type (35) 
+PASS DOMMatrix interface: new DOMMatrix() must inherit property "setMatrixValue" with the proper type (36) 
+PASS DOMMatrix interface: calling setMatrixValue(DOMString) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "fromMatrix" with the proper type (0) 
+PASS DOMMatrixReadOnly interface: calling fromMatrix(DOMMatrixInit) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "fromFloat32Array" with the proper type (1) 
+PASS DOMMatrixReadOnly interface: calling fromFloat32Array(Float32Array) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "fromFloat64Array" with the proper type (2) 
+PASS DOMMatrixReadOnly interface: calling fromFloat64Array(Float64Array) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "a" with the proper type (3) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "b" with the proper type (4) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "c" with the proper type (5) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "d" with the proper type (6) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "e" with the proper type (7) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "f" with the proper type (8) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m11" with the proper type (9) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m12" with the proper type (10) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m13" with the proper type (11) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m14" with the proper type (12) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m21" with the proper type (13) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m22" with the proper type (14) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m23" with the proper type (15) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m24" with the proper type (16) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m31" with the proper type (17) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m32" with the proper type (18) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m33" with the proper type (19) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m34" with the proper type (20) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m41" with the proper type (21) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m42" with the proper type (22) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m43" with the proper type (23) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m44" with the proper type (24) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "is2D" with the proper type (25) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "isIdentity" with the proper type (26) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "translate" with the proper type (27) 
+PASS DOMMatrixReadOnly interface: calling translate(unrestricted double,unrestricted double,unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "scale" with the proper type (28) 
+PASS DOMMatrixReadOnly interface: calling scale(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "scale3d" with the proper type (29) 
+PASS DOMMatrixReadOnly interface: calling scale3d(unrestricted double,unrestricted double,unrestricted double,unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "rotate" with the proper type (30) 
+PASS DOMMatrixReadOnly interface: calling rotate(unrestricted double,unrestricted double,unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "rotateFromVector" with the proper type (31) 
+PASS DOMMatrixReadOnly interface: calling rotateFromVector(unrestricted double,unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "rotateAxisAngle" with the proper type (32) 
+PASS DOMMatrixReadOnly interface: calling rotateAxisAngle(unrestricted double,unrestricted double,unrestricted double,unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "skewX" with the proper type (33) 
+PASS DOMMatrixReadOnly interface: calling skewX(unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "skewY" with the proper type (34) 
+PASS DOMMatrixReadOnly interface: calling skewY(unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "multiply" with the proper type (35) 
+PASS DOMMatrixReadOnly interface: calling multiply(DOMMatrixInit) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "flipX" with the proper type (36) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "flipY" with the proper type (37) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "inverse" with the proper type (38) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "transformPoint" with the proper type (39) 
+PASS DOMMatrixReadOnly interface: calling transformPoint(DOMPointInit) on new DOMMatrix() with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "toFloat32Array" with the proper type (40) 
+PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "toFloat64Array" with the proper type (41) 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "fromMatrix" with the proper type (0) 
+PASS DOMMatrix interface: calling fromMatrix(DOMMatrixInit) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "fromFloat32Array" with the proper type (1) 
+PASS DOMMatrix interface: calling fromFloat32Array(Float32Array) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "fromFloat64Array" with the proper type (2) 
+PASS DOMMatrix interface: calling fromFloat64Array(Float64Array) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "a" with the proper type (3) 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "b" with the proper type (4) 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "c" with the proper type (5) 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "d" with the proper type (6) 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "e" with the proper type (7) 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "f" with the proper type (8) 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m11" with the proper type (9) 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m12" with the proper type (10) 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m13" with the proper type (11) 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m14" with the proper type (12) 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m21" with the proper type (13) 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m22" with the proper type (14) 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m23" with the proper type (15) 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m24" with the proper type (16) 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m31" with the proper type (17) 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m32" with the proper type (18) 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m33" with the proper type (19) 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m34" with the proper type (20) 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m41" with the proper type (21) 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m42" with the proper type (22) 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m43" with the proper type (23) 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m44" with the proper type (24) 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "multiplySelf" with the proper type (25) 
+PASS DOMMatrix interface: calling multiplySelf(DOMMatrixInit) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "preMultiplySelf" with the proper type (26) 
+PASS DOMMatrix interface: calling preMultiplySelf(DOMMatrixInit) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "translateSelf" with the proper type (27) 
+PASS DOMMatrix interface: calling translateSelf(unrestricted double,unrestricted double,unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "scaleSelf" with the proper type (28) 
+PASS DOMMatrix interface: calling scaleSelf(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "scale3dSelf" with the proper type (29) 
+PASS DOMMatrix interface: calling scale3dSelf(unrestricted double,unrestricted double,unrestricted double,unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "rotateSelf" with the proper type (30) 
+PASS DOMMatrix interface: calling rotateSelf(unrestricted double,unrestricted double,unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "rotateFromVectorSelf" with the proper type (31) 
+PASS DOMMatrix interface: calling rotateFromVectorSelf(unrestricted double,unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "rotateAxisAngleSelf" with the proper type (32) 
+PASS DOMMatrix interface: calling rotateAxisAngleSelf(unrestricted double,unrestricted double,unrestricted double,unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "skewXSelf" with the proper type (33) 
+PASS DOMMatrix interface: calling skewXSelf(unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "skewYSelf" with the proper type (34) 
+PASS DOMMatrix interface: calling skewYSelf(unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "invertSelf" with the proper type (35) 
+PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "setMatrixValue" with the proper type (36) 
+PASS DOMMatrix interface: calling setMatrixValue(DOMString) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "fromMatrix" with the proper type (0) 
+PASS DOMMatrixReadOnly interface: calling fromMatrix(DOMMatrixInit) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "fromFloat32Array" with the proper type (1) 
+PASS DOMMatrixReadOnly interface: calling fromFloat32Array(Float32Array) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "fromFloat64Array" with the proper type (2) 
+PASS DOMMatrixReadOnly interface: calling fromFloat64Array(Float64Array) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "a" with the proper type (3) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "b" with the proper type (4) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "c" with the proper type (5) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "d" with the proper type (6) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "e" with the proper type (7) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "f" with the proper type (8) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m11" with the proper type (9) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m12" with the proper type (10) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m13" with the proper type (11) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m14" with the proper type (12) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m21" with the proper type (13) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m22" with the proper type (14) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m23" with the proper type (15) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m24" with the proper type (16) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m31" with the proper type (17) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m32" with the proper type (18) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m33" with the proper type (19) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m34" with the proper type (20) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m41" with the proper type (21) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m42" with the proper type (22) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m43" with the proper type (23) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m44" with the proper type (24) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "is2D" with the proper type (25) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "isIdentity" with the proper type (26) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "translate" with the proper type (27) 
+PASS DOMMatrixReadOnly interface: calling translate(unrestricted double,unrestricted double,unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "scale" with the proper type (28) 
+PASS DOMMatrixReadOnly interface: calling scale(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "scale3d" with the proper type (29) 
+PASS DOMMatrixReadOnly interface: calling scale3d(unrestricted double,unrestricted double,unrestricted double,unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "rotate" with the proper type (30) 
+PASS DOMMatrixReadOnly interface: calling rotate(unrestricted double,unrestricted double,unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "rotateFromVector" with the proper type (31) 
+PASS DOMMatrixReadOnly interface: calling rotateFromVector(unrestricted double,unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "rotateAxisAngle" with the proper type (32) 
+PASS DOMMatrixReadOnly interface: calling rotateAxisAngle(unrestricted double,unrestricted double,unrestricted double,unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "skewX" with the proper type (33) 
+PASS DOMMatrixReadOnly interface: calling skewX(unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "skewY" with the proper type (34) 
+PASS DOMMatrixReadOnly interface: calling skewY(unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "multiply" with the proper type (35) 
+PASS DOMMatrixReadOnly interface: calling multiply(DOMMatrixInit) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "flipX" with the proper type (36) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "flipY" with the proper type (37) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "inverse" with the proper type (38) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "transformPoint" with the proper type (39) 
+PASS DOMMatrixReadOnly interface: calling transformPoint(DOMPointInit) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "toFloat32Array" with the proper type (40) 
+PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "toFloat64Array" with the proper type (41) 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/interfaces.html b/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/interfaces.html
new file mode 100644 (file)
index 0000000..3e816fa
--- /dev/null
@@ -0,0 +1,12 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>Geometry APIs interface IDL tests</title>
+<link rel=help href=https://drafts.fxtf.org/geometry/#DOMPoint>
+<link rel=help href=https://drafts.fxtf.org/geometry/#DOMRect>
+<link rel=help href=https://drafts.fxtf.org/geometry/#DOMQuad>
+<link rel=help href=https://drafts.fxtf.org/geometry/#DOMMatrix>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=/resources/WebIDLParser.js></script>
+<script src=/resources/idlharness.js></script>
+<script src=support/interfaces.js></script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/interfaces.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/interfaces.worker-expected.txt
new file mode 100644 (file)
index 0000000..1534f29
--- /dev/null
@@ -0,0 +1,534 @@
+
+PASS Test driver 
+PASS DOMPointReadOnly interface: existence and properties of interface object 
+PASS DOMPointReadOnly interface object length 
+PASS DOMPointReadOnly interface object name 
+PASS DOMPointReadOnly interface: existence and properties of interface prototype object 
+PASS DOMPointReadOnly interface: existence and properties of interface prototype object's "constructor" property 
+PASS DOMPointReadOnly interface: operation fromPoint(DOMPointInit) 
+PASS DOMPointReadOnly interface: attribute x 
+PASS DOMPointReadOnly interface: attribute y 
+PASS DOMPointReadOnly interface: attribute z 
+PASS DOMPointReadOnly interface: attribute w 
+PASS DOMPointReadOnly interface: operation matrixTransform(DOMMatrixInit) 
+PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "fromPoint" with the proper type (0) 
+PASS DOMPointReadOnly interface: calling fromPoint(DOMPointInit) on new DOMPointReadOnly() with too few arguments must throw TypeError 
+PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "x" with the proper type (1) 
+PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "y" with the proper type (2) 
+PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "z" with the proper type (3) 
+PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "w" with the proper type (4) 
+PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "matrixTransform" with the proper type (5) 
+PASS DOMPointReadOnly interface: calling matrixTransform(DOMMatrixInit) on new DOMPointReadOnly() with too few arguments must throw TypeError 
+PASS DOMPoint interface: existence and properties of interface object 
+PASS DOMPoint interface object length 
+PASS DOMPoint interface object name 
+PASS DOMPoint interface: legacy window alias 
+PASS DOMPoint interface: existence and properties of interface prototype object 
+PASS DOMPoint interface: existence and properties of interface prototype object's "constructor" property 
+PASS DOMPoint interface: operation fromPoint(DOMPointInit) 
+PASS DOMPoint interface: attribute x 
+PASS DOMPoint interface: attribute y 
+PASS DOMPoint interface: attribute z 
+PASS DOMPoint interface: attribute w 
+PASS DOMPoint interface: new DOMPoint() must inherit property "fromPoint" with the proper type (0) 
+PASS DOMPoint interface: calling fromPoint(DOMPointInit) on new DOMPoint() with too few arguments must throw TypeError 
+PASS DOMPoint interface: new DOMPoint() must inherit property "x" with the proper type (1) 
+PASS DOMPoint interface: new DOMPoint() must inherit property "y" with the proper type (2) 
+PASS DOMPoint interface: new DOMPoint() must inherit property "z" with the proper type (3) 
+PASS DOMPoint interface: new DOMPoint() must inherit property "w" with the proper type (4) 
+PASS DOMPointReadOnly interface: new DOMPoint() must inherit property "fromPoint" with the proper type (0) 
+PASS DOMPointReadOnly interface: calling fromPoint(DOMPointInit) on new DOMPoint() with too few arguments must throw TypeError 
+PASS DOMPointReadOnly interface: new DOMPoint() must inherit property "x" with the proper type (1) 
+PASS DOMPointReadOnly interface: new DOMPoint() must inherit property "y" with the proper type (2) 
+PASS DOMPointReadOnly interface: new DOMPoint() must inherit property "z" with the proper type (3) 
+PASS DOMPointReadOnly interface: new DOMPoint() must inherit property "w" with the proper type (4) 
+PASS DOMPointReadOnly interface: new DOMPoint() must inherit property "matrixTransform" with the proper type (5) 
+PASS DOMPointReadOnly interface: calling matrixTransform(DOMMatrixInit) on new DOMPoint() with too few arguments must throw TypeError 
+PASS DOMRectReadOnly interface: existence and properties of interface object 
+PASS DOMRectReadOnly interface object length 
+PASS DOMRectReadOnly interface object name 
+PASS DOMRectReadOnly interface: existence and properties of interface prototype object 
+PASS DOMRectReadOnly interface: existence and properties of interface prototype object's "constructor" property 
+PASS DOMRectReadOnly interface: operation fromRect(DOMRectInit) 
+PASS DOMRectReadOnly interface: attribute x 
+PASS DOMRectReadOnly interface: attribute y 
+PASS DOMRectReadOnly interface: attribute width 
+PASS DOMRectReadOnly interface: attribute height 
+PASS DOMRectReadOnly interface: attribute top 
+PASS DOMRectReadOnly interface: attribute right 
+PASS DOMRectReadOnly interface: attribute bottom 
+PASS DOMRectReadOnly interface: attribute left 
+PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "fromRect" with the proper type (0) 
+PASS DOMRectReadOnly interface: calling fromRect(DOMRectInit) on new DOMRectReadOnly() with too few arguments must throw TypeError 
+PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "x" with the proper type (1) 
+PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "y" with the proper type (2) 
+PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "width" with the proper type (3) 
+PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "height" with the proper type (4) 
+PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "top" with the proper type (5) 
+PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "right" with the proper type (6) 
+PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "bottom" with the proper type (7) 
+PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "left" with the proper type (8) 
+PASS DOMRect interface: existence and properties of interface object 
+PASS DOMRect interface object length 
+PASS DOMRect interface object name 
+PASS DOMRect interface: legacy window alias 
+PASS DOMRect interface: existence and properties of interface prototype object 
+PASS DOMRect interface: existence and properties of interface prototype object's "constructor" property 
+PASS DOMRect interface: operation fromRect(DOMRectInit) 
+PASS DOMRect interface: attribute x 
+PASS DOMRect interface: attribute y 
+PASS DOMRect interface: attribute width 
+PASS DOMRect interface: attribute height 
+PASS DOMRect interface: new DOMRect() must inherit property "fromRect" with the proper type (0) 
+PASS DOMRect interface: calling fromRect(DOMRectInit) on new DOMRect() with too few arguments must throw TypeError 
+PASS DOMRect interface: new DOMRect() must inherit property "x" with the proper type (1) 
+PASS DOMRect interface: new DOMRect() must inherit property "y" with the proper type (2) 
+PASS DOMRect interface: new DOMRect() must inherit property "width" with the proper type (3) 
+PASS DOMRect interface: new DOMRect() must inherit property "height" with the proper type (4) 
+PASS DOMRectReadOnly interface: new DOMRect() must inherit property "fromRect" with the proper type (0) 
+PASS DOMRectReadOnly interface: calling fromRect(DOMRectInit) on new DOMRect() with too few arguments must throw TypeError 
+PASS DOMRectReadOnly interface: new DOMRect() must inherit property "x" with the proper type (1) 
+PASS DOMRectReadOnly interface: new DOMRect() must inherit property "y" with the proper type (2) 
+PASS DOMRectReadOnly interface: new DOMRect() must inherit property "width" with the proper type (3) 
+PASS DOMRectReadOnly interface: new DOMRect() must inherit property "height" with the proper type (4) 
+PASS DOMRectReadOnly interface: new DOMRect() must inherit property "top" with the proper type (5) 
+PASS DOMRectReadOnly interface: new DOMRect() must inherit property "right" with the proper type (6) 
+PASS DOMRectReadOnly interface: new DOMRect() must inherit property "bottom" with the proper type (7) 
+PASS DOMRectReadOnly interface: new DOMRect() must inherit property "left" with the proper type (8) 
+PASS DOMQuad interface: existence and properties of interface object 
+PASS DOMQuad interface object length 
+PASS DOMQuad interface object name 
+PASS DOMQuad interface: existence and properties of interface prototype object 
+PASS DOMQuad interface: existence and properties of interface prototype object's "constructor" property 
+PASS DOMQuad interface: operation fromRect(DOMRectInit) 
+PASS DOMQuad interface: operation fromQuad(DOMQuadInit) 
+PASS DOMQuad interface: attribute p1 
+PASS DOMQuad interface: attribute p2 
+PASS DOMQuad interface: attribute p3 
+PASS DOMQuad interface: attribute p4 
+PASS DOMQuad interface: operation getBounds() 
+PASS DOMQuad interface: new DOMQuad() must inherit property "fromRect" with the proper type (0) 
+PASS DOMQuad interface: calling fromRect(DOMRectInit) on new DOMQuad() with too few arguments must throw TypeError 
+PASS DOMQuad interface: new DOMQuad() must inherit property "fromQuad" with the proper type (1) 
+PASS DOMQuad interface: calling fromQuad(DOMQuadInit) on new DOMQuad() with too few arguments must throw TypeError 
+PASS DOMQuad interface: new DOMQuad() must inherit property "p1" with the proper type (2) 
+PASS DOMQuad interface: new DOMQuad() must inherit property "p2" with the proper type (3) 
+PASS DOMQuad interface: new DOMQuad() must inherit property "p3" with the proper type (4) 
+PASS DOMQuad interface: new DOMQuad() must inherit property "p4" with the proper type (5) 
+PASS DOMQuad interface: new DOMQuad() must inherit property "getBounds" with the proper type (6) 
+FAIL DOMMatrixReadOnly interface: existence and properties of interface object assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface object length assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface object name assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: existence and properties of interface prototype object assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: operation fromMatrix(DOMMatrixInit) assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: operation fromFloat32Array(Float32Array) assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: operation fromFloat64Array(Float64Array) assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: attribute a assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: attribute b assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: attribute c assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: attribute d assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: attribute e assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: attribute f assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: attribute m11 assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: attribute m12 assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: attribute m13 assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: attribute m14 assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: attribute m21 assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: attribute m22 assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: attribute m23 assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: attribute m24 assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: attribute m31 assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: attribute m32 assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: attribute m33 assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: attribute m34 assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: attribute m41 assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: attribute m42 assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: attribute m43 assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: attribute m44 assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: attribute is2D assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: attribute isIdentity assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: operation translate(unrestricted double,unrestricted double,unrestricted double) assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: operation scale(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double) assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: operation scale3d(unrestricted double,unrestricted double,unrestricted double,unrestricted double) assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: operation rotate(unrestricted double,unrestricted double,unrestricted double) assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: operation rotateFromVector(unrestricted double,unrestricted double) assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: operation rotateAxisAngle(unrestricted double,unrestricted double,unrestricted double,unrestricted double) assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: operation skewX(unrestricted double) assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: operation skewY(unrestricted double) assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: operation multiply(DOMMatrixInit) assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: operation flipX() assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: operation flipY() assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: operation inverse() assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: operation transformPoint(DOMPointInit) assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: operation toFloat32Array() assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: operation toFloat64Array() assert_own_property: self does not have own property "DOMMatrixReadOnly" expected property "DOMMatrixReadOnly" missing
+FAIL DOMMatrixReadOnly interface: member undefined self[this.name] is not an Object. (evaluating 'member.name in self[this.name]')
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "fromMatrix" with the proper type (0) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling fromMatrix(DOMMatrixInit) on new DOMMatrixReadOnly() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "fromFloat32Array" with the proper type (1) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling fromFloat32Array(Float32Array) on new DOMMatrixReadOnly() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "fromFloat64Array" with the proper type (2) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling fromFloat64Array(Float64Array) on new DOMMatrixReadOnly() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "a" with the proper type (3) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "b" with the proper type (4) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "c" with the proper type (5) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "d" with the proper type (6) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "e" with the proper type (7) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "f" with the proper type (8) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m11" with the proper type (9) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m12" with the proper type (10) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m13" with the proper type (11) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m14" with the proper type (12) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m21" with the proper type (13) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m22" with the proper type (14) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m23" with the proper type (15) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m24" with the proper type (16) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m31" with the proper type (17) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m32" with the proper type (18) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m33" with the proper type (19) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m34" with the proper type (20) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m41" with the proper type (21) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m42" with the proper type (22) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m43" with the proper type (23) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m44" with the proper type (24) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "is2D" with the proper type (25) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "isIdentity" with the proper type (26) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "translate" with the proper type (27) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling translate(unrestricted double,unrestricted double,unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "scale" with the proper type (28) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling scale(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "scale3d" with the proper type (29) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling scale3d(unrestricted double,unrestricted double,unrestricted double,unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "rotate" with the proper type (30) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling rotate(unrestricted double,unrestricted double,unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "rotateFromVector" with the proper type (31) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling rotateFromVector(unrestricted double,unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "rotateAxisAngle" with the proper type (32) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling rotateAxisAngle(unrestricted double,unrestricted double,unrestricted double,unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "skewX" with the proper type (33) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling skewX(unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "skewY" with the proper type (34) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling skewY(unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "multiply" with the proper type (35) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling multiply(DOMMatrixInit) on new DOMMatrixReadOnly() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "flipX" with the proper type (36) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "flipY" with the proper type (37) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "inverse" with the proper type (38) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "transformPoint" with the proper type (39) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling transformPoint(DOMPointInit) on new DOMMatrixReadOnly() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "toFloat32Array" with the proper type (40) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "toFloat64Array" with the proper type (41) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnlyinterface: new DOMMatrixReadOnly()must not have property "undefined" obj is not an Object. (evaluating 'member.name in obj')
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "fromMatrix" with the proper type (0) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling fromMatrix(DOMMatrixInit) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "fromFloat32Array" with the proper type (1) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling fromFloat32Array(Float32Array) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "fromFloat64Array" with the proper type (2) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling fromFloat64Array(Float64Array) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "a" with the proper type (3) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "b" with the proper type (4) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "c" with the proper type (5) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "d" with the proper type (6) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "e" with the proper type (7) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "f" with the proper type (8) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m11" with the proper type (9) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m12" with the proper type (10) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m13" with the proper type (11) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m14" with the proper type (12) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m21" with the proper type (13) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m22" with the proper type (14) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m23" with the proper type (15) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m24" with the proper type (16) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m31" with the proper type (17) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m32" with the proper type (18) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m33" with the proper type (19) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m34" with the proper type (20) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m41" with the proper type (21) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m42" with the proper type (22) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m43" with the proper type (23) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m44" with the proper type (24) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "is2D" with the proper type (25) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "isIdentity" with the proper type (26) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "translate" with the proper type (27) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling translate(unrestricted double,unrestricted double,unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "scale" with the proper type (28) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling scale(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "scale3d" with the proper type (29) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling scale3d(unrestricted double,unrestricted double,unrestricted double,unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "rotate" with the proper type (30) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling rotate(unrestricted double,unrestricted double,unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "rotateFromVector" with the proper type (31) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling rotateFromVector(unrestricted double,unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "rotateAxisAngle" with the proper type (32) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling rotateAxisAngle(unrestricted double,unrestricted double,unrestricted double,unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "skewX" with the proper type (33) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling skewX(unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "skewY" with the proper type (34) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling skewY(unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "multiply" with the proper type (35) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling multiply(DOMMatrixInit) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "flipX" with the proper type (36) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "flipY" with the proper type (37) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "inverse" with the proper type (38) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "transformPoint" with the proper type (39) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: calling transformPoint(DOMPointInit) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "toFloat32Array" with the proper type (40) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "toFloat64Array" with the proper type (41) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrixReadOnly"
+FAIL DOMMatrixReadOnlyinterface: DOMMatrixReadOnly.fromMatrix({is2D: false})must not have property "undefined" obj is not an Object. (evaluating 'member.name in obj')
+FAIL DOMMatrix interface: existence and properties of interface object assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface object length assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface object name assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+PASS DOMMatrix interface: legacy window alias 
+FAIL DOMMatrix interface: existence and properties of interface prototype object assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: operation fromMatrix(DOMMatrixInit) assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: operation fromFloat32Array(Float32Array) assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: operation fromFloat64Array(Float64Array) assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: attribute a assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: attribute b assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: attribute c assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: attribute d assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: attribute e assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: attribute f assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: attribute m11 assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: attribute m12 assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: attribute m13 assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: attribute m14 assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: attribute m21 assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: attribute m22 assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: attribute m23 assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: attribute m24 assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: attribute m31 assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: attribute m32 assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: attribute m33 assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: attribute m34 assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: attribute m41 assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: attribute m42 assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: attribute m43 assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: attribute m44 assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: operation multiplySelf(DOMMatrixInit) assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: operation preMultiplySelf(DOMMatrixInit) assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: operation translateSelf(unrestricted double,unrestricted double,unrestricted double) assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: operation scaleSelf(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double) assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: operation scale3dSelf(unrestricted double,unrestricted double,unrestricted double,unrestricted double) assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: operation rotateSelf(unrestricted double,unrestricted double,unrestricted double) assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: operation rotateFromVectorSelf(unrestricted double,unrestricted double) assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: operation rotateAxisAngleSelf(unrestricted double,unrestricted double,unrestricted double,unrestricted double) assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: operation skewXSelf(unrestricted double) assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: operation skewYSelf(unrestricted double) assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: operation invertSelf() assert_own_property: self does not have own property "DOMMatrix" expected property "DOMMatrix" missing
+FAIL DOMMatrix interface: member setMatrixValue self[this.name] is not an Object. (evaluating 'member.name in self[this.name]')
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "fromMatrix" with the proper type (0) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling fromMatrix(DOMMatrixInit) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "fromFloat32Array" with the proper type (1) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling fromFloat32Array(Float32Array) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "fromFloat64Array" with the proper type (2) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling fromFloat64Array(Float64Array) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "a" with the proper type (3) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "b" with the proper type (4) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "c" with the proper type (5) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "d" with the proper type (6) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "e" with the proper type (7) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "f" with the proper type (8) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "m11" with the proper type (9) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "m12" with the proper type (10) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "m13" with the proper type (11) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "m14" with the proper type (12) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "m21" with the proper type (13) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "m22" with the proper type (14) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "m23" with the proper type (15) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "m24" with the proper type (16) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "m31" with the proper type (17) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "m32" with the proper type (18) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "m33" with the proper type (19) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "m34" with the proper type (20) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "m41" with the proper type (21) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "m42" with the proper type (22) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "m43" with the proper type (23) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "m44" with the proper type (24) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "multiplySelf" with the proper type (25) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling multiplySelf(DOMMatrixInit) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "preMultiplySelf" with the proper type (26) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling preMultiplySelf(DOMMatrixInit) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "translateSelf" with the proper type (27) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling translateSelf(unrestricted double,unrestricted double,unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "scaleSelf" with the proper type (28) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling scaleSelf(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "scale3dSelf" with the proper type (29) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling scale3dSelf(unrestricted double,unrestricted double,unrestricted double,unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "rotateSelf" with the proper type (30) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling rotateSelf(unrestricted double,unrestricted double,unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "rotateFromVectorSelf" with the proper type (31) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling rotateFromVectorSelf(unrestricted double,unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "rotateAxisAngleSelf" with the proper type (32) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling rotateAxisAngleSelf(unrestricted double,unrestricted double,unrestricted double,unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "skewXSelf" with the proper type (33) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling skewXSelf(unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "skewYSelf" with the proper type (34) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling skewYSelf(unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: new DOMMatrix() must inherit property "invertSelf" with the proper type (35) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixinterface: new DOMMatrix()must not have property "setMatrixValue" obj is not an Object. (evaluating 'member.name in obj')
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "fromMatrix" with the proper type (0) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling fromMatrix(DOMMatrixInit) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "fromFloat32Array" with the proper type (1) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling fromFloat32Array(Float32Array) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "fromFloat64Array" with the proper type (2) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling fromFloat64Array(Float64Array) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "a" with the proper type (3) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "b" with the proper type (4) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "c" with the proper type (5) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "d" with the proper type (6) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "e" with the proper type (7) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "f" with the proper type (8) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m11" with the proper type (9) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m12" with the proper type (10) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m13" with the proper type (11) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m14" with the proper type (12) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m21" with the proper type (13) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m22" with the proper type (14) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m23" with the proper type (15) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m24" with the proper type (16) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m31" with the proper type (17) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m32" with the proper type (18) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m33" with the proper type (19) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m34" with the proper type (20) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m41" with the proper type (21) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m42" with the proper type (22) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m43" with the proper type (23) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m44" with the proper type (24) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "is2D" with the proper type (25) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "isIdentity" with the proper type (26) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "translate" with the proper type (27) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling translate(unrestricted double,unrestricted double,unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "scale" with the proper type (28) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling scale(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "scale3d" with the proper type (29) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling scale3d(unrestricted double,unrestricted double,unrestricted double,unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "rotate" with the proper type (30) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling rotate(unrestricted double,unrestricted double,unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "rotateFromVector" with the proper type (31) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling rotateFromVector(unrestricted double,unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "rotateAxisAngle" with the proper type (32) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling rotateAxisAngle(unrestricted double,unrestricted double,unrestricted double,unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "skewX" with the proper type (33) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling skewX(unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "skewY" with the proper type (34) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling skewY(unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "multiply" with the proper type (35) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling multiply(DOMMatrixInit) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "flipX" with the proper type (36) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "flipY" with the proper type (37) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "inverse" with the proper type (38) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "transformPoint" with the proper type (39) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling transformPoint(DOMPointInit) on new DOMMatrix() with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "toFloat32Array" with the proper type (40) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "toFloat64Array" with the proper type (41) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnlyinterface: new DOMMatrix()must not have property "undefined" obj is not an Object. (evaluating 'member.name in obj')
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "fromMatrix" with the proper type (0) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling fromMatrix(DOMMatrixInit) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "fromFloat32Array" with the proper type (1) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling fromFloat32Array(Float32Array) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "fromFloat64Array" with the proper type (2) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling fromFloat64Array(Float64Array) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "a" with the proper type (3) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "b" with the proper type (4) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "c" with the proper type (5) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "d" with the proper type (6) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "e" with the proper type (7) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "f" with the proper type (8) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m11" with the proper type (9) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m12" with the proper type (10) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m13" with the proper type (11) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m14" with the proper type (12) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m21" with the proper type (13) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m22" with the proper type (14) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m23" with the proper type (15) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m24" with the proper type (16) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m31" with the proper type (17) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m32" with the proper type (18) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m33" with the proper type (19) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m34" with the proper type (20) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m41" with the proper type (21) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m42" with the proper type (22) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m43" with the proper type (23) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m44" with the proper type (24) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "multiplySelf" with the proper type (25) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling multiplySelf(DOMMatrixInit) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "preMultiplySelf" with the proper type (26) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling preMultiplySelf(DOMMatrixInit) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "translateSelf" with the proper type (27) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling translateSelf(unrestricted double,unrestricted double,unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "scaleSelf" with the proper type (28) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling scaleSelf(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "scale3dSelf" with the proper type (29) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling scale3dSelf(unrestricted double,unrestricted double,unrestricted double,unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "rotateSelf" with the proper type (30) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling rotateSelf(unrestricted double,unrestricted double,unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "rotateFromVectorSelf" with the proper type (31) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling rotateFromVectorSelf(unrestricted double,unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "rotateAxisAngleSelf" with the proper type (32) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling rotateAxisAngleSelf(unrestricted double,unrestricted double,unrestricted double,unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "skewXSelf" with the proper type (33) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling skewXSelf(unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "skewYSelf" with the proper type (34) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: calling skewYSelf(unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "invertSelf" with the proper type (35) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixinterface: DOMMatrix.fromMatrix({is2D: false})must not have property "setMatrixValue" obj is not an Object. (evaluating 'member.name in obj')
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "fromMatrix" with the proper type (0) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling fromMatrix(DOMMatrixInit) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "fromFloat32Array" with the proper type (1) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling fromFloat32Array(Float32Array) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "fromFloat64Array" with the proper type (2) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling fromFloat64Array(Float64Array) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "a" with the proper type (3) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "b" with the proper type (4) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "c" with the proper type (5) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "d" with the proper type (6) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "e" with the proper type (7) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "f" with the proper type (8) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m11" with the proper type (9) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m12" with the proper type (10) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m13" with the proper type (11) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m14" with the proper type (12) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m21" with the proper type (13) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m22" with the proper type (14) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m23" with the proper type (15) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m24" with the proper type (16) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m31" with the proper type (17) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m32" with the proper type (18) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m33" with the proper type (19) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m34" with the proper type (20) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m41" with the proper type (21) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m42" with the proper type (22) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m43" with the proper type (23) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m44" with the proper type (24) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "is2D" with the proper type (25) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "isIdentity" with the proper type (26) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "translate" with the proper type (27) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling translate(unrestricted double,unrestricted double,unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "scale" with the proper type (28) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling scale(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "scale3d" with the proper type (29) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling scale3d(unrestricted double,unrestricted double,unrestricted double,unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "rotate" with the proper type (30) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling rotate(unrestricted double,unrestricted double,unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "rotateFromVector" with the proper type (31) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling rotateFromVector(unrestricted double,unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "rotateAxisAngle" with the proper type (32) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling rotateAxisAngle(unrestricted double,unrestricted double,unrestricted double,unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "skewX" with the proper type (33) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling skewX(unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "skewY" with the proper type (34) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling skewY(unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "multiply" with the proper type (35) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling multiply(DOMMatrixInit) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "flipX" with the proper type (36) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "flipY" with the proper type (37) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "inverse" with the proper type (38) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "transformPoint" with the proper type (39) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: calling transformPoint(DOMPointInit) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "toFloat32Array" with the proper type (40) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "toFloat64Array" with the proper type (41) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: DOMMatrix"
+FAIL DOMMatrixReadOnlyinterface: DOMMatrix.fromMatrix({is2D: false})must not have property "undefined" obj is not an Object. (evaluating 'member.name in obj')
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/interfaces.worker.html b/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/interfaces.worker.html
new file mode 100644 (file)
index 0000000..2382913
--- /dev/null
@@ -0,0 +1 @@
+<!-- This file is required for WebKit test infrastructure to run the templated test -->
\ No newline at end of file
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/interfaces.worker.js b/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/interfaces.worker.js
new file mode 100644 (file)
index 0000000..fad617b
--- /dev/null
@@ -0,0 +1,9 @@
+"use strict";
+// https://drafts.fxtf.org/geometry/#DOMPoint
+// https://drafts.fxtf.org/geometry/#DOMRect
+// https://drafts.fxtf.org/geometry/#DOMQuad
+// https://drafts.fxtf.org/geometry/#DOMMatrix
+
+importScripts("/resources/testharness.js");
+importScripts("/resources/WebIDLParser.js", "/resources/idlharness.js");
+importScripts("support/interfaces.js");
index f9caf42..ca33cec 100644 (file)
@@ -111,16 +111,36 @@ function defineThrowingGetters(object, attrs) {
     case "DOMMatrix":
       promise_test(t => {
         const object = new self[constr]([1, -0, Infinity, NaN, 5, 6]);
+        object.m13 = -0;
+        object.m14 = -0;
+        object.m23 = -0;
+        object.m24 = -0;
+        object.m31 = -0;
+        object.m32 = -0;
+        object.m34 = -0;
+        object.m43 = -0;
+        assert_true(object.is2D, 'is2D after setting m13 etc to -0');
         return clone(object).then(other => {
           for (let attr of attrs) {
-            assert_equals(other[attr], object[attr], attr);
+            if (attr === 'm13' ||
+                attr === 'm14' ||
+                attr === 'm23' ||
+                attr === 'm24' ||
+                attr === 'm31' ||
+                attr === 'm32' ||
+                attr === 'm34' ||
+                attr === 'm43') {
+              assert_equals(other[attr], 0, attr);
+            } else {
+              assert_equals(other[attr], object[attr], attr);
+            }
           }
           t.done();
         });
       }, `${prefix} non-initial values (2d)`);
 
       promise_test(t => {
-        const object = new self[constr]([11, 12, 13, 14,
+        const object = new self[constr]([11, -0, Infinity, NaN,
                                          21, 22, 23, 24,
                                          31, 32, 33, 34,
                                          41, 42, 43, 44]);
index 1a4a785..2780e10 100644 (file)
@@ -21,6 +21,7 @@ List of files:
 /LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMMatrix-css-string.worker.js
 /LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMMatrix-newobject.html
 /LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMMatrix-stringifier.html
+/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMMatrixInit-validate-fixup.html
 /LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMPoint-001.html
 /LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMPoint-002.html
 /LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMQuad-001.html
@@ -30,4 +31,6 @@ List of files:
 /LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/WebKitCSSMatrix.html
 /LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/WebKitCSSMatrix.worker.js
 /LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/historical.html
+/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/interfaces.html
+/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/interfaces.worker.js
 /LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/structured-serialization.html
index c20f906..532afa8 100644 (file)
@@ -427,6 +427,7 @@ set(WebCore_NON_SVG_IDL_FILES
     css/CSSSupportsRule.idl
     css/CSSUnknownRule.idl
     css/DOMMatrix.idl
+    css/DOMMatrix2DInit.idl
     css/DOMMatrixInit.idl
     css/DOMMatrixReadOnly.idl
     css/DeprecatedCSSOMCounter.idl
index 4faaa87..d1fdc81 100644 (file)
@@ -1,3 +1,47 @@
+2017-08-31  Sam Weinig  <sam@webkit.org>
+
+        Implement DOMMatrix2DInit for setTransform()/addPath()
+        https://bugs.webkit.org/show_bug.cgi?id=176048
+
+        Reviewed by Simon Fraser.
+
+        * DerivedSources.make:
+        * WebCore.xcodeproj/project.pbxproj:
+        * CMakeLists.txt:
+
+            Add new files.
+
+        * bindings/js/CallTracerTypes.h:
+        * inspector/InspectorCanvas.cpp:
+        
+            Swap out DOMMatrixInit for DOMMatrix2DInit in canvas tracing infrastructure.
+
+        * css/DOMMatrix2DInit.h: Added.
+        * css/DOMMatrix2DInit.idl: Added.
+        * css/DOMMatrixInit.h:
+        * css/DOMMatrixInit.idl:
+        Split DOMMatrixInit in two, with the 2D bits going into DOMMatrix2DInit.
+        
+        * css/DOMMatrixReadOnly.cpp:
+        * css/DOMMatrixReadOnly.h:
+        
+            Add a validateAndFixup overload for DOMMatrix2DInit.
+        
+        * html/canvas/CanvasRenderingContext2D.cpp:
+        * html/canvas/CanvasRenderingContext2D.h:
+
+            Swap out DOMMatrixInit for DOMMatrix2DInit in setTransform. This
+            should have no observable difference, since we ignored the 3D prior.
+
+        * html/canvas/DOMPath.cpp:
+        * html/canvas/DOMPath.h:
+        * html/canvas/DOMPath.idl:
+
+            Update DOMPath (actually called Path2D) to take an optional DOMMatrix2DInit
+            rather than an SVGMatrix. Passing an SVGMatrix is still valid, as it conforms
+            as a DOMMatrix2DInit dictionary (having the necessary properties), so the
+            risk of compatibility issues is minimal.
+
 2017-08-31  Brady Eidson  <beidson@apple.com>
 
         Add (entirely incorrect) fetching of ServiceWorker scripts.
index 6e74777..7224fde 100644 (file)
@@ -369,6 +369,7 @@ JS_BINDING_IDLS = \
     $(WebCore)/css/CSSSupportsRule.idl \
     $(WebCore)/css/CSSUnknownRule.idl \
     $(WebCore)/css/DOMMatrix.idl \
+    $(WebCore)/css/DOMMatrix2DInit.idl \
     $(WebCore)/css/DOMMatrixInit.idl \
     $(WebCore)/css/DOMMatrixReadOnly.idl \
     $(WebCore)/css/DeprecatedCSSOMCounter.idl \
index 3cc2a30..2fbe845 100644 (file)
                7CB5CA3F1E525C7100FAEF13 /* MediaQueryExpression.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7CB5CA3D1E525C6C00FAEF13 /* MediaQueryExpression.cpp */; };
                7CB5CA401E525C7300FAEF13 /* MediaQueryExpression.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CB5CA3E1E525C6C00FAEF13 /* MediaQueryExpression.h */; settings = {ATTRIBUTES = (Private, ); }; };
                7CBA5BA71F0B4BDE0034D745 /* JSDOMConvertWebGL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7CBA5BA61F0B4BDE0034D745 /* JSDOMConvertWebGL.cpp */; };
+               7CBBBCC71F560581005EFAAC /* DOMMatrix2DInit.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CBBBCC61F560568005EFAAC /* DOMMatrix2DInit.h */; };
+               7CBBBCCA1F5617C5005EFAAC /* JSDOMMatrix2DInit.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CBBBCC91F5617C0005EFAAC /* JSDOMMatrix2DInit.h */; };
+               7CBBBCCB1F56180D005EFAAC /* JSDOMMatrix2DInit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7CBBBCC81F5617C0005EFAAC /* JSDOMMatrix2DInit.cpp */; };
                7CC01D0A1E4A7B0400E529CC /* JSDOMBuiltinConstructorBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C0CEF2E1E4A5832008DEB80 /* JSDOMBuiltinConstructorBase.cpp */; };
                7CC01D0B1E4A7B0400E529CC /* JSDOMConstructorBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C0CEF2F1E4A58AD008DEB80 /* JSDOMConstructorBase.cpp */; };
                7CC01D0C1E4A7B0400E529CC /* JSDOMConstructorWithDocument.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C0CEF301E4A58F1008DEB80 /* JSDOMConstructorWithDocument.cpp */; };
                7CB5CA3D1E525C6C00FAEF13 /* MediaQueryExpression.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaQueryExpression.cpp; sourceTree = "<group>"; };
                7CB5CA3E1E525C6C00FAEF13 /* MediaQueryExpression.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaQueryExpression.h; sourceTree = "<group>"; };
                7CBA5BA61F0B4BDE0034D745 /* JSDOMConvertWebGL.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = JSDOMConvertWebGL.cpp; sourceTree = "<group>"; };
+               7CBBBCC41F560567005EFAAC /* DOMMatrix2DInit.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DOMMatrix2DInit.idl; sourceTree = "<group>"; };
+               7CBBBCC61F560568005EFAAC /* DOMMatrix2DInit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMMatrix2DInit.h; sourceTree = "<group>"; };
+               7CBBBCC81F5617C0005EFAAC /* JSDOMMatrix2DInit.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = JSDOMMatrix2DInit.cpp; path = JSDOMMatrix2DInit.cpp; sourceTree = "<group>"; };
+               7CBBBCC91F5617C0005EFAAC /* JSDOMMatrix2DInit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JSDOMMatrix2DInit.h; path = JSDOMMatrix2DInit.h; sourceTree = "<group>"; };
                7CC2DDF81EC9415A0027B774 /* NotificationPermission.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NotificationPermission.h; sourceTree = "<group>"; };
                7CC2DDFA1EC9415A0027B774 /* NotificationPermission.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = NotificationPermission.idl; sourceTree = "<group>"; };
                7CC2DDFE1EC95A440027B774 /* JSNotificationPermission.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSNotificationPermission.cpp; sourceTree = "<group>"; };
                                FC9E0E4B16419C1E00392BE3 /* JSDOMCSSNamespace.h */,
                                836ACECD1ECAAB04004BD012 /* JSDOMMatrix.cpp */,
                                836ACECE1ECAAB04004BD012 /* JSDOMMatrix.h */,
+                               7CBBBCC81F5617C0005EFAAC /* JSDOMMatrix2DInit.cpp */,
+                               7CBBBCC91F5617C0005EFAAC /* JSDOMMatrix2DInit.h */,
                                835657C61ECAB0E800CDE72D /* JSDOMMatrixInit.cpp */,
                                836ACECF1ECAAB04004BD012 /* JSDOMMatrixInit.h */,
                                836ACED01ECAAB04004BD012 /* JSDOMMatrixReadOnly.cpp */,
                                836ACEC41ECA6654004BD012 /* DOMMatrix.cpp */,
                                836ACEC51ECA6654004BD012 /* DOMMatrix.h */,
                                836ACEC61ECA6654004BD012 /* DOMMatrix.idl */,
+                               7CBBBCC61F560568005EFAAC /* DOMMatrix2DInit.h */,
+                               7CBBBCC41F560567005EFAAC /* DOMMatrix2DInit.idl */,
                                836ACEC71ECA6654004BD012 /* DOMMatrixInit.h */,
                                836ACEC81ECA6654004BD012 /* DOMMatrixInit.idl */,
                                836ACEBF1ECA62B0004BD012 /* DOMMatrixReadOnly.cpp */,
                                267725FF1A5B3AD9003C24DD /* DFANode.h in Headers */,
                                CD19A2681A13E700008D650E /* DiagnosticLoggingClient.h in Headers */,
                                46FCB6181A70820E00C5A21E /* DiagnosticLoggingKeys.h in Headers */,
+                               7CBBBCCA1F5617C5005EFAAC /* JSDOMMatrix2DInit.h in Headers */,
                                8372DB311A6780A800C697C5 /* DiagnosticLoggingResultType.h in Headers */,
                                CECADFC7153778FF00E37068 /* DictationAlternative.h in Headers */,
                                CECADFC9153778FF00E37068 /* DictationCommand.h in Headers */,
                                2E4346530F546A8200B0F1BA /* WorkerRunLoop.h in Headers */,
                                A57FD71C1DB9423E006AE24B /* WorkerRuntimeAgent.h in Headers */,
                                E1A643F20EC0972500779668 /* WorkerScriptController.h in Headers */,
+                               7CBBBCC71F560581005EFAAC /* DOMMatrix2DInit.h in Headers */,
                                A54A0C661DB805360017A90B /* WorkerScriptDebugServer.h in Headers */,
                                A7D6B3490F61104500B79FD1 /* WorkerScriptLoader.h in Headers */,
                                2EA768040FE7126400AB9C8A /* WorkerScriptLoaderClient.h in Headers */,
                                49484FCD102CF23C00187DD3 /* CanvasStyle.cpp in Sources */,
                                072CA86116CB4DC3008AE131 /* CaptionUserPreferences.cpp in Sources */,
                                079D086C162F21F900DB8658 /* CaptionUserPreferencesMediaAF.cpp in Sources */,
+                               7CBBBCCB1F56180D005EFAAC /* JSDOMMatrix2DInit.cpp in Sources */,
                                07B7116E1D899E63009F0FFB /* CaptureDeviceManager.cpp in Sources */,
                                CDC734141977896C0046BFC5 /* CARingBuffer.cpp in Sources */,
                                6550B69D099DF0270090D781 /* CDATASection.cpp in Sources */,
index 55130cc..c2378a8 100644 (file)
@@ -28,7 +28,7 @@
 #include "CanvasGradient.h"
 #include "CanvasPattern.h"
 #include "CanvasRenderingContext2D.h"
-#include "DOMMatrixInit.h"
+#include "DOMMatrix2DInit.h"
 #include "DOMPath.h"
 #include "Element.h"
 #include "HTMLCanvasElement.h"
@@ -59,7 +59,7 @@ namespace WebCore {
 typedef Variant<
     CanvasRenderingContext2D::ImageSmoothingQuality,
     CanvasRenderingContext2D::WindingRule,
-    DOMMatrixInit,
+    DOMMatrix2DInit,
     DOMPath*,
     Element*,
     HTMLImageElement*,
diff --git a/Source/WebCore/css/DOMMatrix2DInit.h b/Source/WebCore/css/DOMMatrix2DInit.h
new file mode 100644 (file)
index 0000000..f39d279
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2017 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include <wtf/Optional.h>
+
+namespace WebCore {
+
+struct DOMMatrix2DInit {
+    std::optional<double> a;
+    std::optional<double> b;
+    std::optional<double> c;
+    std::optional<double> d;
+    std::optional<double> e;
+    std::optional<double> f;
+    std::optional<double> m11;
+    std::optional<double> m12;
+    std::optional<double> m21;
+    std::optional<double> m22;
+    std::optional<double> m41;
+    std::optional<double> m42;
+};
+
+}
diff --git a/Source/WebCore/css/DOMMatrix2DInit.idl b/Source/WebCore/css/DOMMatrix2DInit.idl
new file mode 100644 (file)
index 0000000..c2ed76e
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2017 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+dictionary DOMMatrix2DInit {
+    unrestricted double a;
+    unrestricted double b;
+    unrestricted double c;
+    unrestricted double d;
+    unrestricted double e;
+    unrestricted double f;
+    unrestricted double m11;
+    unrestricted double m12;
+    unrestricted double m21;
+    unrestricted double m22;
+    unrestricted double m41;
+    unrestricted double m42;
+};
index 8ddc27a..168db3d 100644 (file)
 
 #pragma once
 
-#include <wtf/Optional.h>
+#include "DOMMatrix2DInit.h"
 
 namespace WebCore {
 
-struct DOMMatrixInit {
-    std::optional<double> a;
-    std::optional<double> b;
-    std::optional<double> c;
-    std::optional<double> d;
-    std::optional<double> e;
-    std::optional<double> f;
-    std::optional<double> m11;
-    std::optional<double> m12;
+struct DOMMatrixInit : DOMMatrix2DInit {
     double m13 { 0 };
     double m14 { 0 };
-    std::optional<double> m21;
-    std::optional<double> m22;
     double m23 { 0 };
     double m24 { 0 };
     double m31 { 0 };
     double m32 { 0 };
     double m33 { 1 };
     double m34 { 0 };
-    std::optional<double> m41;
-    std::optional<double> m42;
     double m43 { 0 };
     double m44 { 1 };
     std::optional<bool> is2D;
index afb9e42..4847643 100644 (file)
  * THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-dictionary DOMMatrixInit {
-    unrestricted double a;
-    unrestricted double b;
-    unrestricted double c;
-    unrestricted double d;
-    unrestricted double e;
-    unrestricted double f;
-    unrestricted double m11;
-    unrestricted double m12;
+dictionary DOMMatrixInit : DOMMatrix2DInit {
     unrestricted double m13 = 0;
     unrestricted double m14 = 0;
-    unrestricted double m21;
-    unrestricted double m22;
     unrestricted double m23 = 0;
     unrestricted double m24 = 0;
     unrestricted double m31 = 0;
     unrestricted double m32 = 0;
     unrestricted double m33 = 1;
     unrestricted double m34 = 0;
-    unrestricted double m41;
-    unrestricted double m42;
     unrestricted double m43 = 0;
     unrestricted double m44 = 1;
     boolean is2D;
index 56ecf61..5af5c8d 100644 (file)
@@ -59,8 +59,9 @@ inline Ref<DOMMatrix> DOMMatrixReadOnly::cloneAsDOMMatrix() const
 }
 
 // https://drafts.fxtf.org/geometry/#matrix-validate-and-fixup
-ExceptionOr<void> DOMMatrixReadOnly::validateAndFixup(DOMMatrixInit& init)
+ExceptionOr<void> DOMMatrixReadOnly::validateAndFixup(DOMMatrix2DInit& init)
 {
+    // FIXME: Should be using SameValueZero rather than c-equality.
     if (init.a && init.m11 && init.a.value() != init.m11.value())
         return Exception { TypeError, ASCIILiteral("init.a and init.m11 do not match") };
     if (init.b && init.m12 && init.b.value() != init.m12.value())
@@ -74,6 +75,28 @@ ExceptionOr<void> DOMMatrixReadOnly::validateAndFixup(DOMMatrixInit& init)
     if (init.f && init.m42 && init.f.value() != init.m42.value())
         return Exception { TypeError, ASCIILiteral("init.f and init.m42 do not match") };
 
+    if (!init.m11)
+        init.m11 = init.a.value_or(1);
+    if (!init.m12)
+        init.m12 = init.b.value_or(0);
+    if (!init.m21)
+        init.m21 = init.c.value_or(0);
+    if (!init.m22)
+        init.m22 = init.d.value_or(1);
+    if (!init.m41)
+        init.m41 = init.e.value_or(0);
+    if (!init.m42)
+        init.m42 = init.f.value_or(0);
+
+    return { };
+}
+
+ExceptionOr<void> DOMMatrixReadOnly::validateAndFixup(DOMMatrixInit& init)
+{
+    auto validate2D = validateAndFixup(static_cast<DOMMatrix2DInit&>(init));
+    if (validate2D.hasException())
+        return validate2D.releaseException();
+
     if (init.is2D && init.is2D.value()) {
         if (init.m13)
             return Exception { TypeError, ASCIILiteral("m13 should be 0 for a 2D matrix") };
@@ -97,19 +120,6 @@ ExceptionOr<void> DOMMatrixReadOnly::validateAndFixup(DOMMatrixInit& init)
             return Exception { TypeError, ASCIILiteral("m44 should be 1 for a 2D matrix") };
     }
 
-    if (!init.m11)
-        init.m11 = init.a.value_or(1);
-    if (!init.m12)
-        init.m12 = init.b.value_or(0);
-    if (!init.m21)
-        init.m21 = init.c.value_or(0);
-    if (!init.m22)
-        init.m22 = init.d.value_or(1);
-    if (!init.m41)
-        init.m41 = init.e.value_or(0);
-    if (!init.m42)
-        init.m42 = init.f.value_or(0);
-
     if (!init.is2D) {
         if (init.m13 || init.m14 || init.m23 || init.m24 || init.m31 || init.m32 || init.m34 || init.m43 || init.m33 != 1 || init.m44 != 1)
             init.is2D = false;
index 69a4385..5531c7e 100644 (file)
@@ -75,6 +75,7 @@ public:
     static ExceptionOr<Ref<DOMMatrixReadOnly>> fromFloat32Array(Ref<Float32Array>&&);
     static ExceptionOr<Ref<DOMMatrixReadOnly>> fromFloat64Array(Ref<Float64Array>&&);
 
+    static ExceptionOr<void> validateAndFixup(DOMMatrix2DInit&);
     static ExceptionOr<void> validateAndFixup(DOMMatrixInit&);
 
     double a() const { return m_matrix.a(); }
index fbb4a78..53dd797 100644 (file)
@@ -41,7 +41,7 @@
 #include "CanvasGradient.h"
 #include "CanvasPattern.h"
 #include "DOMMatrix.h"
-#include "DOMMatrixInit.h"
+#include "DOMMatrix2DInit.h"
 #include "DOMPath.h"
 #include "DisplayListRecorder.h"
 #include "DisplayListReplayer.h"
@@ -815,14 +815,13 @@ void CanvasRenderingContext2D::setTransform(float m11, float m12, float m21, flo
     transform(m11, m12, m21, m22, dx, dy);
 }
 
-ExceptionOr<void> CanvasRenderingContext2D::setTransform(DOMMatrixInit&& matrixInit)
+ExceptionOr<void> CanvasRenderingContext2D::setTransform(DOMMatrix2DInit&& matrixInit)
 {
     auto checkValid = DOMMatrixReadOnly::validateAndFixup(matrixInit);
     if (checkValid.hasException())
         return checkValid.releaseException();
 
     setTransform(matrixInit.a.value_or(1), matrixInit.b.value_or(0), matrixInit.c.value_or(0), matrixInit.d.value_or(1), matrixInit.e.value_or(0), matrixInit.f.value_or(0));
-
     return { };
 }
 
index 6923373..99f9324 100644 (file)
@@ -55,7 +55,7 @@ class HTMLVideoElement;
 class ImageData;
 class TextMetrics;
 
-struct DOMMatrixInit;
+struct DOMMatrix2DInit;
 
 #if ENABLE(VIDEO)
 using CanvasImageSource = Variant<RefPtr<HTMLImageElement>, RefPtr<HTMLVideoElement>, RefPtr<HTMLCanvasElement>>;
@@ -119,7 +119,7 @@ public:
 
     Ref<DOMMatrix> getTransform() const;
     void setTransform(float m11, float m12, float m21, float m22, float dx, float dy);
-    ExceptionOr<void> setTransform(DOMMatrixInit&&);
+    ExceptionOr<void> setTransform(DOMMatrix2DInit&&);
     void resetTransform();
 
     void setStrokeColor(const String& color, std::optional<float> alpha = std::nullopt);
index d51b78a..08b4a01 100644 (file)
 #include "config.h"
 #include "DOMPath.h"
 
+#include "AffineTransform.h"
+#include "DOMMatrix2DInit.h"
+#include "DOMMatrixReadOnly.h"
+
 namespace WebCore {
 
 DOMPath::~DOMPath()
 {
 }
 
+ExceptionOr<void> DOMPath::addPath(DOMPath& path, DOMMatrix2DInit&& matrixInit)
+{
+    auto checkValid = DOMMatrixReadOnly::validateAndFixup(matrixInit);
+    if (checkValid.hasException())
+        return checkValid.releaseException();
+
+    m_path.addPath(path.path(), { matrixInit.a.value_or(1), matrixInit.b.value_or(0), matrixInit.c.value_or(0), matrixInit.d.value_or(1), matrixInit.e.value_or(0), matrixInit.f.value_or(0) });
+    return { };
+}
+
 }
index 030d4a4..c318d98 100644 (file)
 #pragma once
 
 #include "CanvasPath.h"
-#include "SVGMatrix.h"
 #include "SVGPathUtilities.h"
+#include <wtf/Optional.h>
 #include <wtf/RefCounted.h>
 
 namespace WebCore {
 
+struct DOMMatrix2DInit;
+
 class WEBCORE_EXPORT DOMPath final : public RefCounted<DOMPath>, public CanvasPath {
     WTF_MAKE_FAST_ALLOCATED;
 public:
     virtual ~DOMPath();
 
-    static Ref<DOMPath> create() { return adoptRef(*new DOMPath); }
-    static Ref<DOMPath> create(const Path& path) { return adoptRef(*new DOMPath(path)); }
-    static Ref<DOMPath> create(const DOMPath& path) { return create(path.path()); }
+    static Ref<DOMPath> create()
+    {
+        return adoptRef(*new DOMPath);
+    }
+
+    static Ref<DOMPath> create(const Path& path)
+    {
+        return adoptRef(*new DOMPath(path));
+    }
+
+    static Ref<DOMPath> create(const DOMPath& path)
+    {
+        return create(path.path());
+    }
 
     static Ref<DOMPath> create(const String& pathData)
     {
@@ -50,22 +63,16 @@ public:
         return create(path);
     }
 
-    void addPath(const DOMPath* path) { addPath(path, AffineTransform()); }
-    void addPath(const DOMPath* path, SVGMatrix& matrix) { addPath(path, matrix.propertyReference()); }
-    void addPath(const DOMPath* path, const AffineTransform& transform)
-    {
-        if (!path || !transform.isInvertible())
-            return;
-        m_path.addPath(path->path(), transform);
-    }
+    ExceptionOr<void> addPath(DOMPath&, DOMMatrix2DInit&&);
 
     const Path& path() const { return m_path; }
 
 private:
-    DOMPath() { }
+    DOMPath() = default;
     DOMPath(const Path& path)
         : CanvasPath(path)
-    { }
+    {
+    }
 };
 
 } // namespace WebCore
index 155d740..d26ba55 100644 (file)
     ExportMacro=WEBCORE_EXPORT,
     InterfaceName=Path2D,
 ] interface DOMPath {
-    // FIXME: This should be:
-    // void addPath(DOMPath path, optional SVGMatrix transform);
-    void addPath(DOMPath? path);
-    void addPath(DOMPath? path, SVGMatrix transform);
+    [MayThrowException] void addPath(DOMPath path, optional DOMMatrix2DInit transform);
 };
 
 DOMPath implements CanvasPath;
index 2dab547..890cc51 100644 (file)
@@ -485,7 +485,7 @@ RefPtr<Inspector::Protocol::Array<Inspector::InspectorValue>> InspectorCanvas::b
                 String imageSmoothingQuality = CanvasRenderingContext2D::stringForImageSmoothingQuality(value);
                 parametersData->addItem(indexForData(imageSmoothingQuality));
             },
-            [&] (const DOMMatrixInit& value) {
+            [&] (const DOMMatrix2DInit& value) {
                 RefPtr<Inspector::Protocol::Array<double>> array = Inspector::Protocol::Array<double>::create();
                 array->addItem(value.a.value_or(1));
                 array->addItem(value.b.value_or(0));