DOMMatrix and DOMMatrixReadOnly should be available in workers
authorweinig@apple.com <weinig@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 2 Sep 2017 01:38:07 +0000 (01:38 +0000)
committerweinig@apple.com <weinig@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 2 Sep 2017 01:38:07 +0000 (01:38 +0000)
https://bugs.webkit.org/show_bug.cgi?id=176255

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

* web-platform-tests/css/geometry-1/DOMMatrix-css-string.worker-expected.txt:
* web-platform-tests/css/geometry-1/interfaces.worker-expected.txt:
Update test results.

Source/WebCore:

* WebCore.xcodeproj/project.pbxproj:

    Add GlobalPerformance.idl to the project. It was missing.

* bindings/scripts/CodeGeneratorJS.pm:
(IsAlwaysExposedOnInterface):
(NeedsRuntimeCheck):
(GenerateRuntimeEnableConditionalStringForExposed):
(GenerateRuntimeEnableConditionalString):

    Adds support for [Exposed] extended attributes on operations, attributes and
    constants. This allows an interface that is exposed to both windows and workers
    (with [Exposed=(Window,Worker)]), to indicate that a specific property should
    only be be exposed somewhere, e.g only the window. This is need by DOMMatrixReadOnly's
    stringifier, which is only exposed in the window environment.

* bindings/scripts/IDLParser.pm:
(parseExtendedAttributeRest2):

    Fix bug where array extended attributes, like those found in Exposed expressions
    where being converter to scalars.

* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
* bindings/scripts/test/JS/JSTestGlobalObject.cpp:
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/TestObj.idl:

    Add tests and update results. Some results are just improved
    includes.

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

    Expose DOMMatrix and DOMMatrixReadOnly to workers and update the constructors
    to match the current spec, throwing if the argument is a string, and the context
    is not the window / document context. Also did some refactoring to avoid allocating
    the DOMMatrix or DOMMatrixReadOnly until after all the exceptional cases were handled.

LayoutTests:

* js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
* platform/mac-wk1/js/dom/global-constructors-attributes-dedicated-worker-expected.txt
* platform/wpe/js/dom/global-constructors-attributes-dedicated-worker-expected.txt

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

21 files changed:
LayoutTests/ChangeLog
LayoutTests/imported/w3c/ChangeLog
LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMMatrix-css-string.worker-expected.txt
LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/interfaces.worker-expected.txt
LayoutTests/js/dom/global-constructors-attributes-dedicated-worker-expected.txt
LayoutTests/platform/mac-wk1/js/dom/global-constructors-attributes-dedicated-worker-expected.txt
LayoutTests/platform/wpe/js/dom/global-constructors-attributes-dedicated-worker-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
Source/WebCore/bindings/scripts/IDLParser.pm
Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp
Source/WebCore/bindings/scripts/test/JS/JSTestGlobalObject.cpp
Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp
Source/WebCore/bindings/scripts/test/TestObj.idl
Source/WebCore/css/DOMMatrix.cpp
Source/WebCore/css/DOMMatrix.h
Source/WebCore/css/DOMMatrix.idl
Source/WebCore/css/DOMMatrixReadOnly.cpp
Source/WebCore/css/DOMMatrixReadOnly.h
Source/WebCore/css/DOMMatrixReadOnly.idl

index 68daa7e..4118ffc 100644 (file)
@@ -1,3 +1,14 @@
+2017-09-01  Sam Weinig  <sam@webkit.org>
+
+        DOMMatrix and DOMMatrixReadOnly should be available in workers
+        https://bugs.webkit.org/show_bug.cgi?id=176255
+
+        Reviewed by Simon Fraser.
+
+        * js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
+        * platform/mac-wk1/js/dom/global-constructors-attributes-dedicated-worker-expected.txt
+        * platform/wpe/js/dom/global-constructors-attributes-dedicated-worker-expected.txt
+
 2017-09-01  Chris Dumez  <cdumez@apple.com>
 
         Implement FileSystemDirectoryEntry.getFile()
index 0123cc6..83247a5 100644 (file)
@@ -1,3 +1,14 @@
+2017-09-01  Sam Weinig  <sam@webkit.org>
+
+        DOMMatrix and DOMMatrixReadOnly should be available in workers
+        https://bugs.webkit.org/show_bug.cgi?id=176255
+
+        Reviewed by Simon Fraser.
+
+        * web-platform-tests/css/geometry-1/DOMMatrix-css-string.worker-expected.txt:
+        * web-platform-tests/css/geometry-1/interfaces.worker-expected.txt:
+        Update test results.
+
 2017-09-01  Emilio Cobos Ãlvarez  <emilio@crisal.io>
 
         Wrong getComputedStyle behavior for pseudo-elements for layout-dependent properties.
index 5dd7677..79d1ac0 100644 (file)
@@ -1,13 +1,13 @@
 
-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])')
-FAIL DOMMatrix setMatrixValue in worker Can't find variable: DOMMatrix
+PASS DOMMatrix constructor with string argument in worker 
+PASS DOMMatrix constructor with empty string argument in worker 
+PASS DOMMatrix stringifier in worker (2d identity) 
+PASS DOMMatrix stringifier in worker (3d identity) 
+PASS DOMMatrix stringifier in worker (non-finite values) 
+PASS DOMMatrixReadOnly constructor with string argument in worker 
+PASS DOMMatrixReadOnly constructor with empty string argument in worker 
+PASS DOMMatrixReadOnly stringifier in worker (2d identity) 
+PASS DOMMatrixReadOnly stringifier in worker (3d identity) 
+PASS DOMMatrixReadOnly stringifier in worker (non-finite values) 
+PASS DOMMatrix setMatrixValue in worker 
 
index 1534f29..1b88d19 100644 (file)
@@ -116,419 +116,419 @@ PASS DOMQuad interface: new DOMQuad() must inherit property "p2" with the proper
 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 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: member undefined 
+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 DOMMatrixReadOnlyinterface: new DOMMatrixReadOnly()must not have property "undefined" 
+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 DOMMatrixReadOnlyinterface: DOMMatrixReadOnly.fromMatrix({is2D: false})must not have property "undefined" 
+PASS DOMMatrix interface: existence and properties of interface object 
+PASS DOMMatrix interface object length 
+PASS DOMMatrix interface object name 
 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')
+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: member setMatrixValue 
+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 DOMMatrixinterface: new DOMMatrix()must not have property "setMatrixValue" 
+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 DOMMatrixReadOnlyinterface: new DOMMatrix()must not have property "undefined" 
+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 DOMMatrixinterface: DOMMatrix.fromMatrix({is2D: false})must not have property "setMatrixValue" 
+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) 
+PASS DOMMatrixReadOnlyinterface: DOMMatrix.fromMatrix({is2D: false})must not have property "undefined" 
 
index a0bfc22..4b1c98f 100644 (file)
@@ -59,6 +59,16 @@ PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMException').hasOwnProp
 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMException').hasOwnProperty('set') is false
 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMException').enumerable is false
 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMException').configurable is true
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrix').value is DOMMatrix
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrix').hasOwnProperty('get') is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrix').hasOwnProperty('set') is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrix').enumerable is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrix').configurable is true
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrixReadOnly').value is DOMMatrixReadOnly
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrixReadOnly').hasOwnProperty('get') is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrixReadOnly').hasOwnProperty('set') is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrixReadOnly').enumerable is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrixReadOnly').configurable is true
 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMPoint').value is DOMPoint
 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMPoint').hasOwnProperty('get') is false
 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMPoint').hasOwnProperty('set') is false
index 3a6ac07..29e80e3 100644 (file)
@@ -49,6 +49,16 @@ PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMException').hasOwnProp
 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMException').hasOwnProperty('set') is false
 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMException').enumerable is false
 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMException').configurable is true
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrix').value is DOMMatrix
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrix').hasOwnProperty('get') is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrix').hasOwnProperty('set') is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrix').enumerable is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrix').configurable is true
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrixReadOnly').value is DOMMatrixReadOnly
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrixReadOnly').hasOwnProperty('get') is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrixReadOnly').hasOwnProperty('set') is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrixReadOnly').enumerable is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrixReadOnly').configurable is true
 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMPoint').value is DOMPoint
 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMPoint').hasOwnProperty('get') is false
 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMPoint').hasOwnProperty('set') is false
index a0bfc22..4b1c98f 100644 (file)
@@ -59,6 +59,16 @@ PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMException').hasOwnProp
 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMException').hasOwnProperty('set') is false
 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMException').enumerable is false
 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMException').configurable is true
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrix').value is DOMMatrix
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrix').hasOwnProperty('get') is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrix').hasOwnProperty('set') is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrix').enumerable is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrix').configurable is true
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrixReadOnly').value is DOMMatrixReadOnly
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrixReadOnly').hasOwnProperty('get') is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrixReadOnly').hasOwnProperty('set') is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrixReadOnly').enumerable is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMMatrixReadOnly').configurable is true
 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMPoint').value is DOMPoint
 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMPoint').hasOwnProperty('get') is false
 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DOMPoint').hasOwnProperty('set') is false
index c8f74ef..56725d3 100644 (file)
@@ -1,3 +1,52 @@
+2017-09-01  Sam Weinig  <sam@webkit.org>
+
+        DOMMatrix and DOMMatrixReadOnly should be available in workers
+        https://bugs.webkit.org/show_bug.cgi?id=176255
+
+        Reviewed by Simon Fraser.
+
+        * WebCore.xcodeproj/project.pbxproj:
+
+            Add GlobalPerformance.idl to the project. It was missing.
+
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (IsAlwaysExposedOnInterface):
+        (NeedsRuntimeCheck):
+        (GenerateRuntimeEnableConditionalStringForExposed):
+        (GenerateRuntimeEnableConditionalString):
+
+            Adds support for [Exposed] extended attributes on operations, attributes and
+            constants. This allows an interface that is exposed to both windows and workers 
+            (with [Exposed=(Window,Worker)]), to indicate that a specific property should
+            only be be exposed somewhere, e.g only the window. This is need by DOMMatrixReadOnly's
+            stringifier, which is only exposed in the window environment.
+
+        * bindings/scripts/IDLParser.pm:
+        (parseExtendedAttributeRest2):
+
+            Fix bug where array extended attributes, like those found in Exposed expressions
+            where being converter to scalars.
+
+        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
+        * bindings/scripts/test/JS/JSTestGlobalObject.cpp:
+        * bindings/scripts/test/JS/JSTestObj.cpp:
+        * bindings/scripts/test/TestObj.idl:
+
+            Add tests and update results. Some results are just improved
+            includes.
+
+        * css/DOMMatrix.cpp:
+        * css/DOMMatrix.h:
+        * css/DOMMatrix.idl:
+        * css/DOMMatrixReadOnly.cpp:
+        * css/DOMMatrixReadOnly.h:
+        * css/DOMMatrixReadOnly.idl:
+            
+            Expose DOMMatrix and DOMMatrixReadOnly to workers and update the constructors
+            to match the current spec, throwing if the argument is a string, and the context
+            is not the window / document context. Also did some refactoring to avoid allocating
+            the DOMMatrix or DOMMatrixReadOnly until after all the exceptional cases were handled.
+
 2017-09-01  Chris Dumez  <cdumez@apple.com>
 
         Implement FileSystemDirectoryEntry.getFile()
index 97f09c1..5cebb26 100644 (file)
                7C93F3481AA6BA5E00A98BAB /* CompiledContentExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompiledContentExtension.h; sourceTree = "<group>"; };
                7C93F34B1AA6BF0700A98BAB /* ContentExtensionCompiler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ContentExtensionCompiler.cpp; sourceTree = "<group>"; };
                7C93F34C1AA6BF0700A98BAB /* ContentExtensionCompiler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContentExtensionCompiler.h; sourceTree = "<group>"; };
+               7C9892451F5A07650091DC70 /* GlobalPerformance.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = GlobalPerformance.idl; sourceTree = "<group>"; };
                7C9ACA8F1F3CC0AA00F3AA09 /* CryptoKeyAlgorithm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CryptoKeyAlgorithm.h; sourceTree = "<group>"; };
                7C9ACA911F3CC0AA00F3AA09 /* CryptoKeyAlgorithm.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = CryptoKeyAlgorithm.idl; sourceTree = "<group>"; };
                7C9ACA961F3CCDAD00F3AA09 /* CryptoAesKeyAlgorithm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CryptoAesKeyAlgorithm.h; sourceTree = "<group>"; };
                                65CBFEF70974F607001DAC25 /* FrameView.cpp */,
                                65CBFEF80974F607001DAC25 /* FrameView.h */,
                                574D42791D594FF6002CF50E /* GlobalCrypto.idl */,
+                               7C9892451F5A07650091DC70 /* GlobalPerformance.idl */,
                                BC94D1500C275C8B006BC617 /* History.cpp */,
                                BC94D1510C275C8B006BC617 /* History.h */,
                                BC94D1520C275C8B006BC617 /* History.idl */,
index 66ef517..4a07304 100644 (file)
@@ -1659,12 +1659,43 @@ sub AttributeShouldBeOnInstance
     return 0;
 }
 
+sub IsAlwaysExposedOnInterface
+{
+    my ($interfaceExposures, $contextExposures) = @_;
+
+    my %contextExposureSet = ();
+
+    if (ref($contextExposures) eq "ARRAY") {
+        foreach my $contextExposure (@$contextExposures) {
+            $contextExposureSet{$contextExposure} = 1;
+        }
+    } else {
+        $contextExposureSet{$contextExposures} = 1;
+    }
+
+    if (ref($interfaceExposures) ne "ARRAY") {
+        $interfaceExposures = [$interfaceExposures];
+    }
+
+    foreach my $interfaceExposure (@$interfaceExposures) {
+        return 0 unless exists $contextExposureSet{$interfaceExposure};
+    }
+
+    return 1;
+}
+
 sub NeedsRuntimeCheck
 {
-    my $interface = shift;
-    return $interface->extendedAttributes->{EnabledAtRuntime}
-        || $interface->extendedAttributes->{EnabledForWorld}
-        || $interface->extendedAttributes->{SecureContext};
+    my ($interface, $context) = @_;
+
+    if ($context->extendedAttributes->{Exposed}) {
+        my $interfaceExposures = $interface->extendedAttributes->{Exposed} || "Window";
+        return 1 if !IsAlwaysExposedOnInterface($interfaceExposures, $context->extendedAttributes->{Exposed});
+    }
+
+    return $context->extendedAttributes->{EnabledAtRuntime}
+        || $context->extendedAttributes->{EnabledForWorld}
+        || $context->extendedAttributes->{SecureContext};
 }
 
 # https://heycam.github.io/webidl/#es-operations
@@ -1675,7 +1706,7 @@ sub OperationShouldBeOnInstance
     return 1 if IsGlobalOrPrimaryGlobalInterface($interface);
 
     # FIXME: The bindings generator does not support putting runtime-enabled operations on the instance yet (except for global objects).
-    return 0 if NeedsRuntimeCheck($operation);
+    return 0 if NeedsRuntimeCheck($interface, $operation);
 
     # [Unforgeable] operations should be on the instance. https://heycam.github.io/webidl/#Unforgeable
     return 1 if IsUnforgeable($interface, $operation);
@@ -1698,7 +1729,7 @@ sub IsAcceleratedDOMAttribute
     my ($interface, $attribute) = @_;
 
     # If we use CustomGetterSetter in IDL code generator we cannot skip type check.
-    return 0 if NeedsRuntimeCheck($attribute) and AttributeShouldBeOnInstance($interface, $attribute);
+    return 0 if NeedsRuntimeCheck($interface, $attribute) and AttributeShouldBeOnInstance($interface, $attribute);
     return 0 if $attribute->extendedAttributes->{PrivateIdentifier} and AttributeShouldBeOnInstance($interface, $attribute);
 
     # If the interface has special logic for casting we cannot hoist type check to JSC.
@@ -2989,7 +3020,7 @@ sub GeneratePropertiesHashTable
         next if AttributeShouldBeOnInstance($interface, $attribute) != $isInstance;
 
         # Global objects add RuntimeEnabled attributes after creation so do not add them to the static table.
-        if ($isInstance && NeedsRuntimeCheck($attribute)) {
+        if ($isInstance && NeedsRuntimeCheck($interface, $attribute)) {
             $propertyCount -= 1;
             next;
         }
@@ -3019,7 +3050,7 @@ sub GeneratePropertiesHashTable
         my $readWriteConditional = $attribute->extendedAttributes->{ConditionallyReadWrite};
         $readWriteConditionals->{$name} = $readWriteConditional if $readWriteConditional;
 
-        if (NeedsRuntimeCheck($attribute)) {
+        if (NeedsRuntimeCheck($interface, $attribute)) {
             push(@$runtimeEnabledAttributes, $attribute);
         }
 
@@ -3040,7 +3071,7 @@ sub GeneratePropertiesHashTable
         next if $operation->name eq "[Symbol.Iterator]";
 
         # Global objects add RuntimeEnabled operations after creation so do not add them to the static table.
-        if ($isInstance && NeedsRuntimeCheck($operation)) {
+        if ($isInstance && NeedsRuntimeCheck($interface, $operation)) {
             $propertyCount -= 1;
             next;
         }
@@ -3064,7 +3095,7 @@ sub GeneratePropertiesHashTable
         my $conditional = GetConditionalForOperationConsideringOverloads($operation);
         $conditionals->{$name} = $conditional if $conditional;
 
-        if (NeedsRuntimeCheck($operation)) {
+        if (NeedsRuntimeCheck($interface, $operation)) {
             push(@$runtimeEnabledOperations, $operation);
         }
 
@@ -3575,31 +3606,68 @@ sub ToMethodName
     return $ret;
 }
 
+sub GenerateRuntimeEnableConditionalStringForExposed
+{
+    my ($interface, $context, $conjuncts) = @_;
+
+    assert("Must specify value for Exposed.") if $context->extendedAttributes->{Exposed} eq "VALUE_IS_MISSING";
+
+    AddToImplIncludes("ScriptExecutionContext.h");
+
+    my $exposed = $context->extendedAttributes->{Exposed};
+    if (ref($exposed) eq 'ARRAY') {
+        if (scalar(@$exposed) > 1) {
+            return;
+        }
+        $exposed = @$exposed[0];
+    }
+
+    if ($exposed eq "Window") {
+        push(@$conjuncts, "jsCast<JSDOMGlobalObject*>(globalObject())->scriptExecutionContext()->isDocument()");
+    } elsif ($exposed eq "Worker") {
+        push(@$conjuncts, "jsCast<JSDOMGlobalObject*>(globalObject())->scriptExecutionContext()->isWorkerGlobalScope()");
+    } else {
+        assert("Unrecognized value '" . Dumper($context->extendedAttributes->{Exposed}) . "' for the Exposed extended attribute on '" . ref($context) . "'.");
+    }
+}
+
 # Returns the conditional string that determines whether a method/attribute is enabled at runtime.
 # A method/attribute is enabled at runtime if either its RuntimeEnabledFeatures function returns
 # true or its EnabledForWorld function returns true (or both).
 # NOTE: Parameter passed in must have an 'extendedAttributes' property.
-# (e.g. DOMInterface, DOMAttribute, DOMOperation, DOMIterable, etc.)
+# (e.g. IDLInterface, IDLAttribute, IDLOperation, IDLIterable, etc.)
 sub GenerateRuntimeEnableConditionalString
 {
-    my $context = shift;
-
-    AddToImplIncludes("RuntimeEnabledFeatures.h");
-    AddToImplIncludes("ScriptExecutionContext.h");
+    my ($interface, $context) = @_;
 
     my @conjuncts;
-    push @conjuncts, "jsCast<JSDOMGlobalObject*>(globalObject())->scriptExecutionContext()->isSecureContext()" if $context->extendedAttributes->{SecureContext};
+    
+    if ($context->extendedAttributes->{SecureContext}) {
+        AddToImplIncludes("ScriptExecutionContext.h");
+
+        push(@conjuncts, "jsCast<JSDOMGlobalObject*>(globalObject())->scriptExecutionContext()->isSecureContext()");
+    }
+
+    if ($context->extendedAttributes->{Exposed}) {
+        GenerateRuntimeEnableConditionalStringForExposed($interface, $context, \@conjuncts);
+    }
 
     if ($context->extendedAttributes->{EnabledForWorld}) {
         assert("Must specify value for EnabledForWorld.") if $context->extendedAttributes->{EnabledForWorld} eq "VALUE_IS_MISSING";
-        push @conjuncts, "worldForDOMObject(this)." . ToMethodName($context->extendedAttributes->{EnabledForWorld}) . "()";
+
+        AddToImplIncludes("DOMWrapperWorld.h");
+
+        push(@conjuncts, "worldForDOMObject(this)." . ToMethodName($context->extendedAttributes->{EnabledForWorld}) . "()");
     }
 
     if ($context->extendedAttributes->{EnabledAtRuntime}) {
         assert("Must specify value for EnabledAtRuntime.") if $context->extendedAttributes->{EnabledAtRuntime} eq "VALUE_IS_MISSING";
-        my @flags = split /&/, $context->extendedAttributes->{EnabledAtRuntime};
+
+        AddToImplIncludes("RuntimeEnabledFeatures.h");
+
+        my @flags = split(/&/, $context->extendedAttributes->{EnabledAtRuntime});
         foreach my $flag (@flags) {
-            push @conjuncts, "RuntimeEnabledFeatures::sharedFeatures()." . ToMethodName($flag) . "Enabled()";
+            push(@conjuncts, "RuntimeEnabledFeatures::sharedFeatures()." . ToMethodName($flag) . "Enabled()");
         }
     }
 
@@ -4050,7 +4118,7 @@ sub GenerateImplementation
         foreach my $operationOrAttribute (@runtimeEnabledProperties) {
             my $conditionalString = $codeGenerator->GenerateConditionalString($operationOrAttribute);
             push(@implContent, "#if ${conditionalString}\n") if $conditionalString;
-            my $runtimeEnableConditionalString = GenerateRuntimeEnableConditionalString($operationOrAttribute);
+            my $runtimeEnableConditionalString = GenerateRuntimeEnableConditionalString($interface, $operationOrAttribute);
             my $name = $operationOrAttribute->name;
             push(@implContent, "    if (!${runtimeEnableConditionalString}) {\n");
             push(@implContent, "        auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>(\"$name\"), strlen(\"$name\"));\n");
@@ -4180,12 +4248,12 @@ sub GenerateImplementation
 
     # Support for RuntimeEnabled attributes on instances.
     foreach my $attribute (@{$interface->attributes}) {
-        next unless NeedsRuntimeCheck($attribute);
+        next unless NeedsRuntimeCheck($interface, $attribute);
         next unless AttributeShouldBeOnInstance($interface, $attribute);
 
         my $conditionalString = $codeGenerator->GenerateConditionalString($attribute);
         push(@implContent, "#if ${conditionalString}\n") if $conditionalString;
-        my $runtimeEnableConditionalString = GenerateRuntimeEnableConditionalString($attribute);
+        my $runtimeEnableConditionalString = GenerateRuntimeEnableConditionalString($interface, $attribute);
         my $attributeName = $attribute->name;
         push(@implContent, "    if (${runtimeEnableConditionalString}) {\n");
         my $getter = GetAttributeGetterName($interface, $className, $attribute);
@@ -4214,13 +4282,13 @@ sub GenerateImplementation
 
     # Support for RuntimeEnabled operations on instances.
     foreach my $operation (@{$interface->operations}) {
-        next unless NeedsRuntimeCheck($operation);
+        next unless NeedsRuntimeCheck($interface, $operation);
         next unless OperationShouldBeOnInstance($interface, $operation);
         next if $operation->{overloadIndex} && $operation->{overloadIndex} > 1;
 
         my $conditionalString = $codeGenerator->GenerateConditionalString($operation);
         push(@implContent, "#if ${conditionalString}\n") if $conditionalString;
-        my $runtimeEnableConditionalString = GenerateRuntimeEnableConditionalString($operation);
+        my $runtimeEnableConditionalString = GenerateRuntimeEnableConditionalString($interface, $operation);
         my $functionName = $operation->name;
         my $implementationFunction = GetFunctionName($interface, $className, $operation);
         my $functionLength = GetFunctionLength($operation);
index 7c867d6..bf9813a 100644 (file)
@@ -2319,7 +2319,7 @@ sub parseExtendedAttributeRest2
         $self->assertTokenValue($self->getToken(), "(", __LINE__);
         my @arguments = $self->parseIdentifierList();
         $self->assertTokenValue($self->getToken(), ")", __LINE__);
-        return @arguments;
+        return \@arguments;
     }
     if ($next->type() == IdentifierToken) {
         my $name = $self->parseName();
index a3770e5..b5d112a 100644 (file)
@@ -27,7 +27,6 @@
 #include "JSDOMConvertStrings.h"
 #include "JSDOMExceptionHandling.h"
 #include "JSDOMWrapperCache.h"
-#include "RuntimeEnabledFeatures.h"
 #include "ScriptExecutionContext.h"
 #include <runtime/FunctionPrototype.h>
 #include <runtime/JSCInlines.h>
index be5f6ea..82782f4 100644 (file)
@@ -21,6 +21,7 @@
 #include "config.h"
 #include "JSTestGlobalObject.h"
 
+#include "DOMWrapperWorld.h"
 #include "JSDOMAttribute.h"
 #include "JSDOMBinding.h"
 #include "JSDOMConstructorNotConstructable.h"
index d0225fb..92e633d 100644 (file)
@@ -23,6 +23,7 @@
 
 #include "DOMPromiseProxy.h"
 #include "DOMWindow.h"
+#include "DOMWrapperWorld.h"
 #include "Document.h"
 #include "EventNames.h"
 #include "Frame.h"
@@ -1158,6 +1159,9 @@ JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionBufferSourceParamete
 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionLegacyCallerNamed(JSC::ExecState*);
 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionTestReturnValueOptimization(JSC::ExecState*);
 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionTestReturnValueOptimizationWithException(JSC::ExecState*);
+JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionConditionallyExposedToWindowFunction(JSC::ExecState*);
+JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionConditionallyExposedToWorkerFunction(JSC::ExecState*);
+JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionConditionallyExposedToWindowAndWorkerFunction(JSC::ExecState*);
 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionToString(JSC::ExecState*);
 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionToJSON(JSC::ExecState*);
 
@@ -1373,6 +1377,12 @@ JSC::EncodedJSValue jsTestObjConditionalAndConditionallyReadWriteAttribute(JSC::
 bool setJSTestObjConditionalAndConditionallyReadWriteAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
 #endif
 #endif
+JSC::EncodedJSValue jsTestObjConditionallyExposedToWindowAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+bool setJSTestObjConditionallyExposedToWindowAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjConditionallyExposedToWorkerAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+bool setJSTestObjConditionallyExposedToWorkerAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
+JSC::EncodedJSValue jsTestObjConditionallyExposedToWindowAndWorkerAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
+bool setJSTestObjConditionallyExposedToWindowAndWorkerAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
 
 class JSTestObjPrototype : public JSC::JSNonFinalObject {
 public:
@@ -1682,6 +1692,9 @@ static const HashTableValue JSTestObjPrototypeTableValues[] =
 #else
     { 0, 0, NoIntrinsic, { 0, 0 } },
 #endif
+    { "conditionallyExposedToWindowAttribute", CustomAccessor | DOMAttribute, NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionallyExposedToWindowAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjConditionallyExposedToWindowAttribute) } },
+    { "conditionallyExposedToWorkerAttribute", CustomAccessor | DOMAttribute, NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionallyExposedToWorkerAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjConditionallyExposedToWorkerAttribute) } },
+    { "conditionallyExposedToWindowAndWorkerAttribute", CustomAccessor | DOMAttribute, NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionallyExposedToWindowAndWorkerAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjConditionallyExposedToWindowAndWorkerAttribute) } },
 #if ENABLE(TEST_FEATURE)
     { "enabledAtRuntimeOperation", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionEnabledAtRuntimeOperation), (intptr_t) (1) } },
 #else
@@ -1859,6 +1872,9 @@ static const HashTableValue JSTestObjPrototypeTableValues[] =
     { "legacyCallerNamed", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionLegacyCallerNamed), (intptr_t) (1) } },
     { "testReturnValueOptimization", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionTestReturnValueOptimization), (intptr_t) (2) } },
     { "testReturnValueOptimizationWithException", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionTestReturnValueOptimizationWithException), (intptr_t) (2) } },
+    { "conditionallyExposedToWindowFunction", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionConditionallyExposedToWindowFunction), (intptr_t) (0) } },
+    { "conditionallyExposedToWorkerFunction", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionConditionallyExposedToWorkerFunction), (intptr_t) (0) } },
+    { "conditionallyExposedToWindowAndWorkerFunction", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionConditionallyExposedToWindowAndWorkerFunction), (intptr_t) (0) } },
     { "toString", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionToString), (intptr_t) (0) } },
     { "toJSON", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionToJSON), (intptr_t) (0) } },
 #if ENABLE(Condition1)
@@ -1920,6 +1936,16 @@ void JSTestObjPrototype::finishCreation(VM& vm)
         JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
     }
 #endif
+    if (!jsCast<JSDOMGlobalObject*>(globalObject())->scriptExecutionContext()->isDocument()) {
+        auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("conditionallyExposedToWindowFunction"), strlen("conditionallyExposedToWindowFunction"));
+        VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
+        JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
+    }
+    if (!jsCast<JSDOMGlobalObject*>(globalObject())->scriptExecutionContext()->isWorkerGlobalScope()) {
+        auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("conditionallyExposedToWorkerFunction"), strlen("conditionallyExposedToWorkerFunction"));
+        VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
+        JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
+    }
 #if ENABLE(TEST_FEATURE)
     if (!(RuntimeEnabledFeatures::sharedFeatures().testFeatureEnabled() && RuntimeEnabledFeatures::sharedFeatures().testFeature1Enabled())) {
         auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("enabledAtRuntimeAttribute"), strlen("enabledAtRuntimeAttribute"));
@@ -1927,6 +1953,16 @@ void JSTestObjPrototype::finishCreation(VM& vm)
         JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
     }
 #endif
+    if (!jsCast<JSDOMGlobalObject*>(globalObject())->scriptExecutionContext()->isDocument()) {
+        auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("conditionallyExposedToWindowAttribute"), strlen("conditionallyExposedToWindowAttribute"));
+        VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
+        JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
+    }
+    if (!jsCast<JSDOMGlobalObject*>(globalObject())->scriptExecutionContext()->isWorkerGlobalScope()) {
+        auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("conditionallyExposedToWorkerAttribute"), strlen("conditionallyExposedToWorkerAttribute"));
+        VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
+        JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
+    }
     auto* context = jsCast<JSDOMGlobalObject*>(globalObject())->scriptExecutionContext();
     ASSERT(!context || context->isDocument());
 #if ENABLE(TEST_FEATURE)
@@ -4974,6 +5010,96 @@ bool setJSTestObjConditionalAndConditionallyReadWriteAttribute(ExecState* state,
 
 #endif
 
+static inline JSValue jsTestObjConditionallyExposedToWindowAttributeGetter(ExecState& state, JSTestObj& thisObject, ThrowScope& throwScope)
+{
+    UNUSED_PARAM(throwScope);
+    UNUSED_PARAM(state);
+    auto& impl = thisObject.wrapped();
+    JSValue result = toJS<IDLLong>(impl.conditionallyExposedToWindowAttribute());
+    return result;
+}
+
+EncodedJSValue jsTestObjConditionallyExposedToWindowAttribute(ExecState* state, EncodedJSValue thisValue, PropertyName)
+{
+    return IDLAttribute<JSTestObj>::get<jsTestObjConditionallyExposedToWindowAttributeGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "conditionallyExposedToWindowAttribute");
+}
+
+static inline bool setJSTestObjConditionallyExposedToWindowAttributeSetter(ExecState& state, JSTestObj& thisObject, JSValue value, ThrowScope& throwScope)
+{
+    UNUSED_PARAM(state);
+    UNUSED_PARAM(throwScope);
+    auto& impl = thisObject.wrapped();
+    auto nativeValue = convert<IDLLong>(state, value);
+    RETURN_IF_EXCEPTION(throwScope, false);
+    impl.setConditionallyExposedToWindowAttribute(WTFMove(nativeValue));
+    return true;
+}
+
+bool setJSTestObjConditionallyExposedToWindowAttribute(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    return IDLAttribute<JSTestObj>::set<setJSTestObjConditionallyExposedToWindowAttributeSetter>(*state, thisValue, encodedValue, "conditionallyExposedToWindowAttribute");
+}
+
+static inline JSValue jsTestObjConditionallyExposedToWorkerAttributeGetter(ExecState& state, JSTestObj& thisObject, ThrowScope& throwScope)
+{
+    UNUSED_PARAM(throwScope);
+    UNUSED_PARAM(state);
+    auto& impl = thisObject.wrapped();
+    JSValue result = toJS<IDLLong>(impl.conditionallyExposedToWorkerAttribute());
+    return result;
+}
+
+EncodedJSValue jsTestObjConditionallyExposedToWorkerAttribute(ExecState* state, EncodedJSValue thisValue, PropertyName)
+{
+    return IDLAttribute<JSTestObj>::get<jsTestObjConditionallyExposedToWorkerAttributeGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "conditionallyExposedToWorkerAttribute");
+}
+
+static inline bool setJSTestObjConditionallyExposedToWorkerAttributeSetter(ExecState& state, JSTestObj& thisObject, JSValue value, ThrowScope& throwScope)
+{
+    UNUSED_PARAM(state);
+    UNUSED_PARAM(throwScope);
+    auto& impl = thisObject.wrapped();
+    auto nativeValue = convert<IDLLong>(state, value);
+    RETURN_IF_EXCEPTION(throwScope, false);
+    impl.setConditionallyExposedToWorkerAttribute(WTFMove(nativeValue));
+    return true;
+}
+
+bool setJSTestObjConditionallyExposedToWorkerAttribute(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    return IDLAttribute<JSTestObj>::set<setJSTestObjConditionallyExposedToWorkerAttributeSetter>(*state, thisValue, encodedValue, "conditionallyExposedToWorkerAttribute");
+}
+
+static inline JSValue jsTestObjConditionallyExposedToWindowAndWorkerAttributeGetter(ExecState& state, JSTestObj& thisObject, ThrowScope& throwScope)
+{
+    UNUSED_PARAM(throwScope);
+    UNUSED_PARAM(state);
+    auto& impl = thisObject.wrapped();
+    JSValue result = toJS<IDLLong>(impl.conditionallyExposedToWindowAndWorkerAttribute());
+    return result;
+}
+
+EncodedJSValue jsTestObjConditionallyExposedToWindowAndWorkerAttribute(ExecState* state, EncodedJSValue thisValue, PropertyName)
+{
+    return IDLAttribute<JSTestObj>::get<jsTestObjConditionallyExposedToWindowAndWorkerAttributeGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "conditionallyExposedToWindowAndWorkerAttribute");
+}
+
+static inline bool setJSTestObjConditionallyExposedToWindowAndWorkerAttributeSetter(ExecState& state, JSTestObj& thisObject, JSValue value, ThrowScope& throwScope)
+{
+    UNUSED_PARAM(state);
+    UNUSED_PARAM(throwScope);
+    auto& impl = thisObject.wrapped();
+    auto nativeValue = convert<IDLLong>(state, value);
+    RETURN_IF_EXCEPTION(throwScope, false);
+    impl.setConditionallyExposedToWindowAndWorkerAttribute(WTFMove(nativeValue));
+    return true;
+}
+
+bool setJSTestObjConditionallyExposedToWindowAndWorkerAttribute(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    return IDLAttribute<JSTestObj>::set<setJSTestObjConditionallyExposedToWindowAndWorkerAttributeSetter>(*state, thisValue, encodedValue, "conditionallyExposedToWindowAndWorkerAttribute");
+}
+
 #if ENABLE(TEST_FEATURE)
 static inline JSC::EncodedJSValue jsTestObjPrototypeFunctionEnabledAtRuntimeOperation1Body(JSC::ExecState* state, typename IDLOperation<JSTestObj>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
 {
@@ -5099,7 +5225,7 @@ static inline JSC::EncodedJSValue jsTestObjPrototypeFunctionCalculateSecretResul
 
 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionCalculateSecretResult(ExecState* state)
 {
-    return IDLOperationReturningPromise<JSTestObj>::call<jsTestObjPrototypeFunctionCalculateSecretResultBody, PromiseExecutionScope::WindowOnly>(*state, "calculateSecretResult");
+    return IDLOperationReturningPromise<JSTestObj>::call<jsTestObjPrototypeFunctionCalculateSecretResultBody, PromiseExecutionScope::WindowOrWorker>(*state, "calculateSecretResult");
 }
 
 static inline JSC::EncodedJSValue jsTestObjPrototypeFunctionGetSecretBooleanBody(JSC::ExecState* state, typename IDLOperation<JSTestObj>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
@@ -7675,7 +7801,7 @@ static inline JSC::EncodedJSValue jsTestObjPrototypeFunctionTestPromiseFunctionB
 
 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionTestPromiseFunction(ExecState* state)
 {
-    return IDLOperationReturningPromise<JSTestObj>::call<jsTestObjPrototypeFunctionTestPromiseFunctionBody, PromiseExecutionScope::WindowOnly>(*state, "testPromiseFunction");
+    return IDLOperationReturningPromise<JSTestObj>::call<jsTestObjPrototypeFunctionTestPromiseFunctionBody, PromiseExecutionScope::WindowOrWorker>(*state, "testPromiseFunction");
 }
 
 static inline JSC::EncodedJSValue jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentBody(JSC::ExecState* state, typename IDLOperationReturningPromise<JSTestObj>::ClassParameter castedThis, Ref<DeferredPromise>&& promise, JSC::ThrowScope& throwScope)
@@ -7693,7 +7819,7 @@ static inline JSC::EncodedJSValue jsTestObjPrototypeFunctionTestPromiseFunctionW
 
 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgument(ExecState* state)
 {
-    return IDLOperationReturningPromise<JSTestObj>::call<jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentBody, PromiseExecutionScope::WindowOnly>(*state, "testPromiseFunctionWithFloatArgument");
+    return IDLOperationReturningPromise<JSTestObj>::call<jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentBody, PromiseExecutionScope::WindowOrWorker>(*state, "testPromiseFunctionWithFloatArgument");
 }
 
 static inline JSC::EncodedJSValue jsTestObjPrototypeFunctionTestPromiseFunctionWithExceptionBody(JSC::ExecState* state, typename IDLOperationReturningPromise<JSTestObj>::ClassParameter castedThis, Ref<DeferredPromise>&& promise, JSC::ThrowScope& throwScope)
@@ -7707,7 +7833,7 @@ static inline JSC::EncodedJSValue jsTestObjPrototypeFunctionTestPromiseFunctionW
 
 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionTestPromiseFunctionWithException(ExecState* state)
 {
-    return IDLOperationReturningPromise<JSTestObj>::call<jsTestObjPrototypeFunctionTestPromiseFunctionWithExceptionBody, PromiseExecutionScope::WindowOnly>(*state, "testPromiseFunctionWithException");
+    return IDLOperationReturningPromise<JSTestObj>::call<jsTestObjPrototypeFunctionTestPromiseFunctionWithExceptionBody, PromiseExecutionScope::WindowOrWorker>(*state, "testPromiseFunctionWithException");
 }
 
 static inline JSC::EncodedJSValue jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgumentBody(JSC::ExecState* state, typename IDLOperationReturningPromise<JSTestObj>::ClassParameter castedThis, Ref<DeferredPromise>&& promise, JSC::ThrowScope& throwScope)
@@ -7723,7 +7849,7 @@ static inline JSC::EncodedJSValue jsTestObjPrototypeFunctionTestPromiseFunctionW
 
 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgument(ExecState* state)
 {
-    return IDLOperationReturningPromise<JSTestObj>::call<jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgumentBody, PromiseExecutionScope::WindowOnly>(*state, "testPromiseFunctionWithOptionalIntArgument");
+    return IDLOperationReturningPromise<JSTestObj>::call<jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgumentBody, PromiseExecutionScope::WindowOrWorker>(*state, "testPromiseFunctionWithOptionalIntArgument");
 }
 
 static inline JSC::EncodedJSValue jsTestObjPrototypeFunctionTestPromiseOverloadedFunction1Body(JSC::ExecState* state, typename IDLOperationReturningPromise<JSTestObj>::ClassParameter castedThis, Ref<DeferredPromise>&& promise, JSC::ThrowScope& throwScope)
@@ -7768,7 +7894,7 @@ static inline JSC::EncodedJSValue jsTestObjPrototypeFunctionTestPromiseOverloade
 
 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionTestPromiseOverloadedFunction(ExecState* state)
 {
-    return IDLOperationReturningPromise<JSTestObj>::call<jsTestObjPrototypeFunctionTestPromiseOverloadedFunctionOverloadDispatcher, PromiseExecutionScope::WindowOnly>(*state, "testPromiseOverloadedFunction");
+    return IDLOperationReturningPromise<JSTestObj>::call<jsTestObjPrototypeFunctionTestPromiseOverloadedFunctionOverloadDispatcher, PromiseExecutionScope::WindowOrWorker>(*state, "testPromiseOverloadedFunction");
 }
 
 static inline JSC::EncodedJSValue jsTestObjConstructorFunctionTestStaticPromiseFunctionBody(JSC::ExecState* state, Ref<DeferredPromise>&& promise, JSC::ThrowScope& throwScope)
@@ -7781,7 +7907,7 @@ static inline JSC::EncodedJSValue jsTestObjConstructorFunctionTestStaticPromiseF
 
 EncodedJSValue JSC_HOST_CALL jsTestObjConstructorFunctionTestStaticPromiseFunction(ExecState* state)
 {
-    return IDLOperationReturningPromise<JSTestObj>::callStatic<jsTestObjConstructorFunctionTestStaticPromiseFunctionBody, PromiseExecutionScope::WindowOnly>(*state, "testStaticPromiseFunction");
+    return IDLOperationReturningPromise<JSTestObj>::callStatic<jsTestObjConstructorFunctionTestStaticPromiseFunctionBody, PromiseExecutionScope::WindowOrWorker>(*state, "testStaticPromiseFunction");
 }
 
 static inline JSC::EncodedJSValue jsTestObjConstructorFunctionTestStaticPromiseFunctionWithExceptionBody(JSC::ExecState* state, Ref<DeferredPromise>&& promise, JSC::ThrowScope& throwScope)
@@ -7794,7 +7920,7 @@ static inline JSC::EncodedJSValue jsTestObjConstructorFunctionTestStaticPromiseF
 
 EncodedJSValue JSC_HOST_CALL jsTestObjConstructorFunctionTestStaticPromiseFunctionWithException(ExecState* state)
 {
-    return IDLOperationReturningPromise<JSTestObj>::callStatic<jsTestObjConstructorFunctionTestStaticPromiseFunctionWithExceptionBody, PromiseExecutionScope::WindowOnly>(*state, "testStaticPromiseFunctionWithException");
+    return IDLOperationReturningPromise<JSTestObj>::callStatic<jsTestObjConstructorFunctionTestStaticPromiseFunctionWithExceptionBody, PromiseExecutionScope::WindowOrWorker>(*state, "testStaticPromiseFunctionWithException");
 }
 
 static inline JSC::EncodedJSValue jsTestObjPrototypeFunctionTestCustomPromiseFunctionBody(JSC::ExecState* state, typename IDLOperationReturningPromise<JSTestObj>::ClassParameter castedThis, Ref<DeferredPromise>&& promise, JSC::ThrowScope& throwScope)
@@ -7806,7 +7932,7 @@ static inline JSC::EncodedJSValue jsTestObjPrototypeFunctionTestCustomPromiseFun
 
 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionTestCustomPromiseFunction(ExecState* state)
 {
-    return IDLOperationReturningPromise<JSTestObj>::call<jsTestObjPrototypeFunctionTestCustomPromiseFunctionBody, PromiseExecutionScope::WindowOnly>(*state, "testCustomPromiseFunction");
+    return IDLOperationReturningPromise<JSTestObj>::call<jsTestObjPrototypeFunctionTestCustomPromiseFunctionBody, PromiseExecutionScope::WindowOrWorker>(*state, "testCustomPromiseFunction");
 }
 
 static inline JSC::EncodedJSValue jsTestObjConstructorFunctionTestStaticCustomPromiseFunctionBody(JSC::ExecState* state, Ref<DeferredPromise>&& promise, JSC::ThrowScope& throwScope)
@@ -7818,7 +7944,7 @@ static inline JSC::EncodedJSValue jsTestObjConstructorFunctionTestStaticCustomPr
 
 EncodedJSValue JSC_HOST_CALL jsTestObjConstructorFunctionTestStaticCustomPromiseFunction(ExecState* state)
 {
-    return IDLOperationReturningPromise<JSTestObj>::callStatic<jsTestObjConstructorFunctionTestStaticCustomPromiseFunctionBody, PromiseExecutionScope::WindowOnly>(*state, "testStaticCustomPromiseFunction");
+    return IDLOperationReturningPromise<JSTestObj>::callStatic<jsTestObjConstructorFunctionTestStaticCustomPromiseFunctionBody, PromiseExecutionScope::WindowOrWorker>(*state, "testStaticCustomPromiseFunction");
 }
 
 static inline JSC::EncodedJSValue jsTestObjPrototypeFunctionTestCustomReturnsOwnPromiseFunctionBody(JSC::ExecState* state, typename IDLOperationReturningPromise<JSTestObj>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
@@ -8065,6 +8191,48 @@ EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionTestReturnValueOptimizati
     return IDLOperation<JSTestObj>::call<jsTestObjPrototypeFunctionTestReturnValueOptimizationWithExceptionBody>(*state, "testReturnValueOptimizationWithException");
 }
 
+static inline JSC::EncodedJSValue jsTestObjPrototypeFunctionConditionallyExposedToWindowFunctionBody(JSC::ExecState* state, typename IDLOperation<JSTestObj>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
+{
+    UNUSED_PARAM(state);
+    UNUSED_PARAM(throwScope);
+    auto& impl = castedThis->wrapped();
+    impl.conditionallyExposedToWindowFunction();
+    return JSValue::encode(jsUndefined());
+}
+
+EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionConditionallyExposedToWindowFunction(ExecState* state)
+{
+    return IDLOperation<JSTestObj>::call<jsTestObjPrototypeFunctionConditionallyExposedToWindowFunctionBody>(*state, "conditionallyExposedToWindowFunction");
+}
+
+static inline JSC::EncodedJSValue jsTestObjPrototypeFunctionConditionallyExposedToWorkerFunctionBody(JSC::ExecState* state, typename IDLOperation<JSTestObj>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
+{
+    UNUSED_PARAM(state);
+    UNUSED_PARAM(throwScope);
+    auto& impl = castedThis->wrapped();
+    impl.conditionallyExposedToWorkerFunction();
+    return JSValue::encode(jsUndefined());
+}
+
+EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionConditionallyExposedToWorkerFunction(ExecState* state)
+{
+    return IDLOperation<JSTestObj>::call<jsTestObjPrototypeFunctionConditionallyExposedToWorkerFunctionBody>(*state, "conditionallyExposedToWorkerFunction");
+}
+
+static inline JSC::EncodedJSValue jsTestObjPrototypeFunctionConditionallyExposedToWindowAndWorkerFunctionBody(JSC::ExecState* state, typename IDLOperation<JSTestObj>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
+{
+    UNUSED_PARAM(state);
+    UNUSED_PARAM(throwScope);
+    auto& impl = castedThis->wrapped();
+    impl.conditionallyExposedToWindowAndWorkerFunction();
+    return JSValue::encode(jsUndefined());
+}
+
+EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionConditionallyExposedToWindowAndWorkerFunction(ExecState* state)
+{
+    return IDLOperation<JSTestObj>::call<jsTestObjPrototypeFunctionConditionallyExposedToWindowAndWorkerFunctionBody>(*state, "conditionallyExposedToWindowAndWorkerFunction");
+}
+
 static inline JSC::EncodedJSValue jsTestObjPrototypeFunctionToStringBody(JSC::ExecState* state, typename IDLOperation<JSTestObj>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
 {
     UNUSED_PARAM(state);
index 0bdac98..c6b9b7c 100644 (file)
@@ -48,7 +48,8 @@ enum TestConfidence { "high", "kinda-low" };
 [
     ConstructorCallWith=Document,
     Constructor(TestCallbackInterface testCallback, TestCallbackFunction testCallbackFunction),
-    InterfaceName=TestObject
+    InterfaceName=TestObject,
+    Exposed=(Window,Worker)
 ] interface TestObj {
     // Attributes
     readonly attribute long            readOnlyLongAttr;
@@ -454,6 +455,13 @@ enum TestConfidence { "high", "kinda-low" };
 
     [ConditionallyReadWrite=CONDITION] attribute Node conditionallyReadWriteAttribute;
     [Conditional=CONDITION2, ConditionallyReadWrite=CONDITION] attribute Node conditionalAndConditionallyReadWriteAttribute;
+
+    [Exposed=Window] attribute long conditionallyExposedToWindowAttribute;
+    [Exposed=Worker] attribute long conditionallyExposedToWorkerAttribute;
+    [Exposed=(Worker, Window)] attribute long conditionallyExposedToWindowAndWorkerAttribute;
+    [Exposed=Window] void conditionallyExposedToWindowFunction();
+    [Exposed=Worker] void conditionallyExposedToWorkerFunction();
+    [Exposed=(Window, Worker)] void conditionallyExposedToWindowAndWorkerFunction();
 };
 
 // The following comment should not generate any code.
index 05c43ad..02a00d5 100644 (file)
 #include "config.h"
 #include "DOMMatrix.h"
 
+#include "ScriptExecutionContext.h"
 #include <cmath>
 #include <limits>
 
 namespace WebCore {
 
+// https://drafts.fxtf.org/geometry/#dom-dommatrixreadonly-dommatrixreadonly
+ExceptionOr<Ref<DOMMatrix>> DOMMatrix::create(ScriptExecutionContext& scriptExecutionContext, std::optional<Variant<String, Vector<double>>>&& init)
+{
+    if (!init)
+        return adoptRef(*new DOMMatrix);
+
+    return WTF::switchOn(init.value(),
+        [&scriptExecutionContext](const String& init) -> ExceptionOr<Ref<DOMMatrix>> {
+            if (!scriptExecutionContext.isDocument())
+                return Exception { TypeError };
+
+            auto parseResult = parseStringIntoAbstractMatrix(init);
+            if (parseResult.hasException())
+                return parseResult.releaseException();
+            
+            return adoptRef(*new DOMMatrix(parseResult.returnValue().matrix, parseResult.returnValue().is2D ? Is2D::Yes : Is2D::No));
+        },
+        [](const Vector<double>& init) -> ExceptionOr<Ref<DOMMatrix>> {
+            if (init.size() == 6) {
+                return adoptRef(*new DOMMatrix(TransformationMatrix {
+                    init[0], init[1], init[2], init[3], init[4], init[5]
+                }, Is2D::Yes));
+            }
+            if (init.size() == 16) {
+                return adoptRef(*new DOMMatrix(TransformationMatrix {
+                    init[0], init[1], init[2], init[3],
+                    init[4], init[5], init[6], init[7],
+                    init[8], init[9], init[10], init[11],
+                    init[12], init[13], init[14], init[15]
+                }, Is2D::No));
+            }
+            return Exception { TypeError };
+        }
+    );
+}
+
 DOMMatrix::DOMMatrix(const TransformationMatrix& matrix, Is2D is2D)
     : DOMMatrixReadOnly(matrix, is2D)
 {
index b7ad08a..ed2e11f 100644 (file)
 
 namespace WebCore {
 
+class ScriptExecutionContext;
+
 class DOMMatrix : public DOMMatrixReadOnly {
 public:
-    static ExceptionOr<Ref<DOMMatrix>> create(std::optional<Variant<String, Vector<double>>>&& init)
-    {
-        auto matrix = adoptRef(*new DOMMatrix);
-        if (!init)
-            return WTFMove(matrix);
-
-        ExceptionOr<void> result = WTF::switchOn(init.value(), [&matrix](const auto& init) {
-            return matrix->setMatrixValue(init);
-        });
-        if (result.hasException())
-            return result.releaseException();
-        return WTFMove(matrix);
-    }
+    static ExceptionOr<Ref<DOMMatrix>> create(ScriptExecutionContext&, std::optional<Variant<String, Vector<double>>>&&);
 
     static Ref<DOMMatrix> create(const TransformationMatrix& matrix, Is2D is2D)
     {
@@ -97,6 +87,7 @@ public:
     void setM42(double f) { m_matrix.setM42(f); }
     void setM43(double f);
     void setM44(double f);
+
 private:
     DOMMatrix() = default;
     DOMMatrix(const TransformationMatrix&, Is2D);
index b9cfdcc..17ef951 100644 (file)
  * THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-// FIXME: Should be exposed to workers as well.
 // FIXME: Should be [LegacyWindowAlias=(SVGMatrix, WebKitCSSMatrix)].
 [
     Constructor(optional (DOMString or sequence<unrestricted double>) init),
     ConstructorMayThrowException,
+    ConstructorCallWith=ScriptExecutionContext,
     ExportMacro=WEBCORE_EXPORT,
+    Exposed=(Window,Worker),
     ImplementationLacksVTable
  ] interface DOMMatrix : DOMMatrixReadOnly {
     [MayThrowException, NewObject] static DOMMatrix fromMatrix(optional DOMMatrixInit other);
@@ -89,5 +90,5 @@
     DOMMatrix skewYSelf(optional unrestricted double sy = 0); // Angle is in degrees.
     DOMMatrix invertSelf();
 
-    [MayThrowException, ImplementedAs=setMatrixValueForBindings] DOMMatrix setMatrixValue(DOMString transformList);
+    [Exposed=Window, MayThrowException, ImplementedAs=setMatrixValueForBindings] DOMMatrix setMatrixValue(DOMString transformList);
 };
index 5af5c8d..6acc84e 100644 (file)
@@ -30,6 +30,7 @@
 #include "CSSToLengthConversionData.h"
 #include "DOMMatrix.h"
 #include "DOMPoint.h"
+#include "ScriptExecutionContext.h"
 #include "StyleProperties.h"
 #include "TransformFunctions.h"
 #include <JavaScriptCore/GenericTypedArrayViewInlines.h>
 
 namespace WebCore {
 
+// https://drafts.fxtf.org/geometry/#dom-dommatrixreadonly-dommatrixreadonly
+ExceptionOr<Ref<DOMMatrixReadOnly>> DOMMatrixReadOnly::create(ScriptExecutionContext& scriptExecutionContext, std::optional<Variant<String, Vector<double>>>&& init)
+{
+    if (!init)
+        return adoptRef(*new DOMMatrixReadOnly);
+
+    return WTF::switchOn(init.value(),
+        [&scriptExecutionContext](const String& init) -> ExceptionOr<Ref<DOMMatrixReadOnly>> {
+            if (!scriptExecutionContext.isDocument())
+                return Exception { TypeError };
+
+            auto parseResult = parseStringIntoAbstractMatrix(init);
+            if (parseResult.hasException())
+                return parseResult.releaseException();
+            
+            return adoptRef(*new DOMMatrixReadOnly(parseResult.returnValue().matrix, parseResult.returnValue().is2D ? Is2D::Yes : Is2D::No));
+        },
+        [](const Vector<double>& init) -> ExceptionOr<Ref<DOMMatrixReadOnly>> {
+            if (init.size() == 6) {
+                return adoptRef(*new DOMMatrixReadOnly(TransformationMatrix {
+                    init[0], init[1], init[2], init[3], init[4], init[5]
+                }, Is2D::Yes));
+            }
+            if (init.size() == 16) {
+                return adoptRef(*new DOMMatrixReadOnly(TransformationMatrix {
+                    init[0], init[1], init[2], init[3],
+                    init[4], init[5], init[6], init[7],
+                    init[8], init[9], init[10], init[11],
+                    init[12], init[13], init[14], init[15]
+                }, Is2D::No));
+            }
+            return Exception { TypeError };
+        }
+    );
+}
+
 DOMMatrixReadOnly::DOMMatrixReadOnly(const TransformationMatrix& matrix, Is2D is2D)
     : m_matrix(matrix)
     , m_is2D(is2D == Is2D::Yes)
@@ -173,11 +210,10 @@ bool DOMMatrixReadOnly::isIdentity() const
     return m_matrix.isIdentity();
 }
 
-// https://drafts.fxtf.org/geometry/#dom-dommatrix-setmatrixvalue
-ExceptionOr<void> DOMMatrixReadOnly::setMatrixValue(const String& string)
+ExceptionOr<DOMMatrixReadOnly::AbstractMatrix> DOMMatrixReadOnly::parseStringIntoAbstractMatrix(const String& string)
 {
     if (string.isEmpty())
-        return { };
+        return AbstractMatrix { };
 
     auto styleDeclaration = MutableStyleProperties::create();
     if (CSSParser::parseValue(styleDeclaration, CSSPropertyTransform, string, true, HTMLStandardMode) == CSSParser::ParseResult::Error)
@@ -188,42 +224,33 @@ ExceptionOr<void> DOMMatrixReadOnly::setMatrixValue(const String& string)
 
     // Check for a "none" or empty transform. In these cases we can use the default identity matrix.
     if (!value || (is<CSSPrimitiveValue>(*value) && downcast<CSSPrimitiveValue>(*value).valueID() == CSSValueNone))
-        return { };
+        return AbstractMatrix { };
 
     TransformOperations operations;
     if (!transformsForValue(*value, CSSToLengthConversionData(), operations))
         return Exception { SyntaxError };
 
-    m_is2D = true;
-    // Convert transform operations to a TransformationMatrix. This can fail if a parameter has a percentage ('%').
-    TransformationMatrix matrix;
+    AbstractMatrix matrix;
     for (auto& operation : operations.operations()) {
-        if (operation->apply(matrix, IntSize(0, 0)))
+        if (operation->apply(matrix.matrix, { 0, 0 }))
             return Exception { SyntaxError };
         if (operation->is3DOperation())
-            m_is2D = false;
+            matrix.is2D = false;
     }
-    m_matrix = matrix;
-    return { };
+
+    return WTFMove(matrix);
 }
 
-ExceptionOr<void> DOMMatrixReadOnly::setMatrixValue(const Vector<double>& init)
+// https://drafts.fxtf.org/geometry/#dom-dommatrix-setmatrixvalue
+ExceptionOr<void> DOMMatrixReadOnly::setMatrixValue(const String& string)
 {
-    if (init.size() == 6) {
-        m_matrix = TransformationMatrix { init[0], init[1], init[2], init[3], init[4], init[5] };
-        return { };
-    }
-    if (init.size() == 16) {
-        m_matrix = TransformationMatrix {
-            init[0], init[1], init[2], init[3],
-            init[4], init[5], init[6], init[7],
-            init[8], init[9], init[10], init[11],
-            init[12], init[13], init[14], init[15]
-        };
-        m_is2D = false;
-        return { };
-    }
-    return Exception { TypeError };
+    auto parseResult = parseStringIntoAbstractMatrix(string);
+    if (parseResult.hasException())
+        return parseResult.releaseException();
+
+    m_is2D = parseResult.returnValue().is2D;
+    m_matrix = parseResult.returnValue().matrix;
+    return { };
 }
 
 Ref<DOMMatrix> DOMMatrixReadOnly::translate(double tx, double ty, double tz)
index 5531c7e..39dfc5e 100644 (file)
@@ -40,24 +40,13 @@ namespace WebCore {
 
 class DOMMatrix;
 class DOMPoint;
+class ScriptExecutionContext;
 struct DOMPointInit;
 
 class DOMMatrixReadOnly : public ScriptWrappable, public RefCounted<DOMMatrixReadOnly> {
     WTF_MAKE_FAST_ALLOCATED;
 public:
-    static ExceptionOr<Ref<DOMMatrixReadOnly>> create(std::optional<Variant<String, Vector<double>>>&& init)
-    {
-        auto matrix = adoptRef(*new DOMMatrixReadOnly);
-        if (!init)
-            return WTFMove(matrix);
-
-        ExceptionOr<void> result = WTF::switchOn(init.value(), [&matrix](const auto& init) {
-            return matrix->setMatrixValue(init);
-        });
-        if (result.hasException())
-            return result.releaseException();
-        return WTFMove(matrix);
-    }
+    static ExceptionOr<Ref<DOMMatrixReadOnly>> create(ScriptExecutionContext&, std::optional<Variant<String, Vector<double>>>&&);
 
     enum class Is2D { No, Yes };
     static Ref<DOMMatrixReadOnly> create(const TransformationMatrix& matrix, Is2D is2D)
@@ -135,6 +124,13 @@ protected:
     DOMMatrixReadOnly(const TransformationMatrix&, Is2D);
     DOMMatrixReadOnly(TransformationMatrix&&, Is2D);
 
+    struct AbstractMatrix {
+        TransformationMatrix matrix;
+        bool is2D { true };
+    };
+
+    static ExceptionOr<AbstractMatrix> parseStringIntoAbstractMatrix(const String&);
+
     Ref<DOMMatrix> cloneAsDOMMatrix() const;
 
     template <typename T>
index 4e23423..e07143c 100644 (file)
  * THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-// FIXME: Should be exposed to workers as well.
 [
     Constructor(optional (DOMString or sequence<unrestricted double>) init),
     ConstructorMayThrowException,
+    ConstructorCallWith=ScriptExecutionContext,
     ExportMacro=WEBCORE_EXPORT,
+    Exposed=(Window,Worker),
     ImplementationLacksVTable
 ] interface DOMMatrixReadOnly {
     [MayThrowException, NewObject] static DOMMatrixReadOnly fromMatrix(optional DOMMatrixInit other);
@@ -96,6 +97,6 @@
     [MayThrowException] Float32Array toFloat32Array();
     [MayThrowException] Float64Array toFloat64Array();
 
-    [MayThrowException] stringifier;
+    [Exposed=Window, MayThrowException] stringifier;
     serializer = { attribute };
 };