Changeset 216959 in webkit


Ignore:
Timestamp:
May 16, 2017 4:45:13 PM (7 years ago)
Author:
Chris Dumez
Message:

Implement DOMMatrix / DOMMatrixReadOnly
https://bugs.webkit.org/show_bug.cgi?id=110001

Reviewed by Sam Weinig and Simon Fraser.

LayoutTests/imported/w3c:

Rebaseline web-platform-tests now that more checks are passing.

  • web-platform-tests/css/geometry-1/DOMMatrix-001-expected.txt:

Most checks are now passing. The few remaining failures seem to be due to our
parsing of the input CSS string now matching the specification. This behavior
is not new to this patch as I re-used exactly the same logic as for
WebKitCSSMatrix's parsing of the input string.

  • web-platform-tests/css/geometry-1/DOMMatrix-002-expected.txt:
  • web-platform-tests/css/geometry-1/DOMMatrix-003-expected.txt:
  • web-platform-tests/css/geometry-1/DOMMatrix-a-f-alias-expected.txt:

All checks are now passing.

  • web-platform-tests/css/geometry-1/DOMMatrix-newobject-expected.txt:

Most checks are now passing. The remaining failures are due to DOMMatrixReadOnly's
transformPoint() / toFloat32Array() / toFloat64Array() not being implemented in
this patch. I think we can take care of those in a follow-up.

  • web-platform-tests/css/geometry-1/DOMPoint-002-expected.txt:

Fails differently now that we support DOMMatrix. The test goes further but still
fails because DOMPoint.matrixTransform() is not implemented.

  • web-platform-tests/css/geometry-1/WebKitCSSMatrix-expected.txt:

One more check is passing now that we implement DOMMatrix. The remaining failure is
due to WebKitCSSMatrix not being an alias to DOMMatrix yet. I'd rather do this in a
follow-up.

  • web-platform-tests/css/geometry-1/historical-expected.txt:

A lot of new passes.

  • web-platform-tests/css/geometry-1/structured-serialization-expected.txt:

The test fails differently now that we support DOMMatrix. The test still fails because
we do not support yet the structured serialization of DOMMatrix objects. It appears we
do not support this for other types in this spec either (e.g. DOMPoint). I filed:
https://bugs.webkit.org/show_bug.cgi?id=172191

  • web-platform-tests/css/geometry-1/DOMMatrix-stringifier-expected.txt: Added.
  • web-platform-tests/css/geometry-1/DOMMatrix-stringifier.html: Added.

Import new test from upstream. The WebKitCSSMatrix failures are due to our
WebKitCSSMatrix implementation not complying with the standard. As per the
standard, WebKitCSSMatrix is supposed to become an alias to DOMMatrix. If we
do this aliasing (in a follow-up), then those tests will start passing.

  • web-platform-tests/css/geometry-1/support/dommatrix-test-util.js: Added.

Add missing script that was missed by the importer when I initially imported the test
suite from upstream.

Source/WebCore:

Implement DOMMatrix / DOMMatrixReadOnly as per:

For now, these new types co-exist with WebKitCSSMatrix / SVGMatrix. However, in the future,
WebKitCSSMatrix / SVGMatrix are supposed to become aliases to DOMMatrix.

Most of it has been implemented. What remaining to be implemented is:

  • Make WebKitCSSMatrix / SVGMatrix aliases to DOMMatrix
  • DOMMatrix.fromFloat32Array() / fromFloat64Array()
  • DOMMatrixReadOnly.fromFloat32Array() / fromFloat64Array() / toFloat32Array() / toFloat64Array()
  • DOMMatrixReadOnly.transformPoint().

Tests: imported/w3c/web-platform-tests/css/geometry-1/*

  • CMakeLists.txt:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/scripts/CodeGeneratorJS.pm:
  • bindings/scripts/test/JS/JSTestObj.cpp:

Fix a bug in the bindings generator causing the generator code for
"Constructor(optional (DOMString or sequence<unrestricted double>) init)" to be wrong
and not build.

  • css/DOMMatrix.cpp: Added.

(WebCore::DOMMatrix::DOMMatrix):
(WebCore::DOMMatrix::fromMatrix):
(WebCore::DOMMatrix::multiplySelf):
(WebCore::DOMMatrix::preMultiplySelf):
(WebCore::DOMMatrix::translateSelf):
(WebCore::DOMMatrix::scaleSelf):
(WebCore::DOMMatrix::scale3dSelf):
(WebCore::DOMMatrix::rotateSelf):
(WebCore::DOMMatrix::rotateFromVectorSelf):
(WebCore::DOMMatrix::rotateAxisAngleSelf):
(WebCore::DOMMatrix::skewXSelf):
(WebCore::DOMMatrix::skewYSelf):
(WebCore::DOMMatrix::invertSelf):
(WebCore::DOMMatrix::setMatrixValueForBindings):

  • css/DOMMatrix.h: Added.

(WebCore::DOMMatrix::create):
(WebCore::DOMMatrix::setA):
(WebCore::DOMMatrix::setB):
(WebCore::DOMMatrix::setC):
(WebCore::DOMMatrix::setD):
(WebCore::DOMMatrix::setE):
(WebCore::DOMMatrix::setF):
(WebCore::DOMMatrix::setM11):
(WebCore::DOMMatrix::setM12):
(WebCore::DOMMatrix::setM13):
(WebCore::DOMMatrix::setM14):
(WebCore::DOMMatrix::setM21):
(WebCore::DOMMatrix::setM22):
(WebCore::DOMMatrix::setM23):
(WebCore::DOMMatrix::setM24):
(WebCore::DOMMatrix::setM31):
(WebCore::DOMMatrix::setM32):
(WebCore::DOMMatrix::setM33):
(WebCore::DOMMatrix::setM34):
(WebCore::DOMMatrix::setM41):
(WebCore::DOMMatrix::setM42):
(WebCore::DOMMatrix::setM43):
(WebCore::DOMMatrix::setM44):

  • css/DOMMatrix.idl: Added.
  • css/DOMMatrixInit.h: Added.
  • css/DOMMatrixInit.idl: Added.
  • css/DOMMatrixReadOnly.cpp: Added.

(WebCore::DOMMatrixReadOnly::DOMMatrixReadOnly):
(WebCore::DOMMatrixReadOnly::validateAndFixup):
(WebCore::DOMMatrixReadOnly::fromMatrix):
(WebCore::DOMMatrixReadOnly::isIdentity):
(WebCore::DOMMatrixReadOnly::setMatrixValue):
(WebCore::DOMMatrixReadOnly::translate):
(WebCore::DOMMatrixReadOnly::flipX):
(WebCore::DOMMatrixReadOnly::flipY):
(WebCore::DOMMatrixReadOnly::multiply):
(WebCore::DOMMatrixReadOnly::scale):
(WebCore::DOMMatrixReadOnly::scale3d):
(WebCore::DOMMatrixReadOnly::rotate):
(WebCore::DOMMatrixReadOnly::rotateFromVector):
(WebCore::DOMMatrixReadOnly::rotateAxisAngle):
(WebCore::DOMMatrixReadOnly::skewX):
(WebCore::DOMMatrixReadOnly::skewY):
(WebCore::DOMMatrixReadOnly::inverse):
(WebCore::DOMMatrixReadOnly::toString):

  • css/DOMMatrixReadOnly.h: Added.

(WebCore::DOMMatrixReadOnly::create):
(WebCore::DOMMatrixReadOnly::a):
(WebCore::DOMMatrixReadOnly::b):
(WebCore::DOMMatrixReadOnly::c):
(WebCore::DOMMatrixReadOnly::d):
(WebCore::DOMMatrixReadOnly::e):
(WebCore::DOMMatrixReadOnly::f):
(WebCore::DOMMatrixReadOnly::m11):
(WebCore::DOMMatrixReadOnly::m12):
(WebCore::DOMMatrixReadOnly::m13):
(WebCore::DOMMatrixReadOnly::m14):
(WebCore::DOMMatrixReadOnly::m21):
(WebCore::DOMMatrixReadOnly::m22):
(WebCore::DOMMatrixReadOnly::m23):
(WebCore::DOMMatrixReadOnly::m24):
(WebCore::DOMMatrixReadOnly::m31):
(WebCore::DOMMatrixReadOnly::m32):
(WebCore::DOMMatrixReadOnly::m33):
(WebCore::DOMMatrixReadOnly::m34):
(WebCore::DOMMatrixReadOnly::m41):
(WebCore::DOMMatrixReadOnly::m42):
(WebCore::DOMMatrixReadOnly::m43):
(WebCore::DOMMatrixReadOnly::m44):
(WebCore::DOMMatrixReadOnly::is2D):
(WebCore::DOMMatrixReadOnly::fromMatrixHelper):

  • css/DOMMatrixReadOnly.idl: Added.
  • css/WebKitCSSMatrix.h:
  • css/WebKitCSSMatrix.idl:
  • svg/SVGMatrix.h:
  • svg/SVGMatrix.idl:

LayoutTests:

Drop test I previously added now that a better version landed in web-platform-tests
and was re-imported in this patch.

  • fast/css/matrix-stringifier-expected.txt: Removed.
  • fast/css/matrix-stringifier.html: Removed.
Location:
trunk
Files:
13 added
2 deleted
24 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r216944 r216959  
     12017-05-16  Chris Dumez  <cdumez@apple.com>
     2
     3        Implement DOMMatrix / DOMMatrixReadOnly
     4        https://bugs.webkit.org/show_bug.cgi?id=110001
     5
     6        Reviewed by Sam Weinig and Simon Fraser.
     7
     8        Drop test I previously added now that a better version landed in web-platform-tests
     9        and was re-imported in this patch.
     10
     11        * fast/css/matrix-stringifier-expected.txt: Removed.
     12        * fast/css/matrix-stringifier.html: Removed.
     13
    1142017-05-16  Myles C. Maxfield  <mmaxfield@apple.com>
    215
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r216926 r216959  
     12017-05-16  Chris Dumez  <cdumez@apple.com>
     2
     3        Implement DOMMatrix / DOMMatrixReadOnly
     4        https://bugs.webkit.org/show_bug.cgi?id=110001
     5
     6        Reviewed by Sam Weinig and Simon Fraser.
     7
     8        Rebaseline web-platform-tests now that more checks are passing.
     9
     10        * web-platform-tests/css/geometry-1/DOMMatrix-001-expected.txt:
     11        Most checks are now passing. The few remaining failures seem to be due to our
     12        parsing of the input CSS string now matching the specification. This behavior
     13        is not new to this patch as I re-used exactly the same logic as for
     14        WebKitCSSMatrix's parsing of the input string.
     15
     16        * web-platform-tests/css/geometry-1/DOMMatrix-002-expected.txt:
     17        * web-platform-tests/css/geometry-1/DOMMatrix-003-expected.txt:
     18        * web-platform-tests/css/geometry-1/DOMMatrix-a-f-alias-expected.txt:
     19        All checks are now passing.
     20
     21        * web-platform-tests/css/geometry-1/DOMMatrix-newobject-expected.txt:
     22        Most checks are now passing. The remaining failures are due to DOMMatrixReadOnly's
     23        transformPoint() / toFloat32Array() / toFloat64Array() not being implemented in
     24        this patch. I think we can take care of those in a follow-up.
     25
     26        * web-platform-tests/css/geometry-1/DOMPoint-002-expected.txt:
     27        Fails differently now that we support DOMMatrix. The test goes further but still
     28        fails because DOMPoint.matrixTransform() is not implemented.
     29
     30        * web-platform-tests/css/geometry-1/WebKitCSSMatrix-expected.txt:
     31        One more check is passing now that we implement DOMMatrix. The remaining failure is
     32        due to WebKitCSSMatrix not being an alias to DOMMatrix yet. I'd rather do this in a
     33        follow-up.
     34
     35        * web-platform-tests/css/geometry-1/historical-expected.txt:
     36        A lot of new passes.
     37
     38        * web-platform-tests/css/geometry-1/structured-serialization-expected.txt:
     39        The test fails differently now that we support DOMMatrix. The test still fails because
     40        we do not support yet the structured serialization of DOMMatrix objects. It appears we
     41        do not support this for other types in this spec either (e.g. DOMPoint). I filed:
     42        https://bugs.webkit.org/show_bug.cgi?id=172191
     43
     44        * web-platform-tests/css/geometry-1/DOMMatrix-stringifier-expected.txt: Added.
     45        * web-platform-tests/css/geometry-1/DOMMatrix-stringifier.html: Added.
     46        Import new test from upstream. The WebKitCSSMatrix failures are due to our
     47        WebKitCSSMatrix implementation not complying with the standard. As per the
     48        standard, WebKitCSSMatrix is supposed to become an alias to DOMMatrix. If we
     49        do this aliasing (in a follow-up), then those tests will start passing.
     50
     51        * web-platform-tests/css/geometry-1/support/dommatrix-test-util.js: Added.
     52        Add missing script that was missed by the importer when I initially imported the test
     53        suite from upstream.
     54
    1552017-05-16  Romain Bellessort  <romain.bellessort@crf.canon.fr>
    256
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMMatrix-001-expected.txt

    r216878 r216959  
    11
    2 FAIL new DOMMatrix() Can't find variable: checkDOMMatrix
    3 FAIL new DOMMatrix(undefined) Can't find variable: checkDOMMatrix
    4 FAIL new DOMMatrix(new DOMMatrix()) Can't find variable: checkDOMMatrix
    5 FAIL new DOMMatrix("none") Can't find variable: checkDOMMatrix
    6 FAIL new DOMMatrix(" none") Can't find variable: checkDOMMatrix
    7 FAIL new DOMMatrix("none ") Can't find variable: checkDOMMatrix
    8 FAIL new DOMMatrix("NONE") Can't find variable: checkDOMMatrix
    9 FAIL new DOMMatrix("none/**/") Can't find variable: checkDOMMatrix
    10 FAIL new DOMMatrix("/**/none") Can't find variable: checkDOMMatrix
    11 FAIL new DOMMatrix("") Can't find variable: checkDOMMatrix
    12 FAIL new DOMMatrix(float32Array) 16 elements Can't find variable: checkDOMMatrix
    13 FAIL new DOMMatrix(float32Array) 6 elements Can't find variable: checkDOMMatrix
    14 FAIL new DOMMatrix(float64Array) 16 elements Can't find variable: checkDOMMatrix
    15 FAIL new DOMMatrix((float64Array) 6 elements Can't find variable: checkDOMMatrix
    16 FAIL new DOMMatrix(sequence) 16 elements Can't find variable: checkDOMMatrix
    17 FAIL new DOMMatrix(sequence) 6 elements Can't find variable: checkDOMMatrix
    18 FAIL new DOMMatrix("scale(2) translateX(5px) translateY(5px)") Can't find variable: checkDOMMatrix
    19 FAIL new DOMMatrix("scale(2 2) translateX(5) translateY(5)") Can't find variable: checkDOMMatrix
    20 FAIL new DOMMatrix("scale(2, 2), translateX(5)  ,translateY(5)") Can't find variable: checkDOMMatrix
    21 FAIL new DOMMatrix("translateX    (5px)") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    22 FAIL new DOMMatrix("scale(2)translateX(5px)") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    23 FAIL new DOMMatrix("translateX(5em)") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    24 FAIL new DOMMatrix("translateX(5ex)") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    25 FAIL new DOMMatrix("translateX(5ch)") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    26 FAIL new DOMMatrix("translateX(5rem)") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    27 FAIL new DOMMatrix("translateX(5vw)") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    28 FAIL new DOMMatrix("translateX(5vh)") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    29 FAIL new DOMMatrix("translateX(5vmin)") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    30 FAIL new DOMMatrix("translateX(5vmax)") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    31 FAIL new DOMMatrix("translateX(5%)") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    32 FAIL new DOMMatrix(" ") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    33 FAIL new DOMMatrix("/**/") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    34 FAIL new DOMMatrix("\0") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    35 FAIL new DOMMatrix(";") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    36 FAIL new DOMMatrix("none;") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    37 FAIL new DOMMatrix("null") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    38 FAIL new DOMMatrix(null) assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    39 FAIL new DOMMatrix("undefined") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    40 FAIL new DOMMatrix("inherit") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    41 FAIL new DOMMatrix("initial") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    42 FAIL new DOMMatrix("unset") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    43 FAIL new DOMMatrix(sequence) Can't find variable: checkDOMMatrix
    44 FAIL new DOMMatrix(matrix) undefined is not a constructor (evaluating 'new self[constr]')
    45 FAIL new DOMMatrix("scale(2, 2), translateX(5px) translateY(5px)") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
     2PASS new DOMMatrix()
     3PASS new DOMMatrix(undefined)
     4PASS new DOMMatrix(new DOMMatrix())
     5PASS new DOMMatrix("none")
     6PASS new DOMMatrix(" none")
     7PASS new DOMMatrix("none ")
     8PASS new DOMMatrix("NONE")
     9PASS new DOMMatrix("none/**/")
     10PASS new DOMMatrix("/**/none")
     11PASS new DOMMatrix("")
     12PASS new DOMMatrix(float32Array) 16 elements
     13PASS new DOMMatrix(float32Array) 6 elements
     14PASS new DOMMatrix(float64Array) 16 elements
     15PASS new DOMMatrix((float64Array) 6 elements
     16PASS new DOMMatrix(sequence) 16 elements
     17PASS new DOMMatrix(sequence) 6 elements
     18PASS new DOMMatrix("scale(2) translateX(5px) translateY(5px)")
     19FAIL new DOMMatrix("scale(2 2) translateX(5) translateY(5)") The string did not match the expected pattern.
     20FAIL new DOMMatrix("scale(2, 2), translateX(5)  ,translateY(5)") The string did not match the expected pattern.
     21PASS new DOMMatrix("translateX    (5px)")
     22FAIL new DOMMatrix("scale(2)translateX(5px)") assert_throws: function "function () { new self[constr](string); }" did not throw
     23PASS new DOMMatrix("translateX(5em)")
     24PASS new DOMMatrix("translateX(5ex)")
     25PASS new DOMMatrix("translateX(5ch)")
     26FAIL new DOMMatrix("translateX(5rem)") assert_throws: function "function () { new self[constr](string); }" did not throw
     27FAIL new DOMMatrix("translateX(5vw)") assert_throws: function "function () { new self[constr](string); }" did not throw
     28FAIL new DOMMatrix("translateX(5vh)") assert_throws: function "function () { new self[constr](string); }" did not throw
     29FAIL new DOMMatrix("translateX(5vmin)") assert_throws: function "function () { new self[constr](string); }" did not throw
     30FAIL new DOMMatrix("translateX(5vmax)") assert_throws: function "function () { new self[constr](string); }" did not throw
     31PASS new DOMMatrix("translateX(5%)")
     32PASS new DOMMatrix(" ")
     33PASS new DOMMatrix("/**/")
     34PASS new DOMMatrix("\0")
     35PASS new DOMMatrix(";")
     36PASS new DOMMatrix("none;")
     37PASS new DOMMatrix("null")
     38PASS new DOMMatrix(null)
     39PASS new DOMMatrix("undefined")
     40PASS new DOMMatrix("inherit")
     41PASS new DOMMatrix("initial")
     42PASS new DOMMatrix("unset")
     43PASS new DOMMatrix(sequence)
     44PASS new DOMMatrix(matrix)
     45PASS new DOMMatrix("scale(2, 2), translateX(5px) translateY(5px)")
    4646PASS new DOMMatrix(sequence) 17 elements
    4747PASS new DOMMatrix(sequence) 15 elements
    4848PASS new DOMMatrix(sequence) 5 elements
    4949PASS new DOMMatrix(sequence) 0 elements
    50 FAIL new DOMMatrixReadOnly() Can't find variable: checkDOMMatrix
    51 FAIL new DOMMatrixReadOnly(undefined) Can't find variable: checkDOMMatrix
    52 FAIL new DOMMatrixReadOnly(new DOMMatrixReadOnly()) Can't find variable: checkDOMMatrix
    53 FAIL new DOMMatrixReadOnly("none") Can't find variable: checkDOMMatrix
    54 FAIL new DOMMatrixReadOnly(" none") Can't find variable: checkDOMMatrix
    55 FAIL new DOMMatrixReadOnly("none ") Can't find variable: checkDOMMatrix
    56 FAIL new DOMMatrixReadOnly("NONE") Can't find variable: checkDOMMatrix
    57 FAIL new DOMMatrixReadOnly("none/**/") Can't find variable: checkDOMMatrix
    58 FAIL new DOMMatrixReadOnly("/**/none") Can't find variable: checkDOMMatrix
    59 FAIL new DOMMatrixReadOnly("") Can't find variable: checkDOMMatrix
    60 FAIL new DOMMatrixReadOnly(float32Array) 16 elements Can't find variable: checkDOMMatrix
    61 FAIL new DOMMatrixReadOnly(float32Array) 6 elements Can't find variable: checkDOMMatrix
    62 FAIL new DOMMatrixReadOnly(float64Array) 16 elements Can't find variable: checkDOMMatrix
    63 FAIL new DOMMatrixReadOnly((float64Array) 6 elements Can't find variable: checkDOMMatrix
    64 FAIL new DOMMatrixReadOnly(sequence) 16 elements Can't find variable: checkDOMMatrix
    65 FAIL new DOMMatrixReadOnly(sequence) 6 elements Can't find variable: checkDOMMatrix
    66 FAIL new DOMMatrixReadOnly("scale(2) translateX(5px) translateY(5px)") Can't find variable: checkDOMMatrix
    67 FAIL new DOMMatrixReadOnly("scale(2 2) translateX(5) translateY(5)") Can't find variable: checkDOMMatrix
    68 FAIL new DOMMatrixReadOnly("scale(2, 2), translateX(5)  ,translateY(5)") Can't find variable: checkDOMMatrix
    69 FAIL new DOMMatrixReadOnly("translateX    (5px)") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    70 FAIL new DOMMatrixReadOnly("scale(2)translateX(5px)") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    71 FAIL new DOMMatrixReadOnly("translateX(5em)") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    72 FAIL new DOMMatrixReadOnly("translateX(5ex)") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    73 FAIL new DOMMatrixReadOnly("translateX(5ch)") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    74 FAIL new DOMMatrixReadOnly("translateX(5rem)") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    75 FAIL new DOMMatrixReadOnly("translateX(5vw)") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    76 FAIL new DOMMatrixReadOnly("translateX(5vh)") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    77 FAIL new DOMMatrixReadOnly("translateX(5vmin)") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    78 FAIL new DOMMatrixReadOnly("translateX(5vmax)") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    79 FAIL new DOMMatrixReadOnly("translateX(5%)") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    80 FAIL new DOMMatrixReadOnly(" ") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    81 FAIL new DOMMatrixReadOnly("/**/") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    82 FAIL new DOMMatrixReadOnly("\0") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    83 FAIL new DOMMatrixReadOnly(";") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    84 FAIL new DOMMatrixReadOnly("none;") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    85 FAIL new DOMMatrixReadOnly("null") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    86 FAIL new DOMMatrixReadOnly(null) assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    87 FAIL new DOMMatrixReadOnly("undefined") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    88 FAIL new DOMMatrixReadOnly("inherit") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    89 FAIL new DOMMatrixReadOnly("initial") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    90 FAIL new DOMMatrixReadOnly("unset") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
    91 FAIL new DOMMatrixReadOnly(sequence) Can't find variable: checkDOMMatrix
    92 FAIL new DOMMatrixReadOnly(matrix) undefined is not a constructor (evaluating 'new self[constr]')
    93 FAIL new DOMMatrixReadOnly("scale(2, 2), translateX(5px) translateY(5px)") assert_throws: function "function () { new self[constr](string); }" threw object "TypeError: undefined is not a constructor (evaluating 'new self[constr](string)')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
     50PASS new DOMMatrixReadOnly()
     51PASS new DOMMatrixReadOnly(undefined)
     52PASS new DOMMatrixReadOnly(new DOMMatrixReadOnly())
     53PASS new DOMMatrixReadOnly("none")
     54PASS new DOMMatrixReadOnly(" none")
     55PASS new DOMMatrixReadOnly("none ")
     56PASS new DOMMatrixReadOnly("NONE")
     57PASS new DOMMatrixReadOnly("none/**/")
     58PASS new DOMMatrixReadOnly("/**/none")
     59PASS new DOMMatrixReadOnly("")
     60PASS new DOMMatrixReadOnly(float32Array) 16 elements
     61PASS new DOMMatrixReadOnly(float32Array) 6 elements
     62PASS new DOMMatrixReadOnly(float64Array) 16 elements
     63PASS new DOMMatrixReadOnly((float64Array) 6 elements
     64PASS new DOMMatrixReadOnly(sequence) 16 elements
     65PASS new DOMMatrixReadOnly(sequence) 6 elements
     66PASS new DOMMatrixReadOnly("scale(2) translateX(5px) translateY(5px)")
     67FAIL new DOMMatrixReadOnly("scale(2 2) translateX(5) translateY(5)") The string did not match the expected pattern.
     68FAIL new DOMMatrixReadOnly("scale(2, 2), translateX(5)  ,translateY(5)") The string did not match the expected pattern.
     69PASS new DOMMatrixReadOnly("translateX    (5px)")
     70FAIL new DOMMatrixReadOnly("scale(2)translateX(5px)") assert_throws: function "function () { new self[constr](string); }" did not throw
     71PASS new DOMMatrixReadOnly("translateX(5em)")
     72PASS new DOMMatrixReadOnly("translateX(5ex)")
     73PASS new DOMMatrixReadOnly("translateX(5ch)")
     74FAIL new DOMMatrixReadOnly("translateX(5rem)") assert_throws: function "function () { new self[constr](string); }" did not throw
     75FAIL new DOMMatrixReadOnly("translateX(5vw)") assert_throws: function "function () { new self[constr](string); }" did not throw
     76FAIL new DOMMatrixReadOnly("translateX(5vh)") assert_throws: function "function () { new self[constr](string); }" did not throw
     77FAIL new DOMMatrixReadOnly("translateX(5vmin)") assert_throws: function "function () { new self[constr](string); }" did not throw
     78FAIL new DOMMatrixReadOnly("translateX(5vmax)") assert_throws: function "function () { new self[constr](string); }" did not throw
     79PASS new DOMMatrixReadOnly("translateX(5%)")
     80PASS new DOMMatrixReadOnly(" ")
     81PASS new DOMMatrixReadOnly("/**/")
     82PASS new DOMMatrixReadOnly("\0")
     83PASS new DOMMatrixReadOnly(";")
     84PASS new DOMMatrixReadOnly("none;")
     85PASS new DOMMatrixReadOnly("null")
     86PASS new DOMMatrixReadOnly(null)
     87PASS new DOMMatrixReadOnly("undefined")
     88PASS new DOMMatrixReadOnly("inherit")
     89PASS new DOMMatrixReadOnly("initial")
     90PASS new DOMMatrixReadOnly("unset")
     91PASS new DOMMatrixReadOnly(sequence)
     92PASS new DOMMatrixReadOnly(matrix)
     93PASS new DOMMatrixReadOnly("scale(2, 2), translateX(5px) translateY(5px)")
    9494PASS new DOMMatrixReadOnly(sequence) 17 elements
    9595PASS new DOMMatrixReadOnly(sequence) 15 elements
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMMatrix-002-expected.txt

    r216878 r216959  
    22
    33
    4 FAIL test translate() doesn't mutate Can't find variable: DOMMatrixReadOnly
    5 FAIL test scale() doesn't mutate Can't find variable: DOMMatrixReadOnly
    6 FAIL test scale3d() doesn't mutate Can't find variable: DOMMatrixReadOnly
    7 FAIL test rotate() doesn't mutate Can't find variable: DOMMatrixReadOnly
    8 FAIL test rotateFromVector() doesn't mutate Can't find variable: DOMMatrixReadOnly
    9 FAIL test rotateAxisAngle() doesn't mutate Can't find variable: DOMMatrixReadOnly
    10 FAIL test skewX() doesn't mutate Can't find variable: DOMMatrixReadOnly
    11 FAIL test skewY() doesn't mutate Can't find variable: DOMMatrixReadOnly
    12 FAIL test multiply() doesn't mutate Can't find variable: DOMMatrixReadOnly
    13 FAIL test flipX() doesn't mutate Can't find variable: DOMMatrixReadOnly
    14 FAIL test flipY() doesn't mutate Can't find variable: DOMMatrixReadOnly
    15 FAIL test inverse() doesn't mutate Can't find variable: DOMMatrixReadOnly
     4PASS test translate() doesn't mutate
     5PASS test scale() doesn't mutate
     6PASS test scale3d() doesn't mutate
     7PASS test rotate() doesn't mutate
     8PASS test rotateFromVector() doesn't mutate
     9PASS test rotateAxisAngle() doesn't mutate
     10PASS test skewX() doesn't mutate
     11PASS test skewY() doesn't mutate
     12PASS test multiply() doesn't mutate
     13PASS test flipX() doesn't mutate
     14PASS test flipY() doesn't mutate
     15PASS test inverse() doesn't mutate
    1616
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMMatrix-003-expected.txt

    r216878 r216959  
    22
    33
    4 FAIL test translate() Can't find variable: DOMMatrixReadOnly
    5 FAIL test scale() without offsets Can't find variable: DOMMatrixReadOnly
    6 FAIL test scale() with offsets Can't find variable: DOMMatrixReadOnly
    7 FAIL test scale3d() Can't find variable: DOMMatrixReadOnly
    8 FAIL test rotate() 2d Can't find variable: DOMMatrixReadOnly
    9 FAIL test rotate() Can't find variable: DOMMatrixReadOnly
    10 FAIL test rotateFromVector() Can't find variable: DOMMatrixReadOnly
    11 FAIL test rotateAxisAngle()  Can't find variable: DOMMatrixReadOnly
    12 FAIL test skewX() Can't find variable: DOMMatrixReadOnly
    13 FAIL test skewY() Can't find variable: DOMMatrixReadOnly
    14 FAIL test multiply with inverse is identity Can't find variable: DOMMatrixReadOnly
    15 FAIL test flipX() Can't find variable: DOMMatrixReadOnly
    16 FAIL test flipY() Can't find variable: DOMMatrixReadOnly
     4PASS test translate()
     5PASS test scale() without offsets
     6PASS test scale() with offsets
     7PASS test scale3d()
     8PASS test rotate() 2d
     9PASS test rotate()
     10PASS test rotateFromVector()
     11PASS test rotateAxisAngle() 
     12PASS test skewX()
     13PASS test skewY()
     14PASS test multiply with inverse is identity
     15PASS test flipX()
     16PASS test flipY()
    1717
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMMatrix-a-f-alias-expected.txt

    r216878 r216959  
    11
    2 FAIL DOMMatrix getting a with throwing getter for m11 undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    3 FAIL DOMMatrix getting m11 with throwing getter for a undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    4 FAIL DOMMatrix setting a with throwing setter for m11 undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    5 FAIL DOMMatrix setting m11 with throwing setter for a undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    6 FAIL DOMMatrix getting b with throwing getter for m12 undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    7 FAIL DOMMatrix getting m12 with throwing getter for b undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    8 FAIL DOMMatrix setting b with throwing setter for m12 undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    9 FAIL DOMMatrix setting m12 with throwing setter for b undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    10 FAIL DOMMatrix getting c with throwing getter for m21 undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    11 FAIL DOMMatrix getting m21 with throwing getter for c undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    12 FAIL DOMMatrix setting c with throwing setter for m21 undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    13 FAIL DOMMatrix setting m21 with throwing setter for c undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    14 FAIL DOMMatrix getting d with throwing getter for m22 undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    15 FAIL DOMMatrix getting m22 with throwing getter for d undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    16 FAIL DOMMatrix setting d with throwing setter for m22 undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    17 FAIL DOMMatrix setting m22 with throwing setter for d undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    18 FAIL DOMMatrix getting e with throwing getter for m41 undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    19 FAIL DOMMatrix getting m41 with throwing getter for e undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    20 FAIL DOMMatrix setting e with throwing setter for m41 undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    21 FAIL DOMMatrix setting m41 with throwing setter for e undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    22 FAIL DOMMatrix getting f with throwing getter for m42 undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    23 FAIL DOMMatrix getting m42 with throwing getter for f undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    24 FAIL DOMMatrix setting f with throwing setter for m42 undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    25 FAIL DOMMatrix setting m42 with throwing setter for f undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    26 FAIL DOMMatrixReadOnly getting a with throwing getter for m11 undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    27 FAIL DOMMatrixReadOnly getting m11 with throwing getter for a undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    28 FAIL DOMMatrixReadOnly getting b with throwing getter for m12 undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    29 FAIL DOMMatrixReadOnly getting m12 with throwing getter for b undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    30 FAIL DOMMatrixReadOnly getting c with throwing getter for m21 undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    31 FAIL DOMMatrixReadOnly getting m21 with throwing getter for c undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    32 FAIL DOMMatrixReadOnly getting d with throwing getter for m22 undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    33 FAIL DOMMatrixReadOnly getting m22 with throwing getter for d undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    34 FAIL DOMMatrixReadOnly getting e with throwing getter for m41 undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    35 FAIL DOMMatrixReadOnly getting m41 with throwing getter for e undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    36 FAIL DOMMatrixReadOnly getting f with throwing getter for m42 undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
    37 FAIL DOMMatrixReadOnly getting m42 with throwing getter for f undefined is not a constructor (evaluating 'new self[constr]([0, 0, 0, 0, 0, 0])')
     2PASS DOMMatrix getting a with throwing getter for m11
     3PASS DOMMatrix getting m11 with throwing getter for a
     4PASS DOMMatrix setting a with throwing setter for m11
     5PASS DOMMatrix setting m11 with throwing setter for a
     6PASS DOMMatrix getting b with throwing getter for m12
     7PASS DOMMatrix getting m12 with throwing getter for b
     8PASS DOMMatrix setting b with throwing setter for m12
     9PASS DOMMatrix setting m12 with throwing setter for b
     10PASS DOMMatrix getting c with throwing getter for m21
     11PASS DOMMatrix getting m21 with throwing getter for c
     12PASS DOMMatrix setting c with throwing setter for m21
     13PASS DOMMatrix setting m21 with throwing setter for c
     14PASS DOMMatrix getting d with throwing getter for m22
     15PASS DOMMatrix getting m22 with throwing getter for d
     16PASS DOMMatrix setting d with throwing setter for m22
     17PASS DOMMatrix setting m22 with throwing setter for d
     18PASS DOMMatrix getting e with throwing getter for m41
     19PASS DOMMatrix getting m41 with throwing getter for e
     20PASS DOMMatrix setting e with throwing setter for m41
     21PASS DOMMatrix setting m41 with throwing setter for e
     22PASS DOMMatrix getting f with throwing getter for m42
     23PASS DOMMatrix getting m42 with throwing getter for f
     24PASS DOMMatrix setting f with throwing setter for m42
     25PASS DOMMatrix setting m42 with throwing setter for f
     26PASS DOMMatrixReadOnly getting a with throwing getter for m11
     27PASS DOMMatrixReadOnly getting m11 with throwing getter for a
     28PASS DOMMatrixReadOnly getting b with throwing getter for m12
     29PASS DOMMatrixReadOnly getting m12 with throwing getter for b
     30PASS DOMMatrixReadOnly getting c with throwing getter for m21
     31PASS DOMMatrixReadOnly getting m21 with throwing getter for c
     32PASS DOMMatrixReadOnly getting d with throwing getter for m22
     33PASS DOMMatrixReadOnly getting m22 with throwing getter for d
     34PASS DOMMatrixReadOnly getting e with throwing getter for m41
     35PASS DOMMatrixReadOnly getting m41 with throwing getter for e
     36PASS DOMMatrixReadOnly getting f with throwing getter for m42
     37PASS DOMMatrixReadOnly getting m42 with throwing getter for f
    3838
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMMatrix-newobject-expected.txt

    r216878 r216959  
    11
    2 FAIL DOMMatrix translate undefined is not a constructor (evaluating 'new self[constr]()')
    3 FAIL DOMMatrix scale undefined is not a constructor (evaluating 'new self[constr]()')
    4 FAIL DOMMatrix scale3d undefined is not a constructor (evaluating 'new self[constr]()')
    5 FAIL DOMMatrix rotate undefined is not a constructor (evaluating 'new self[constr]()')
    6 FAIL DOMMatrix rotateFromVector undefined is not a constructor (evaluating 'new self[constr]()')
    7 FAIL DOMMatrix rotateAxisAngle undefined is not a constructor (evaluating 'new self[constr]()')
    8 FAIL DOMMatrix skewX undefined is not a constructor (evaluating 'new self[constr]()')
    9 FAIL DOMMatrix skewY undefined is not a constructor (evaluating 'new self[constr]()')
    10 FAIL DOMMatrix multiply undefined is not a constructor (evaluating 'new self[constr]()')
    11 FAIL DOMMatrix flipX undefined is not a constructor (evaluating 'new self[constr]()')
    12 FAIL DOMMatrix flipY undefined is not a constructor (evaluating 'new self[constr]()')
    13 FAIL DOMMatrix inverse undefined is not a constructor (evaluating 'new self[constr]()')
    14 FAIL DOMMatrix transformPoint undefined is not a constructor (evaluating 'new self[constr]()')
    15 FAIL DOMMatrix toFloat32Array undefined is not a constructor (evaluating 'new self[constr]()')
    16 FAIL DOMMatrix toFloat64Array undefined is not a constructor (evaluating 'new self[constr]()')
    17 FAIL DOMMatrixReadOnly translate undefined is not a constructor (evaluating 'new self[constr]()')
    18 FAIL DOMMatrixReadOnly scale undefined is not a constructor (evaluating 'new self[constr]()')
    19 FAIL DOMMatrixReadOnly scale3d undefined is not a constructor (evaluating 'new self[constr]()')
    20 FAIL DOMMatrixReadOnly rotate undefined is not a constructor (evaluating 'new self[constr]()')
    21 FAIL DOMMatrixReadOnly rotateFromVector undefined is not a constructor (evaluating 'new self[constr]()')
    22 FAIL DOMMatrixReadOnly rotateAxisAngle undefined is not a constructor (evaluating 'new self[constr]()')
    23 FAIL DOMMatrixReadOnly skewX undefined is not a constructor (evaluating 'new self[constr]()')
    24 FAIL DOMMatrixReadOnly skewY undefined is not a constructor (evaluating 'new self[constr]()')
    25 FAIL DOMMatrixReadOnly multiply undefined is not a constructor (evaluating 'new self[constr]()')
    26 FAIL DOMMatrixReadOnly flipX undefined is not a constructor (evaluating 'new self[constr]()')
    27 FAIL DOMMatrixReadOnly flipY undefined is not a constructor (evaluating 'new self[constr]()')
    28 FAIL DOMMatrixReadOnly inverse undefined is not a constructor (evaluating 'new self[constr]()')
    29 FAIL DOMMatrixReadOnly transformPoint undefined is not a constructor (evaluating 'new self[constr]()')
    30 FAIL DOMMatrixReadOnly toFloat32Array undefined is not a constructor (evaluating 'new self[constr]()')
    31 FAIL DOMMatrixReadOnly toFloat64Array undefined is not a constructor (evaluating 'new self[constr]()')
     2PASS DOMMatrix translate
     3PASS DOMMatrix scale
     4PASS DOMMatrix scale3d
     5PASS DOMMatrix rotate
     6PASS DOMMatrix rotateFromVector
     7PASS DOMMatrix rotateAxisAngle
     8PASS DOMMatrix skewX
     9PASS DOMMatrix skewY
     10PASS DOMMatrix multiply
     11PASS DOMMatrix flipX
     12PASS DOMMatrix flipY
     13PASS DOMMatrix inverse
     14FAIL DOMMatrix transformPoint matrix[method] is not a function. (In 'matrix[method]()', 'matrix[method]' is undefined)
     15FAIL DOMMatrix toFloat32Array matrix[method] is not a function. (In 'matrix[method]()', 'matrix[method]' is undefined)
     16FAIL DOMMatrix toFloat64Array matrix[method] is not a function. (In 'matrix[method]()', 'matrix[method]' is undefined)
     17PASS DOMMatrixReadOnly translate
     18PASS DOMMatrixReadOnly scale
     19PASS DOMMatrixReadOnly scale3d
     20PASS DOMMatrixReadOnly rotate
     21PASS DOMMatrixReadOnly rotateFromVector
     22PASS DOMMatrixReadOnly rotateAxisAngle
     23PASS DOMMatrixReadOnly skewX
     24PASS DOMMatrixReadOnly skewY
     25PASS DOMMatrixReadOnly multiply
     26PASS DOMMatrixReadOnly flipX
     27PASS DOMMatrixReadOnly flipY
     28PASS DOMMatrixReadOnly inverse
     29FAIL DOMMatrixReadOnly transformPoint matrix[method] is not a function. (In 'matrix[method]()', 'matrix[method]' is undefined)
     30FAIL DOMMatrixReadOnly toFloat32Array matrix[method] is not a function. (In 'matrix[method]()', 'matrix[method]' is undefined)
     31FAIL DOMMatrixReadOnly toFloat64Array matrix[method] is not a function. (In 'matrix[method]()', 'matrix[method]' is undefined)
    3232
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMPoint-002-expected.txt

    r216878 r216959  
    1919PASS test DOMPoint fromPoint with x, z
    2020PASS test DOMPoint fromPoint with undefined value
    21 FAIL test DOMPoint matrixTransform Can't find variable: DOMMatrix
     21FAIL test DOMPoint matrixTransform point.matrixTransform is not a function. (In 'point.matrixTransform(matrix)', 'point.matrixTransform' is undefined)
    2222PASS test DOMPoint Attributes undefined
    2323PASS test DOMPoint Attributes NaN Infinity
     
    3939PASS test DOMPointReadOnly fromPoint with x, z
    4040PASS test DOMPointReadOnly fromPoint with undefined value
    41 FAIL test DOMPointReadOnly matrixTransform Can't find variable: DOMMatrix
     41FAIL test DOMPointReadOnly matrixTransform point.matrixTransform is not a function. (In 'point.matrixTransform(matrix)', 'point.matrixTransform' is undefined)
    4242PASS test DOMPointReadOnly Attributes undefined
    4343
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/WebKitCSSMatrix-expected.txt

    r216878 r216959  
    11
    2 FAIL Equivalence test assert_true: DOMMatrix should exist expected true got false
     2FAIL Equivalence test assert_equals: interface object expected function "function DOMMatrix() {
     3    [native code]
     4}" but got function "function WebKitCSSMatrix() {
     5    [native code]
     6}"
    37PASS Property descriptor for WebKitCSSMatrix
    4 FAIL Property descriptor for DOMMatrix undefined is not an object (evaluating 'desc.value')
     8PASS Property descriptor for DOMMatrix
    59
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/historical-expected.txt

    r216878 r216959  
    11
    2 FAIL DOMMatrixReadOnly scaleNonUniform must be nuked assert_true: DOMMatrixReadOnly should exist expected true got false
    3 FAIL DOMMatrix scaleNonUniformSelf must be nuked assert_true: DOMMatrix should exist expected true got false
    4 FAIL DOMMatrix multiplyBy must be nuked assert_true: DOMMatrix should exist expected true got false
    5 FAIL DOMMatrix preMultiplyBy must be nuked assert_true: DOMMatrix should exist expected true got false
    6 FAIL DOMMatrix translateBy must be nuked assert_true: DOMMatrix should exist expected true got false
    7 FAIL DOMMatrix scaleBy must be nuked assert_true: DOMMatrix should exist expected true got false
    8 FAIL DOMMatrix scale3dBy must be nuked assert_true: DOMMatrix should exist expected true got false
    9 FAIL DOMMatrix scaleNonUniformBy must be nuked assert_true: DOMMatrix should exist expected true got false
    10 FAIL DOMMatrix rotateBy must be nuked assert_true: DOMMatrix should exist expected true got false
    11 FAIL DOMMatrix rotateFromVectorBy must be nuked assert_true: DOMMatrix should exist expected true got false
    12 FAIL DOMMatrix rotateAxisAngleBy must be nuked assert_true: DOMMatrix should exist expected true got false
    13 FAIL DOMMatrix skewXBy must be nuked assert_true: DOMMatrix should exist expected true got false
    14 FAIL DOMMatrix skewYBy must be nuked assert_true: DOMMatrix should exist expected true got false
    15 FAIL DOMMatrix fromString static member must be nuked assert_true: DOMMatrix should exist expected true got false
    16 FAIL DOMMatrixReadOnly fromString static member must be nuked assert_true: DOMMatrixReadOnly should exist expected true got false
    17 FAIL DOMMatrixReadOnly scale number of required arguments undefined is not an object (evaluating 'self[interf].prototype')
    18 FAIL DOMMatrix scaleSelf number of required arguments undefined is not an object (evaluating 'self[interf].prototype')
    19 FAIL DOMMatrixReadOnly translate number of required arguments undefined is not an object (evaluating 'self[interf].prototype')
    20 FAIL DOMMatrixReadOnly scale3d number of required arguments undefined is not an object (evaluating 'self[interf].prototype')
    21 FAIL DOMMatrixReadOnly rotateFromVector number of required arguments undefined is not an object (evaluating 'self[interf].prototype')
    22 FAIL DOMMatrixReadOnly rotateAxisAngle number of required arguments undefined is not an object (evaluating 'self[interf].prototype')
    23 FAIL DOMMatrixReadOnly skewX number of required arguments undefined is not an object (evaluating 'self[interf].prototype')
    24 FAIL DOMMatrixReadOnly skewY number of required arguments undefined is not an object (evaluating 'self[interf].prototype')
    25 FAIL DOMMatrix translateSelf number of required arguments undefined is not an object (evaluating 'self[interf].prototype')
    26 FAIL DOMMatrix scale3dSelf number of required arguments undefined is not an object (evaluating 'self[interf].prototype')
    27 FAIL DOMMatrix rotateFromVectorSelf number of required arguments undefined is not an object (evaluating 'self[interf].prototype')
    28 FAIL DOMMatrix rotateAxisAngleSelf number of required arguments undefined is not an object (evaluating 'self[interf].prototype')
    29 FAIL DOMMatrix skewXSelf number of required arguments undefined is not an object (evaluating 'self[interf].prototype')
    30 FAIL DOMMatrix skewYSelf number of required arguments undefined is not an object (evaluating 'self[interf].prototype')
     2PASS DOMMatrixReadOnly scaleNonUniform must be nuked
     3PASS DOMMatrix scaleNonUniformSelf must be nuked
     4PASS DOMMatrix multiplyBy must be nuked
     5PASS DOMMatrix preMultiplyBy must be nuked
     6PASS DOMMatrix translateBy must be nuked
     7PASS DOMMatrix scaleBy must be nuked
     8PASS DOMMatrix scale3dBy must be nuked
     9PASS DOMMatrix scaleNonUniformBy must be nuked
     10PASS DOMMatrix rotateBy must be nuked
     11PASS DOMMatrix rotateFromVectorBy must be nuked
     12PASS DOMMatrix rotateAxisAngleBy must be nuked
     13PASS DOMMatrix skewXBy must be nuked
     14PASS DOMMatrix skewYBy must be nuked
     15PASS DOMMatrix fromString static member must be nuked
     16PASS DOMMatrixReadOnly fromString static member must be nuked
     17PASS DOMMatrixReadOnly scale number of required arguments
     18PASS DOMMatrix scaleSelf number of required arguments
     19PASS DOMMatrixReadOnly translate number of required arguments
     20PASS DOMMatrixReadOnly scale3d number of required arguments
     21PASS DOMMatrixReadOnly rotateFromVector number of required arguments
     22PASS DOMMatrixReadOnly rotateAxisAngle number of required arguments
     23PASS DOMMatrixReadOnly skewX number of required arguments
     24PASS DOMMatrixReadOnly skewY number of required arguments
     25PASS DOMMatrix translateSelf number of required arguments
     26PASS DOMMatrix scale3dSelf number of required arguments
     27PASS DOMMatrix rotateFromVectorSelf number of required arguments
     28PASS DOMMatrix rotateAxisAngleSelf number of required arguments
     29PASS DOMMatrix skewXSelf number of required arguments
     30PASS DOMMatrix skewYSelf number of required arguments
    3131FAIL DOMPointReadOnly matrixTransform number of required arguments undefined is not an object (evaluating 'self[interf].prototype[member].length')
    32 FAIL DOMMatrixReadOnly multiply number of required arguments undefined is not an object (evaluating 'self[interf].prototype')
    33 FAIL DOMMatrix multiplySelf number of required arguments undefined is not an object (evaluating 'self[interf].prototype')
    34 FAIL DOMMatrix preMultiplySelf number of required arguments undefined is not an object (evaluating 'self[interf].prototype')
     32PASS DOMMatrixReadOnly multiply number of required arguments
     33PASS DOMMatrix multiplySelf number of required arguments
     34PASS DOMMatrix preMultiplySelf number of required arguments
    3535PASS CSSMatrix must be nuked
    3636
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/structured-serialization-expected.txt

    r216878 r216959  
    2020FAIL DOMQuad clone: throwing getters undefined is not a constructor (evaluating 'new self[constr]()')
    2121FAIL DOMQuad clone: non-initial values undefined is not a constructor (evaluating 'new self[constr]')
    22 FAIL DOMMatrixReadOnly clone: basic undefined is not a constructor (evaluating 'new self[constr]()')
    23 FAIL DOMMatrixReadOnly clone: custom property undefined is not a constructor (evaluating 'new self[constr]()')
    24 FAIL DOMMatrixReadOnly clone: throwing getters undefined is not a constructor (evaluating 'new self[constr]()')
    25 FAIL DOMMatrixReadOnly clone: non-initial values (2d) undefined is not a constructor (evaluating 'new self[constr]([1, -0, Infinity, NaN, 5, 6])')
    26 FAIL DOMMatrixReadOnly clone: non-initial values (3d) undefined is not a constructor (evaluating 'new self[constr]')
    27 FAIL DOMMatrix clone: basic undefined is not a constructor (evaluating 'new self[constr]()')
    28 FAIL DOMMatrix clone: custom property undefined is not a constructor (evaluating 'new self[constr]()')
    29 FAIL DOMMatrix clone: throwing getters undefined is not a constructor (evaluating 'new self[constr]()')
    30 FAIL DOMMatrix clone: non-initial values (2d) undefined is not a constructor (evaluating 'new self[constr]([1, -0, Infinity, NaN, 5, 6])')
    31 FAIL DOMMatrix clone: non-initial values (3d) undefined is not a constructor (evaluating 'new self[constr]')
     22FAIL DOMMatrixReadOnly clone: basic promise_test: Unhandled rejection with value: object "DataCloneError (DOM Exception 25): The object can not be cloned."
     23FAIL DOMMatrixReadOnly clone: custom property promise_test: Unhandled rejection with value: object "DataCloneError (DOM Exception 25): The object can not be cloned."
     24FAIL DOMMatrixReadOnly clone: throwing getters promise_test: Unhandled rejection with value: object "DataCloneError (DOM Exception 25): The object can not be cloned."
     25FAIL DOMMatrixReadOnly clone: non-initial values (2d) promise_test: Unhandled rejection with value: object "DataCloneError (DOM Exception 25): The object can not be cloned."
     26FAIL DOMMatrixReadOnly clone: non-initial values (3d) promise_test: Unhandled rejection with value: object "DataCloneError (DOM Exception 25): The object can not be cloned."
     27FAIL DOMMatrix clone: basic promise_test: Unhandled rejection with value: object "DataCloneError (DOM Exception 25): The object can not be cloned."
     28FAIL DOMMatrix clone: custom property promise_test: Unhandled rejection with value: object "DataCloneError (DOM Exception 25): The object can not be cloned."
     29FAIL DOMMatrix clone: throwing getters promise_test: Unhandled rejection with value: object "DataCloneError (DOM Exception 25): The object can not be cloned."
     30FAIL DOMMatrix clone: non-initial values (2d) promise_test: Unhandled rejection with value: object "DataCloneError (DOM Exception 25): The object can not be cloned."
     31FAIL DOMMatrix clone: non-initial values (3d) promise_test: Unhandled rejection with value: object "DataCloneError (DOM Exception 25): The object can not be cloned."
    3232
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/w3c-import.log

    r216878 r216959  
    2121/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMMatrix-css-string.worker.js
    2222/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMMatrix-newobject.html
     23/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMMatrix-stringifier.html
    2324/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMPoint-001.html
    2425/LayoutTests/imported/w3c/web-platform-tests/css/geometry-1/DOMPoint-002.html
  • trunk/Source/WebCore/CMakeLists.txt

    r216918 r216959  
    375375    css/CSSSupportsRule.idl
    376376    css/CSSUnknownRule.idl
     377    css/DOMMatrix.idl
     378    css/DOMMatrixInit.idl
     379    css/DOMMatrixReadOnly.idl
    377380    css/DeprecatedCSSOMCounter.idl
    378381    css/DeprecatedCSSOMPrimitiveValue.idl
     
    13551358    css/CSSVariableReferenceValue.cpp
    13561359    css/DOMCSSNamespace.cpp
     1360    css/DOMMatrix.cpp
     1361    css/DOMMatrixReadOnly.cpp
    13571362    css/DeprecatedCSSOMPrimitiveValue.cpp
    13581363    css/DeprecatedCSSOMValue.cpp
  • trunk/Source/WebCore/ChangeLog

    r216954 r216959  
     12017-05-16  Chris Dumez  <cdumez@apple.com>
     2
     3        Implement DOMMatrix / DOMMatrixReadOnly
     4        https://bugs.webkit.org/show_bug.cgi?id=110001
     5
     6        Reviewed by Sam Weinig and Simon Fraser.
     7
     8        Implement DOMMatrix / DOMMatrixReadOnly as per:
     9        - https://drafts.fxtf.org/geometry/#DOMMatrix
     10
     11        For now, these new types co-exist with WebKitCSSMatrix / SVGMatrix. However, in the future,
     12        WebKitCSSMatrix / SVGMatrix are supposed to become aliases to DOMMatrix.
     13
     14        Most of it has been implemented. What remaining to be implemented is:
     15        - Make WebKitCSSMatrix / SVGMatrix aliases to DOMMatrix
     16        - DOMMatrix.fromFloat32Array() / fromFloat64Array()
     17        - DOMMatrixReadOnly.fromFloat32Array() / fromFloat64Array() / toFloat32Array() / toFloat64Array()
     18        - DOMMatrixReadOnly.transformPoint().
     19
     20        Tests: imported/w3c/web-platform-tests/css/geometry-1/*
     21
     22        * CMakeLists.txt:
     23        * DerivedSources.make:
     24        * WebCore.xcodeproj/project.pbxproj:
     25
     26        * bindings/scripts/CodeGeneratorJS.pm:
     27        * bindings/scripts/test/JS/JSTestObj.cpp:
     28        Fix a bug in the bindings generator causing the generator code for
     29        "Constructor(optional (DOMString or sequence<unrestricted double>) init)" to be wrong
     30        and not build.
     31
     32        * css/DOMMatrix.cpp: Added.
     33        (WebCore::DOMMatrix::DOMMatrix):
     34        (WebCore::DOMMatrix::fromMatrix):
     35        (WebCore::DOMMatrix::multiplySelf):
     36        (WebCore::DOMMatrix::preMultiplySelf):
     37        (WebCore::DOMMatrix::translateSelf):
     38        (WebCore::DOMMatrix::scaleSelf):
     39        (WebCore::DOMMatrix::scale3dSelf):
     40        (WebCore::DOMMatrix::rotateSelf):
     41        (WebCore::DOMMatrix::rotateFromVectorSelf):
     42        (WebCore::DOMMatrix::rotateAxisAngleSelf):
     43        (WebCore::DOMMatrix::skewXSelf):
     44        (WebCore::DOMMatrix::skewYSelf):
     45        (WebCore::DOMMatrix::invertSelf):
     46        (WebCore::DOMMatrix::setMatrixValueForBindings):
     47        * css/DOMMatrix.h: Added.
     48        (WebCore::DOMMatrix::create):
     49        (WebCore::DOMMatrix::setA):
     50        (WebCore::DOMMatrix::setB):
     51        (WebCore::DOMMatrix::setC):
     52        (WebCore::DOMMatrix::setD):
     53        (WebCore::DOMMatrix::setE):
     54        (WebCore::DOMMatrix::setF):
     55        (WebCore::DOMMatrix::setM11):
     56        (WebCore::DOMMatrix::setM12):
     57        (WebCore::DOMMatrix::setM13):
     58        (WebCore::DOMMatrix::setM14):
     59        (WebCore::DOMMatrix::setM21):
     60        (WebCore::DOMMatrix::setM22):
     61        (WebCore::DOMMatrix::setM23):
     62        (WebCore::DOMMatrix::setM24):
     63        (WebCore::DOMMatrix::setM31):
     64        (WebCore::DOMMatrix::setM32):
     65        (WebCore::DOMMatrix::setM33):
     66        (WebCore::DOMMatrix::setM34):
     67        (WebCore::DOMMatrix::setM41):
     68        (WebCore::DOMMatrix::setM42):
     69        (WebCore::DOMMatrix::setM43):
     70        (WebCore::DOMMatrix::setM44):
     71        * css/DOMMatrix.idl: Added.
     72        * css/DOMMatrixInit.h: Added.
     73        * css/DOMMatrixInit.idl: Added.
     74        * css/DOMMatrixReadOnly.cpp: Added.
     75        (WebCore::DOMMatrixReadOnly::DOMMatrixReadOnly):
     76        (WebCore::DOMMatrixReadOnly::validateAndFixup):
     77        (WebCore::DOMMatrixReadOnly::fromMatrix):
     78        (WebCore::DOMMatrixReadOnly::isIdentity):
     79        (WebCore::DOMMatrixReadOnly::setMatrixValue):
     80        (WebCore::DOMMatrixReadOnly::translate):
     81        (WebCore::DOMMatrixReadOnly::flipX):
     82        (WebCore::DOMMatrixReadOnly::flipY):
     83        (WebCore::DOMMatrixReadOnly::multiply):
     84        (WebCore::DOMMatrixReadOnly::scale):
     85        (WebCore::DOMMatrixReadOnly::scale3d):
     86        (WebCore::DOMMatrixReadOnly::rotate):
     87        (WebCore::DOMMatrixReadOnly::rotateFromVector):
     88        (WebCore::DOMMatrixReadOnly::rotateAxisAngle):
     89        (WebCore::DOMMatrixReadOnly::skewX):
     90        (WebCore::DOMMatrixReadOnly::skewY):
     91        (WebCore::DOMMatrixReadOnly::inverse):
     92        (WebCore::DOMMatrixReadOnly::toString):
     93        * css/DOMMatrixReadOnly.h: Added.
     94        (WebCore::DOMMatrixReadOnly::create):
     95        (WebCore::DOMMatrixReadOnly::a):
     96        (WebCore::DOMMatrixReadOnly::b):
     97        (WebCore::DOMMatrixReadOnly::c):
     98        (WebCore::DOMMatrixReadOnly::d):
     99        (WebCore::DOMMatrixReadOnly::e):
     100        (WebCore::DOMMatrixReadOnly::f):
     101        (WebCore::DOMMatrixReadOnly::m11):
     102        (WebCore::DOMMatrixReadOnly::m12):
     103        (WebCore::DOMMatrixReadOnly::m13):
     104        (WebCore::DOMMatrixReadOnly::m14):
     105        (WebCore::DOMMatrixReadOnly::m21):
     106        (WebCore::DOMMatrixReadOnly::m22):
     107        (WebCore::DOMMatrixReadOnly::m23):
     108        (WebCore::DOMMatrixReadOnly::m24):
     109        (WebCore::DOMMatrixReadOnly::m31):
     110        (WebCore::DOMMatrixReadOnly::m32):
     111        (WebCore::DOMMatrixReadOnly::m33):
     112        (WebCore::DOMMatrixReadOnly::m34):
     113        (WebCore::DOMMatrixReadOnly::m41):
     114        (WebCore::DOMMatrixReadOnly::m42):
     115        (WebCore::DOMMatrixReadOnly::m43):
     116        (WebCore::DOMMatrixReadOnly::m44):
     117        (WebCore::DOMMatrixReadOnly::is2D):
     118        (WebCore::DOMMatrixReadOnly::fromMatrixHelper):
     119        * css/DOMMatrixReadOnly.idl: Added.
     120        * css/WebKitCSSMatrix.h:
     121        * css/WebKitCSSMatrix.idl:
     122        * svg/SVGMatrix.h:
     123        * svg/SVGMatrix.idl:
     124
    11252017-05-16  Eric Carlson  <eric.carlson@apple.com>
    2126
  • trunk/Source/WebCore/DerivedSources.make

    r216641 r216959  
    315315    $(WebCore)/css/CSSSupportsRule.idl \
    316316    $(WebCore)/css/CSSUnknownRule.idl \
     317    $(WebCore)/css/DOMMatrix.idl \
     318    $(WebCore)/css/DOMMatrixInit.idl \
     319    $(WebCore)/css/DOMMatrixReadOnly.idl \
    317320    $(WebCore)/css/DeprecatedCSSOMCounter.idl \
    318321        $(WebCore)/css/DeprecatedCSSOMPrimitiveValue.idl \
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r216918 r216959  
    33283328                834DD4F41BE08989002C9C3E /* PageMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 834DD4F31BE08989002C9C3E /* PageMac.mm */; };
    33293329                83520C7E1A71BFCC006BD2AA /* CSSFontFamily.h in Headers */ = {isa = PBXBuildFile; fileRef = 83520C7D1A71BFCC006BD2AA /* CSSFontFamily.h */; };
     3330                835657C71ECAB10700CDE72D /* JSDOMMatrixInit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 835657C61ECAB0E800CDE72D /* JSDOMMatrixInit.cpp */; };
    33303331                8358CB6F1C53277200E0C2D8 /* JSXMLDocument.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83F570AE1C53268E007FD6CB /* JSXMLDocument.cpp */; };
    33313332                8358CB701C53277500E0C2D8 /* JSXMLDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = 83F570AD1C53268E007FD6CB /* JSXMLDocument.h */; };
     
    33333334                8367587E1C56E99B008A1087 /* JSHTMLDataElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 834B86A91C56E93E00F3F0E3 /* JSHTMLDataElement.cpp */; };
    33343335                8367587F1C56E99B008A1087 /* JSHTMLDataElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 834B86A81C56E93E00F3F0E3 /* JSHTMLDataElement.h */; };
     3336                836ACEC21ECA62C8004BD012 /* DOMMatrixReadOnly.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 836ACEBF1ECA62B0004BD012 /* DOMMatrixReadOnly.cpp */; };
     3337                836ACEC31ECA62C8004BD012 /* DOMMatrixReadOnly.h in Headers */ = {isa = PBXBuildFile; fileRef = 836ACEC01ECA62B0004BD012 /* DOMMatrixReadOnly.h */; };
     3338                836ACEC91ECA9569004BD012 /* DOMMatrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 836ACEC41ECA6654004BD012 /* DOMMatrix.cpp */; };
     3339                836ACECA1ECA9569004BD012 /* DOMMatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = 836ACEC51ECA6654004BD012 /* DOMMatrix.h */; };
     3340                836ACECB1ECA956D004BD012 /* DOMMatrixInit.h in Headers */ = {isa = PBXBuildFile; fileRef = 836ACEC71ECA6654004BD012 /* DOMMatrixInit.h */; };
     3341                836ACED21ECAAB19004BD012 /* JSDOMMatrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 836ACECD1ECAAB04004BD012 /* JSDOMMatrix.cpp */; };
     3342                836ACED31ECAAB19004BD012 /* JSDOMMatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = 836ACECE1ECAAB04004BD012 /* JSDOMMatrix.h */; };
     3343                836ACED41ECAAB19004BD012 /* JSDOMMatrixInit.h in Headers */ = {isa = PBXBuildFile; fileRef = 836ACECF1ECAAB04004BD012 /* JSDOMMatrixInit.h */; };
     3344                836ACED51ECAAB19004BD012 /* JSDOMMatrixReadOnly.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 836ACED01ECAAB04004BD012 /* JSDOMMatrixReadOnly.cpp */; };
     3345                836ACED61ECAAB19004BD012 /* JSDOMMatrixReadOnly.h in Headers */ = {isa = PBXBuildFile; fileRef = 836ACED11ECAAB04004BD012 /* JSDOMMatrixReadOnly.h */; };
    33353346                836C14431CDEAFD80073493F /* JSXPathNSResolverCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 836C14421CDEAFCA0073493F /* JSXPathNSResolverCustom.cpp */; };
    33363347                836D032A1DA89B9200FFD96B /* EventInit.h in Headers */ = {isa = PBXBuildFile; fileRef = 836D03281DA89B7300FFD96B /* EventInit.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    1135911370                8350C3E81DA59B6200356446 /* ScrollToOptions.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ScrollToOptions.idl; sourceTree = "<group>"; };
    1136011371                83520C7D1A71BFCC006BD2AA /* CSSFontFamily.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSSFontFamily.h; sourceTree = "<group>"; };
     11372                835657C61ECAB0E800CDE72D /* JSDOMMatrixInit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDOMMatrixInit.cpp; sourceTree = "<group>"; };
    1136111373                835D363619FF6193004C93AB /* StyleBuilderCustom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleBuilderCustom.h; sourceTree = "<group>"; };
    1136211374                835F8B261D2D90BA00E408EC /* Slotable.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Slotable.idl; sourceTree = "<group>"; };
    1136311375                8369E58F1AFDD0300087DF68 /* NonDocumentTypeChildNode.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = NonDocumentTypeChildNode.idl; sourceTree = "<group>"; };
     11376                836ACEBF1ECA62B0004BD012 /* DOMMatrixReadOnly.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DOMMatrixReadOnly.cpp; sourceTree = "<group>"; };
     11377                836ACEC01ECA62B0004BD012 /* DOMMatrixReadOnly.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMMatrixReadOnly.h; sourceTree = "<group>"; };
     11378                836ACEC11ECA62B0004BD012 /* DOMMatrixReadOnly.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DOMMatrixReadOnly.idl; sourceTree = "<group>"; };
     11379                836ACEC41ECA6654004BD012 /* DOMMatrix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DOMMatrix.cpp; sourceTree = "<group>"; };
     11380                836ACEC51ECA6654004BD012 /* DOMMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMMatrix.h; sourceTree = "<group>"; };
     11381                836ACEC61ECA6654004BD012 /* DOMMatrix.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DOMMatrix.idl; sourceTree = "<group>"; };
     11382                836ACEC71ECA6654004BD012 /* DOMMatrixInit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMMatrixInit.h; sourceTree = "<group>"; };
     11383                836ACEC81ECA6654004BD012 /* DOMMatrixInit.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DOMMatrixInit.idl; sourceTree = "<group>"; };
     11384                836ACECD1ECAAB04004BD012 /* JSDOMMatrix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDOMMatrix.cpp; sourceTree = "<group>"; };
     11385                836ACECE1ECAAB04004BD012 /* JSDOMMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSDOMMatrix.h; sourceTree = "<group>"; };
     11386                836ACECF1ECAAB04004BD012 /* JSDOMMatrixInit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSDOMMatrixInit.h; sourceTree = "<group>"; };
     11387                836ACED01ECAAB04004BD012 /* JSDOMMatrixReadOnly.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDOMMatrixReadOnly.cpp; sourceTree = "<group>"; };
     11388                836ACED11ECAAB04004BD012 /* JSDOMMatrixReadOnly.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSDOMMatrixReadOnly.h; sourceTree = "<group>"; };
    1136411389                836C14421CDEAFCA0073493F /* JSXPathNSResolverCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSXPathNSResolverCustom.cpp; sourceTree = "<group>"; };
    1136511390                836D03271DA89B7300FFD96B /* ClipboardEvent.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ClipboardEvent.idl; sourceTree = "<group>"; };
     
    2183021855                                FD677736195CAB7D0072E0D3 /* JSCSSSupportsRule.cpp */,
    2183121856                                FC84802E167AB444008CD100 /* JSCSSSupportsRule.h */,
     21857                                836ACECD1ECAAB04004BD012 /* JSDOMMatrix.cpp */,
     21858                                836ACECE1ECAAB04004BD012 /* JSDOMMatrix.h */,
     21859                                835657C61ECAB0E800CDE72D /* JSDOMMatrixInit.cpp */,
     21860                                836ACECF1ECAAB04004BD012 /* JSDOMMatrixInit.h */,
     21861                                836ACED01ECAAB04004BD012 /* JSDOMMatrixReadOnly.cpp */,
     21862                                836ACED11ECAAB04004BD012 /* JSDOMMatrixReadOnly.h */,
    2183221863                                947949181E02F6DE00018D85 /* JSDeprecatedCSSOMCounter.cpp */,
    2183321864                                947949191E02F6DE00018D85 /* JSDeprecatedCSSOMCounter.h */,
     
    2494424975                                9444CBDC1D8861580073A074 /* CSSVariableReferenceValue.cpp */,
    2494524976                                9444CBDB1D8861580073A074 /* CSSVariableReferenceValue.h */,
     24977                                836ACEC41ECA6654004BD012 /* DOMMatrix.cpp */,
     24978                                836ACEC51ECA6654004BD012 /* DOMMatrix.h */,
     24979                                836ACEC61ECA6654004BD012 /* DOMMatrix.idl */,
     24980                                836ACEC71ECA6654004BD012 /* DOMMatrixInit.h */,
     24981                                836ACEC81ECA6654004BD012 /* DOMMatrixInit.idl */,
     24982                                836ACEBF1ECA62B0004BD012 /* DOMMatrixReadOnly.cpp */,
     24983                                836ACEC01ECA62B0004BD012 /* DOMMatrixReadOnly.h */,
     24984                                836ACEC11ECA62B0004BD012 /* DOMMatrixReadOnly.idl */,
    2494624985                                A80E6CE10A1989CA007FB8C5 /* DashboardRegion.h */,
    2494724986                                9479492A1E032EDB00018D85 /* DeprecatedCSSOMCounter.h */,
     
    2668626725                                E1C657271816F9FE00256CDD /* CryptoAlgorithmParametersDeprecated.h in Headers */,
    2668726726                                57777E391E71217D00EE1A8D /* CryptoAlgorithmPBKDF2.h in Headers */,
     26727                                836ACECB1ECA956D004BD012 /* DOMMatrixInit.h in Headers */,
    2668826728                                57E657EC1E7162EA00F941CA /* CryptoAlgorithmPbkdf2Params.h in Headers */,
    2668926729                                E1FF8F6D180DB5BE00132674 /* CryptoAlgorithmRegistry.h in Headers */,
     
    2798128021                                7C4C96DF1AD4483500363572 /* JSReadableStreamBYOBReader.h in Headers */,
    2798228022                                6C4C96DF1AD4483500365672 /* JSReadableStreamBYOBRequest.h in Headers */,
     28023                                836ACECA1ECA9569004BD012 /* DOMMatrix.h in Headers */,
    2798328024                                6C4C96DF1AD4483500365A50 /* JSReadableStreamDefaultController.h in Headers */,
    2798428025                                7C4C96DF1AD4483500365A50 /* JSReadableStreamDefaultReader.h in Headers */,
     
    2800928050                                316DCB221E78CA55001B5F87 /* JSRTCRtpTransceiverDirection.h in Headers */,
    2801028051                                07969DBC17D14151007FF842 /* JSRTCSessionDescription.h in Headers */,
     28052                                836ACED41ECAAB19004BD012 /* JSDOMMatrixInit.h in Headers */,
    2801128053                                316DCB501E7910A6001B5F87 /* JSRTCSignalingState.h in Headers */,
    2801228054                                07969DC217D14151007FF842 /* JSRTCStatsReport.h in Headers */,
     
    2828228324                                F916C48E0DB510F80076CD83 /* JSXMLHttpRequestProgressEvent.h in Headers */,
    2828328325                                BCDFD4960E30592F009D10AD /* JSXMLHttpRequestUpload.h in Headers */,
     28326                                836ACED31ECAAB19004BD012 /* JSDOMMatrix.h in Headers */,
    2828428327                                1ACE53F70A8D19470022947D /* JSXMLSerializer.h in Headers */,
    2828528328                                1A762C740A074F2600989F5B /* JSXPathEvaluator.h in Headers */,
     
    2914529188                                93C4A4151629DF5A00C3EB6E /* ScrollingTreeFrameScrollingNodeMac.h in Headers */,
    2914629189                                0FC4E410187F82E10045882C /* ScrollingTreeIOS.h in Headers */,
     29190                                836ACED61ECAAB19004BD012 /* JSDOMMatrixReadOnly.h in Headers */,
    2914729191                                0FE5806419327A6200DE32EB /* ScrollingTreeMac.h in Headers */,
    2914829192                                1AAADDE414DC8C8F00AF64B3 /* ScrollingTreeNode.h in Headers */,
     
    2962229666                                93309E17099E64920056E581 /* TextAffinity.h in Headers */,
    2962329667                                CE7B2DB51586ABAD0098B3FA /* TextAlternativeWithRange.h in Headers */,
     29668                                836ACEC31ECA62C8004BD012 /* DOMMatrixReadOnly.h in Headers */,
    2962429669                                0F54DCE61881051D003EEDBB /* TextAutoSizing.h in Headers */,
    2962529670                                B2C3DA340D006C1D00EF6F26 /* TextBoundaries.h in Headers */,
     
    3172431769                                516C62251950E2B900337E75 /* JSGamepadEvent.cpp in Sources */,
    3172531770                                FE80DA630E9C4703000D6F75 /* JSGeolocation.cpp in Sources */,
     31771                                836ACED51ECAAB19004BD012 /* JSDOMMatrixReadOnly.cpp in Sources */,
    3172631772                                FE80DA650E9C4703000D6F75 /* JSGeoposition.cpp in Sources */,
    3172731773                                0FDA7C1E188322FC00C954B5 /* JSGestureEvent.cpp in Sources */,
     
    3199532041                                316DCB211E78CA55001B5F87 /* JSRTCRtpTransceiverDirection.cpp in Sources */,
    3199632042                                07969DBB17D14151007FF842 /* JSRTCSessionDescription.cpp in Sources */,
     32043                                836ACEC21ECA62C8004BD012 /* DOMMatrixReadOnly.cpp in Sources */,
    3199732044                                316DCB4F1E7910A6001B5F87 /* JSRTCSignalingState.cpp in Sources */,
    3199832045                                07969DC117D14151007FF842 /* JSRTCStatsReport.cpp in Sources */,
     
    3233932386                                E424A3A01330DF1E00CF6DC9 /* LegacyTileGridTile.mm in Sources */,
    3234032387                                E4B65A5E132FADB60070E7BE /* LegacyTileLayer.mm in Sources */,
     32388                                836ACED21ECAAB19004BD012 /* JSDOMMatrix.cpp in Sources */,
    3234132389                                E4E39AFD1330EFC6003AB274 /* LegacyTileLayerPool.mm in Sources */,
    3234232390                                512DD8F40D91E6AF000F89EE /* LegacyWebArchive.cpp in Sources */,
     
    3241232460                                5CBC8DAC1AAA302200E1C803 /* MediaAccessibilitySoftLink.cpp in Sources */,
    3241332461                                1BE5BFC21D515715001666D9 /* MediaConstraints.cpp in Sources */,
     32462                                835657C71ECAB10700CDE72D /* JSDOMMatrixInit.cpp in Sources */,
    3241432463                                417253AA1354BBBC00360F2A /* MediaControlElements.cpp in Sources */,
    3241532464                                DEBCCDD516646EB200A452E1 /* MediaControlElementTypes.cpp in Sources */,
     
    3270332752                                514C76740CE923A1007EF3CD /* ProtectionSpaceBase.cpp in Sources */,
    3270432753                                372ADA3B197F687600FC501E /* ProtectionSpaceCocoa.mm in Sources */,
     32754                                836ACEC91ECA9569004BD012 /* DOMMatrix.cpp in Sources */,
    3270532755                                1AF8E13312565A4400230FF7 /* ProxyServer.cpp in Sources */,
    3270632756                                1AF8E1C3125673E000230FF7 /* ProxyServerCFNet.cpp in Sources */,
  • trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm

    r216856 r216959  
    49454945            die "Variadic argument is already handled here" if $argument->isVariadic;
    49464946            my $argumentLookupMethod = $argument->isOptional ? "argument" : "uncheckedArgument";
     4947            my $nativeValueCastFunction;
    49474948
    49484949            if ($argument->isOptional && defined($argument->default) && !WillConvertUndefinedToDefaultParameterValue($type, $argument->default)) {
     
    49564957                # Use std::optional<>() for optional arguments that are missing or undefined and that do not have a default value in the IDL.
    49574958                $outer = "state->$argumentLookupMethod($argumentIndex).isUndefined() ? std::optional<$nativeType>() : ";
     4959                $nativeValueCastFunction = "std::optional<$nativeType>";
    49584960                $inner = "state->uncheckedArgument($argumentIndex)";
    49594961            } else {
     
    49674969            my ($nativeValue, $mayThrowException) = JSValueToNative($interface, $argument, $inner, $conditional, "state", "*state", "*castedThis", $globalObjectReference, $argumentExceptionThrower);
    49684970
    4969             push(@$outputArray, "    auto $name = ${outer}${nativeValue};\n");
     4971            if (defined $nativeValueCastFunction) {
     4972                push(@$outputArray, "    auto $name = ${outer}$nativeValueCastFunction(${nativeValue});\n");
     4973            } else {
     4974                push(@$outputArray, "    auto $name = ${outer}${nativeValue};\n");
     4975            }
    49704976            push(@$outputArray, "    RETURN_IF_EXCEPTION(throwScope, encodedJSValue());\n") if $mayThrowException;
    49714977
     
    56285634    return "Vector<WTF::KeyValuePair<" . GetNativeInnerType(@{$type->subtypes}[0], $interface) . ", " . GetNativeInnerType(@{$type->subtypes}[1], $interface) . ">>" if $codeGenerator->IsRecordType($type);
    56295635
     5636    if ($type->isUnion) {
     5637        my $IDLType = GetIDLType($interface, $type);
     5638        return "Converter<$IDLType>::ReturnType";
     5639    }
     5640   
    56305641    return "RefPtr<${typeName}>" if $codeGenerator->IsTypedArrayType($type) and $typeName ne "ArrayBuffer";
    56315642    return "${typeName}*";
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp

    r216851 r216959  
    12321232JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionStringArrayFunction(JSC::ExecState*);
    12331233JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionDomStringListFunction(JSC::ExecState*);
     1234JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionOperationWithOptionalUnionParameter(JSC::ExecState*);
    12341235JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequence(JSC::ExecState*);
    12351236JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionGetElementById(JSC::ExecState*);
     
    18951896    { "stringArrayFunction", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionStringArrayFunction), (intptr_t) (1) } },
    18961897    { "domStringListFunction", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionDomStringListFunction), (intptr_t) (1) } },
     1898    { "operationWithOptionalUnionParameter", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionOperationWithOptionalUnionParameter), (intptr_t) (0) } },
    18971899    { "methodWithAndWithoutNullableSequence", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequence), (intptr_t) (2) } },
    18981900    { "getElementById", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionGetElementById), (intptr_t) (1) } },
     
    63676369    UNUSED_PARAM(throwScope);
    63686370    auto& impl = castedThis->wrapped();
    6369     auto opt = state->argument(0).isUndefined() ? std::optional<int32_t>() : convert<IDLLong>(*state, state->uncheckedArgument(0));
     6371    auto opt = state->argument(0).isUndefined() ? std::optional<int32_t>() : std::optional<int32_t>(convert<IDLLong>(*state, state->uncheckedArgument(0)));
    63706372    RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
    63716373    impl.methodWithOptionalArg(WTFMove(opt));
     
    64076409    auto nonOpt = convert<IDLLong>(*state, state->uncheckedArgument(0));
    64086410    RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
    6409     auto opt = state->argument(1).isUndefined() ? std::optional<int32_t>() : convert<IDLLong>(*state, state->uncheckedArgument(1));
     6411    auto opt = state->argument(1).isUndefined() ? std::optional<int32_t>() : std::optional<int32_t>(convert<IDLLong>(*state, state->uncheckedArgument(1)));
    64106412    RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
    64116413    impl.methodWithNonOptionalArgAndOptionalArg(WTFMove(nonOpt), WTFMove(opt));
     
    64296431    auto nonOpt = convert<IDLLong>(*state, state->uncheckedArgument(0));
    64306432    RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
    6431     auto opt1 = state->argument(1).isUndefined() ? std::optional<int32_t>() : convert<IDLLong>(*state, state->uncheckedArgument(1));
    6432     RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
    6433     auto opt2 = state->argument(2).isUndefined() ? std::optional<int32_t>() : convert<IDLLong>(*state, state->uncheckedArgument(2));
     6433    auto opt1 = state->argument(1).isUndefined() ? std::optional<int32_t>() : std::optional<int32_t>(convert<IDLLong>(*state, state->uncheckedArgument(1)));
     6434    RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
     6435    auto opt2 = state->argument(2).isUndefined() ? std::optional<int32_t>() : std::optional<int32_t>(convert<IDLLong>(*state, state->uncheckedArgument(2)));
    64346436    RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
    64356437    impl.methodWithNonOptionalArgAndTwoOptionalArgs(WTFMove(nonOpt), WTFMove(opt1), WTFMove(opt2));
     
    66836685    UNUSED_PARAM(throwScope);
    66846686    auto& impl = castedThis->wrapped();
    6685     auto number = state->argument(0).isUndefined() ? std::optional<int64_t>() : convert<IDLLongLong>(*state, state->uncheckedArgument(0));
     6687    auto number = state->argument(0).isUndefined() ? std::optional<int64_t>() : std::optional<int64_t>(convert<IDLLongLong>(*state, state->uncheckedArgument(0)));
    66866688    RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
    66876689    impl.methodWithOptionalLongLong(WTFMove(number));
     
    67196721    UNUSED_PARAM(throwScope);
    67206722    auto& impl = castedThis->wrapped();
    6721     auto number = state->argument(0).isUndefined() ? std::optional<uint64_t>() : convert<IDLUnsignedLongLong>(*state, state->uncheckedArgument(0));
     6723    auto number = state->argument(0).isUndefined() ? std::optional<uint64_t>() : std::optional<uint64_t>(convert<IDLUnsignedLongLong>(*state, state->uncheckedArgument(0)));
    67226724    RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
    67236725    impl.methodWithOptionalUnsignedLongLong(WTFMove(number));
     
    67916793    UNUSED_PARAM(throwScope);
    67926794    auto& impl = castedThis->wrapped();
    6793     auto b = state->argument(0).isUndefined() ? std::optional<bool>() : convert<IDLBoolean>(*state, state->uncheckedArgument(0));
     6795    auto b = state->argument(0).isUndefined() ? std::optional<bool>() : std::optional<bool>(convert<IDLBoolean>(*state, state->uncheckedArgument(0)));
    67946796    RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
    67956797    impl.methodWithOptionalBoolean(WTFMove(b));
     
    68456847    UNUSED_PARAM(throwScope);
    68466848    auto& impl = castedThis->wrapped();
    6847     auto a = state->argument(0).isUndefined() ? std::optional<JSC::Strong<JSC::JSObject>>() : convert<IDLObject>(*state, state->uncheckedArgument(0));
     6849    auto a = state->argument(0).isUndefined() ? std::optional<JSC::Strong<JSC::JSObject>>() : std::optional<JSC::Strong<JSC::JSObject>>(convert<IDLObject>(*state, state->uncheckedArgument(0)));
    68486850    RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
    68496851    impl.methodWithOptionalObject(WTFMove(a));
     
    71617163    auto objArg = convert<IDLNullable<IDLInterface<TestObj>>>(*state, state->uncheckedArgument(0), [](JSC::ExecState& state, JSC::ThrowScope& scope) { throwArgumentTypeError(state, scope, 0, "objArg", "TestObject", "overloadedMethod", "TestObj"); });
    71627164    RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
    7163     auto longArg = state->argument(1).isUndefined() ? std::optional<int32_t>() : convert<IDLLong>(*state, state->uncheckedArgument(1));
     7165    auto longArg = state->argument(1).isUndefined() ? std::optional<int32_t>() : std::optional<int32_t>(convert<IDLLong>(*state, state->uncheckedArgument(1)));
    71647166    RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
    71657167    impl.overloadedMethod(WTFMove(objArg), WTFMove(longArg));
     
    74697471    auto objArg = convert<IDLNullable<IDLInterface<TestObj>>>(*state, state->uncheckedArgument(0), [](JSC::ExecState& state, JSC::ThrowScope& scope) { throwArgumentTypeError(state, scope, 0, "objArg", "TestObject", "overloadedMethodWithOptionalParameter", "TestObj"); });
    74707472    RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
    7471     auto longArg = state->argument(1).isUndefined() ? std::optional<int32_t>() : convert<IDLLong>(*state, state->uncheckedArgument(1));
     7473    auto longArg = state->argument(1).isUndefined() ? std::optional<int32_t>() : std::optional<int32_t>(convert<IDLLong>(*state, state->uncheckedArgument(1)));
    74727474    RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
    74737475    impl.overloadedMethodWithOptionalParameter(WTFMove(objArg), WTFMove(longArg));
     
    78767878    auto throwScope = DECLARE_THROW_SCOPE(vm);
    78777879    UNUSED_PARAM(throwScope);
    7878     auto arg = state->argument(0).isUndefined() ? std::optional<int32_t>() : convert<IDLLong>(*state, state->uncheckedArgument(0));
     7880    auto arg = state->argument(0).isUndefined() ? std::optional<int32_t>() : std::optional<int32_t>(convert<IDLLong>(*state, state->uncheckedArgument(0)));
    78797881    RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
    78807882    return JSValue::encode(toJS<IDLLong>(TestObj::classMethodWithOptional(WTFMove(arg))));
     
    80798081}
    80808082
     8083static inline JSC::EncodedJSValue jsTestObjPrototypeFunctionOperationWithOptionalUnionParameterCaller(JSC::ExecState*, JSTestObj*, JSC::ThrowScope&);
     8084
     8085EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionOperationWithOptionalUnionParameter(ExecState* state)
     8086{
     8087    return BindingCaller<JSTestObj>::callOperation<jsTestObjPrototypeFunctionOperationWithOptionalUnionParameterCaller>(state, "operationWithOptionalUnionParameter");
     8088}
     8089
     8090static inline JSC::EncodedJSValue jsTestObjPrototypeFunctionOperationWithOptionalUnionParameterCaller(JSC::ExecState* state, JSTestObj* castedThis, JSC::ThrowScope& throwScope)
     8091{
     8092    UNUSED_PARAM(state);
     8093    UNUSED_PARAM(throwScope);
     8094    auto& impl = castedThis->wrapped();
     8095    auto optionalUnion = state->argument(0).isUndefined() ? std::optional<Converter<IDLUnion<IDLDOMString, IDLSequence<IDLUnrestrictedDouble>>>::ReturnType>() : std::optional<Converter<IDLUnion<IDLDOMString, IDLSequence<IDLUnrestrictedDouble>>>::ReturnType>(convert<IDLUnion<IDLDOMString, IDLSequence<IDLUnrestrictedDouble>>>(*state, state->uncheckedArgument(0)));
     8096    RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
     8097    impl.operationWithOptionalUnionParameter(WTFMove(optionalUnion));
     8098    return JSValue::encode(jsUndefined());
     8099}
     8100
    80818101static inline JSC::EncodedJSValue jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequenceCaller(JSC::ExecState*, JSTestObj*, JSC::ThrowScope&);
    80828102
     
    84528472    UNUSED_PARAM(throwScope);
    84538473    auto& impl = castedThis->wrapped();
    8454     auto a = state->argument(0).isUndefined() ? std::optional<int32_t>() : convert<IDLLong>(*state, state->uncheckedArgument(0));
     8474    auto a = state->argument(0).isUndefined() ? std::optional<int32_t>() : std::optional<int32_t>(convert<IDLLong>(*state, state->uncheckedArgument(0)));
    84558475    RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
    84568476    impl.testPromiseFunctionWithOptionalIntArgument(WTFMove(a), WTFMove(promise));
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp

    r216198 r216959  
    608608    auto color = state->argument(3).isUndefined() ? String() : convert<IDLDOMString>(*state, state->uncheckedArgument(3));
    609609    RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
    610     auto alpha = state->argument(4).isUndefined() ? std::optional<float>() : convert<IDLUnrestrictedFloat>(*state, state->uncheckedArgument(4));
     610    auto alpha = state->argument(4).isUndefined() ? std::optional<float>() : std::optional<float>(convert<IDLUnrestrictedFloat>(*state, state->uncheckedArgument(4)));
    611611    RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
    612612    impl.setShadow(WTFMove(width), WTFMove(height), WTFMove(blur), WTFMove(color), WTFMove(alpha));
     
    749749    auto arg1 = convert<IDLClampAdaptor<IDLUnsignedLongLong>>(*state, state->uncheckedArgument(0));
    750750    RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
    751     auto arg2 = state->argument(1).isUndefined() ? std::optional<uint64_t>() : convert<IDLClampAdaptor<IDLUnsignedLongLong>>(*state, state->uncheckedArgument(1));
     751    auto arg2 = state->argument(1).isUndefined() ? std::optional<uint64_t>() : std::optional<uint64_t>(convert<IDLClampAdaptor<IDLUnsignedLongLong>>(*state, state->uncheckedArgument(1)));
    752752    RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
    753753    impl.funcWithClamp(WTFMove(arg1), WTFMove(arg2));
  • trunk/Source/WebCore/bindings/scripts/test/TestObj.idl

    r216851 r216959  
    338338    [MayThrowException] sequence<DOMString> stringArrayFunction(sequence<DOMString> values);
    339339    [MayThrowException] DOMStringList domStringListFunction(DOMStringList values);
     340
     341    void operationWithOptionalUnionParameter(optional (DOMString or sequence<unrestricted double>) optionalUnion);
    340342
    341343    void methodWithAndWithoutNullableSequence(sequence<unsigned long> arrayArg, sequence<unsigned long>? nullableArrayArg);
  • trunk/Source/WebCore/css/WebKitCSSMatrix.h

    r216881 r216959  
    3232namespace WebCore {
    3333
     34// FIXME: Remove this class once WebKitCSSMatrix becomes an alias to DOMMatrix.
    3435class WebKitCSSMatrix final : public ScriptWrappable, public RefCounted<WebKitCSSMatrix> {
    3536public:
  • trunk/Source/WebCore/css/WebKitCSSMatrix.idl

    r216881 r216959  
    2424 */
    2525
     26// FIXME: This should be removed and made an alias to DOMRect.
    2627[
    2728    Constructor(optional DOMString cssValue),
  • trunk/Source/WebCore/svg/SVGMatrix.h

    r208863 r216959  
    3232namespace WebCore {
    3333
     34// FIXME: Remove this class once SVGMatrix becomes an alias to DOMMatrix.
    3435class SVGMatrix : public SVGPropertyTearOff<SVGMatrixValue> {
    3536public:
  • trunk/Source/WebCore/svg/SVGMatrix.idl

    r208705 r216959  
    2121 */
    2222
     23// FIXME: This should be removed and made an alias to DOMRect.
    2324[
    2425    SkipVTableValidation
Note: See TracChangeset for help on using the changeset viewer.