| Index: third_party/WebKit/LayoutTests/fast/dom/geometry-interfaces-dom-matrix-readonly.html
 | 
| diff --git a/third_party/WebKit/LayoutTests/fast/dom/geometry-interfaces-dom-matrix-readonly.html b/third_party/WebKit/LayoutTests/fast/dom/geometry-interfaces-dom-matrix-readonly.html
 | 
| index 69ee48579ab50389111c2a784178195988dc04a4..397f0b7e93db27f40e263b732b57ac4b6f33d4f8 100644
 | 
| --- a/third_party/WebKit/LayoutTests/fast/dom/geometry-interfaces-dom-matrix-readonly.html
 | 
| +++ b/third_party/WebKit/LayoutTests/fast/dom/geometry-interfaces-dom-matrix-readonly.html
 | 
| @@ -4,10 +4,11 @@
 | 
|  <title>Geometry Interfaces: DOMMatrixReadOnly</title>
 | 
|  <script src="../../resources/testharness.js"></script>
 | 
|  <script src="../../resources/testharnessreport.js"></script>
 | 
| +<script src="./resources/geometry-interfaces-test-helpers.js"></script>
 | 
|  </head>
 | 
|  <body>
 | 
|  <script>
 | 
| -test(function() {
 | 
| +test(() => {
 | 
|      var matrix2d = new DOMMatrixReadOnly([1, 2, 3, 3.1, 2, 1]);
 | 
|      assert_true(matrix2d.is2D);
 | 
|      assert_equals(matrix2d.a, 1);
 | 
| @@ -18,7 +19,7 @@ test(function() {
 | 
|      assert_equals(matrix2d.f, 1);
 | 
|  }, "DOMMatrixReadOnly constructor - 2D matrix");
 | 
|  
 | 
| -test(function() {
 | 
| +test(() => {
 | 
|      var matrix3d = new DOMMatrixReadOnly([1, 2, 3, 4, 5, 6, 7, 8, 9, 10.1, 11, 12, 13, 14, 15, 16.6]);
 | 
|      assert_false(matrix3d.is2D);
 | 
|      assert_equals(matrix3d.m11, 1);
 | 
| @@ -39,7 +40,7 @@ test(function() {
 | 
|      assert_equals(matrix3d.m44, 16.6);
 | 
|  }, "DOMMatrixReadOnly constructor - 3D matrix");
 | 
|  
 | 
| -test(function() {
 | 
| +test(() => {
 | 
|      var float32Array = new Float32Array([1, 2, 3, 4, 5, 6]);
 | 
|      var matrix2d = DOMMatrixReadOnly.fromFloat32Array(float32Array);
 | 
|      assert_true(matrix2d.is2D);
 | 
| @@ -51,7 +52,7 @@ test(function() {
 | 
|      assert_equals(matrix2d.f, 6);
 | 
|  }, "DOMMatrixReadOnly fromFloat32Array - 2D matrix");
 | 
|  
 | 
| -test(function() {
 | 
| +test(() => {
 | 
|      // 3.1  is not representable as a 32-bit float
 | 
|      var float64Array = new Float64Array([1, 2, 3, 3.1, 4, 5]);
 | 
|      var matrix2d = DOMMatrixReadOnly.fromFloat64Array(float64Array);
 | 
| @@ -64,7 +65,7 @@ test(function() {
 | 
|      assert_equals(matrix2d.f, 5);
 | 
|  }, "DOMMatrixReadOnly fromFloat64Array - 2D matrix");
 | 
|  
 | 
| -test(function() {
 | 
| +test(() => {
 | 
|      var float32Array = new Float32Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]);
 | 
|      var matrix3d = DOMMatrixReadOnly.fromFloat32Array(float32Array);
 | 
|      assert_false(matrix3d.is2D);
 | 
| @@ -86,7 +87,7 @@ test(function() {
 | 
|      assert_equals(matrix3d.m44, 16);
 | 
|  }, "DOMMatrixReadOnly fromFloat32Array - 3D matrix");
 | 
|  
 | 
| -test(function() {
 | 
| +test(() => {
 | 
|      // 10.1 and 16.6 are not representable as a 32-bit float
 | 
|      var float64Array = new Float64Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10.1, 11, 12, 13, 14, 15, 16.6]);
 | 
|      var matrix3d = DOMMatrixReadOnly.fromFloat64Array(float64Array);
 | 
| @@ -109,64 +110,147 @@ test(function() {
 | 
|      assert_equals(matrix3d.m44, 16.6);
 | 
|  }, "DOMMatrixReadOnly fromFloat64Array - 3D matrix");
 | 
|  
 | 
| -test(function() {
 | 
| +test(() => {
 | 
|      var matrix2d = new DOMMatrixReadOnly([1, 2, 3, 3.1, 2, 1]);
 | 
|      assert_true(matrix2d.is2D);
 | 
|      assert_equals(matrix2d.toString(), "matrix(1, 2, 3, 3.1, 2, 1)");
 | 
|  }, "DOMMatrixReadOnly toString() - 2D matrix");
 | 
|  
 | 
| -test(function() {
 | 
| +test(() => {
 | 
|      var matrix3d = new DOMMatrixReadOnly([1, 2, 3, 4, 5, 6, 7, 8, 9, 10.1, 11, 12, 13, 14, 15, 16.6]);
 | 
|      assert_false(matrix3d.is2D);
 | 
|      assert_equals(matrix3d.toString(), "matrix3d(1, 2, 3, 4, 5, 6, 7, 8, 9, 10.1, 11, 12, 13, 14, 15, 16.6)");
 | 
|  }, "DOMMatrixReadOnly toString() - 3D matrix");
 | 
|  
 | 
| -test(function() {
 | 
| -    assert_throws(new TypeError(), function() { new DOMMatrixReadOnly(1, 2, 3, 4, 5, 6); },
 | 
| +test(() => {
 | 
| +    assert_throws(new TypeError(), () => { new DOMMatrixReadOnly(1, 2, 3, 4, 5, 6); },
 | 
|              "DOMMatrixReadOnly constructor only accepts 1 argument");
 | 
| -    assert_throws(new TypeError(), function() { new DOMMatrixReadOnly("myString"); },
 | 
| +    assert_throws(new TypeError(), () => { new DOMMatrixReadOnly("myString"); },
 | 
|              "DOMMatrixReadOnly constructor only accepts 1 number sequence");
 | 
| -    assert_throws(new TypeError(), function() { new DOMMatrixReadOnly([1, 2, 3]); },
 | 
| +    assert_throws(new TypeError(), () => { new DOMMatrixReadOnly([1, 2, 3]); },
 | 
|              "DOMMatrixReadOnly constructor only accepts 1 number sequence with 6 or 16 elements.");
 | 
|  }, "DOMMatrixReadOnly constructor - invalid arguments");
 | 
|  
 | 
| -test(function() {
 | 
| -    assert_throws(new TypeError(), function() { DOMMatrixReadOnly.fromFloat32Array(new Float32Array([1, 2, 3, 4, 5])); },
 | 
| +test(() => {
 | 
| +    assert_throws(new TypeError(), () => { DOMMatrixReadOnly.fromFloat32Array(new Float32Array([1, 2, 3, 4, 5])); },
 | 
|              "fromFloat32Array function only accepts 1 Float32Array with 6 or 16 elements.");
 | 
| -    assert_throws(new TypeError(), function() { DOMMatrixReadOnly.fromFloat64Array(new Float64Array([1, 2, 3, 4, 5])); },
 | 
| +    assert_throws(new TypeError(), () => { DOMMatrixReadOnly.fromFloat64Array(new Float64Array([1, 2, 3, 4, 5])); },
 | 
|              "fromFloat64Array function only accepts 1 Float64Array with 6 or 16 elements.");
 | 
| -    assert_throws(new TypeError(), function() { DOMMatrixReadOnly.fromFloat32Array(new Float32Array([1, 2, 3, 4, 5, 6 ,7])); },
 | 
| +    assert_throws(new TypeError(), () => { DOMMatrixReadOnly.fromFloat32Array(new Float32Array([1, 2, 3, 4, 5, 6 ,7])); },
 | 
|              "fromFloat32Array function only accepts 1 Float32Array with 6 or 16 elements.");
 | 
| -    assert_throws(new TypeError(), function() { DOMMatrixReadOnly.fromFloat64Array(new Float64Array([1, 2, 3, 4, 5, 6 ,7])); },
 | 
| +    assert_throws(new TypeError(), () => { DOMMatrixReadOnly.fromFloat64Array(new Float64Array([1, 2, 3, 4, 5, 6 ,7])); },
 | 
|              "fromFloat64Array function only accepts 1 Float64Array with 6 or 16 elements.");
 | 
|  }, "DOMMatrixReadOnly fromFloat*Array - invalid array size of nearby 6");
 | 
|  
 | 
| -test(function() {
 | 
| -    assert_throws(new TypeError(), function() { DOMMatrixReadOnly.fromFloat32Array(new Float32Array([1, 2, 3, 4, 5, 6 ,7, 8, 9, 10, 11, 12, 13, 14, 15])); },
 | 
| +test(() => {
 | 
| +    assert_throws(new TypeError(), () => { DOMMatrixReadOnly.fromFloat32Array(new Float32Array([1, 2, 3, 4, 5, 6 ,7, 8, 9, 10, 11, 12, 13, 14, 15])); },
 | 
|              "fromFloat32Array function only accepts 1 Float32Array with 6 or 16 elements.");
 | 
| -    assert_throws(new TypeError(), function() { DOMMatrixReadOnly.fromFloat64Array(new Float64Array([1, 2, 3, 4, 5, 6 ,7, 8, 9, 10, 11, 12, 13, 14, 15])); },
 | 
| +    assert_throws(new TypeError(), () => { DOMMatrixReadOnly.fromFloat64Array(new Float64Array([1, 2, 3, 4, 5, 6 ,7, 8, 9, 10, 11, 12, 13, 14, 15])); },
 | 
|              "fromFloat64Array function only accepts 1 Float64Array with 6 or 16 elements.");
 | 
| -    assert_throws(new TypeError(), function() { DOMMatrixReadOnly.fromFloat32Array(new Float32Array([1, 2, 3, 4, 5, 6 ,7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17])); },
 | 
| +    assert_throws(new TypeError(), () => { DOMMatrixReadOnly.fromFloat32Array(new Float32Array([1, 2, 3, 4, 5, 6 ,7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17])); },
 | 
|              "fromFloat32Array function only accepts 1 Float32Array with 6 or 16 elements.");
 | 
| -    assert_throws(new TypeError(), function() { DOMMatrixReadOnly.fromFloat64Array(new Float64Array([1, 2, 3, 4, 5, 6 ,7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17])); },
 | 
| +    assert_throws(new TypeError(), () => { DOMMatrixReadOnly.fromFloat64Array(new Float64Array([1, 2, 3, 4, 5, 6 ,7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17])); },
 | 
|              "fromFloat64Array function only accepts 1 Float64Array with 6 or 16 elements.");
 | 
|  }, "DOMMatrixReadOnly fromFloat*Array - invalid array size of nearby 16");
 | 
|  
 | 
| -test(function() {
 | 
| -    assert_throws(new TypeError(), function() { DOMMatrixReadOnly.fromFloat32Array(new Float32Array([])); },
 | 
| +test(() => {
 | 
| +    assert_throws(new TypeError(), () => { DOMMatrixReadOnly.fromFloat32Array(new Float32Array([])); },
 | 
|              "fromFloat32Array function only accepts 1 Float32Array with 6 or 16 elements.");
 | 
| -    assert_throws(new TypeError(), function() { DOMMatrixReadOnly.fromFloat64Array(new Float64Array([])); },
 | 
| +    assert_throws(new TypeError(), () => { DOMMatrixReadOnly.fromFloat64Array(new Float64Array([])); },
 | 
|              "fromFloat64Array function only accepts 1 Float64Array with 6 or 16 elements.");
 | 
| -    assert_throws(new TypeError(), function() { DOMMatrixReadOnly.fromFloat32Array(new Float32Array([1])); },
 | 
| +    assert_throws(new TypeError(), () => { DOMMatrixReadOnly.fromFloat32Array(new Float32Array([1])); },
 | 
|              "fromFloat32Array function only accepts 1 Float32Array with 6 or 16 elements.");
 | 
| -    assert_throws(new TypeError(), function() { DOMMatrixReadOnly.fromFloat64Array(new Float64Array([1])); },
 | 
| +    assert_throws(new TypeError(), () => { DOMMatrixReadOnly.fromFloat64Array(new Float64Array([1])); },
 | 
|              "fromFloat64Array function only accepts 1 Float64Array with 6 or 16 elements.");
 | 
| -    assert_throws(new TypeError(), function() { DOMMatrixReadOnly.fromFloat32Array(new Float32Array(65536)); },
 | 
| +    assert_throws(new TypeError(), () => { DOMMatrixReadOnly.fromFloat32Array(new Float32Array(65536)); },
 | 
|              "fromFloat32Array function only accepts 1 Float32Array with 6 or 16 elements.");
 | 
| -    assert_throws(new TypeError(), function() { DOMMatrixReadOnly.fromFloat64Array(new Float64Array(65536)); },
 | 
| +    assert_throws(new TypeError(), () => { DOMMatrixReadOnly.fromFloat64Array(new Float64Array(65536)); },
 | 
|              "fromFloat64Array function only accepts 1 Float64Array with 6 or 16 elements.");
 | 
|  }, "DOMMatrixReadOnly fromFloat*Array - invalid array size");
 | 
|  
 | 
| +test(() => {
 | 
| +  var matrix = DOMMatrixReadOnly.fromMatrix();
 | 
| +  assert_identity_2d_matrix(matrix);
 | 
| +}, "DOMMatrixReadOnly.fromMatrix() with no parameter.");
 | 
| +
 | 
| +test(() => {
 | 
| +  var matrix = DOMMatrixReadOnly.fromMatrix(null);
 | 
| +  assert_identity_2d_matrix(matrix);
 | 
| +}, "DOMMatrixReadOnly.fromMatrix() with null.");
 | 
| +
 | 
| +test(() => {
 | 
| +  var matrix = DOMMatrixReadOnly.fromMatrix(undefined);
 | 
| +  assert_identity_2d_matrix(matrix);
 | 
| +}, "DOMMatrixReadOnly.fromMatrix() with undefined.");
 | 
| +
 | 
| +test(() => {
 | 
| +  var matrix = DOMMatrixReadOnly.fromMatrix({});
 | 
| +  assert_identity_2d_matrix(matrix);
 | 
| +}, "DOMMatrixReadOnly.fromMatrix() with empty object.");
 | 
| +
 | 
| +test(() => {
 | 
| +  var matrix = DOMMatrixReadOnly.fromMatrix({a: 1, b: 2, c: 3, d: 4, e: 5, f: 6});
 | 
| +  assert_2d_matrix_equals(matrix, {
 | 
| +      m11: 1, m12: 2,
 | 
| +      m21: 3, m22: 4,
 | 
| +      m41: 5, m42: 6,
 | 
| +      isIdentity: false
 | 
| +  });
 | 
| +}, "DOMMatrixReadOnly.fromMatrix({a: 1, b: 2, c: 3, d: 4, e: 5, f: 6}) should create a 2D DOMMatrixReadOnly.");
 | 
| +
 | 
| +test(() => {
 | 
| +  var matrix = DOMMatrixReadOnly.fromMatrix({m11: 1, m22: 2, m33: 3, m44: 4, m23: 5, m43: 6});
 | 
| +  assert_3d_matrix_equals(matrix, {
 | 
| +      m11: 1, m12: 0, m13: 0, m14: 0,
 | 
| +      m21: 0, m22: 2, m23: 5, m24: 0,
 | 
| +      m31: 0, m32: 0, m33: 3, m34: 0,
 | 
| +      m41: 0, m42: 0, m43: 6, m44: 4,
 | 
| +      isIdentity: false
 | 
| +  });
 | 
| +}, "DOMMatrixReadOnly.fromMatrix({m11: 1, m22: 2, m33: 3, m44: 4, m23: 5, m43: 6}) should create a 3D DOMMatrixReadOnly.");
 | 
| +
 | 
| +test(() => {
 | 
| +  var matrix = DOMMatrixReadOnly.fromMatrix({a: 7, c: 9});
 | 
| +  assert_2d_matrix_equals(matrix, {
 | 
| +      m11: 7, m12: 0,
 | 
| +      m21: 9, m22: 1,
 | 
| +      m41: 0, m42: 0,
 | 
| +      isIdentity: false
 | 
| +  });
 | 
| +}, "If 2d related properties don't be set, should set to fallback.");
 | 
| +
 | 
| +test(() => {
 | 
| +  var matrix = DOMMatrixReadOnly.fromMatrix({
 | 
| +      m11: NaN, m12: NaN, m13: NaN, m14: NaN,
 | 
| +      m21: NaN, m22: NaN, m23: NaN, m24: NaN,
 | 
| +      m31: NaN, m32: NaN, m33: NaN, m34: NaN,
 | 
| +      m41: NaN, m42: NaN, m43: NaN, m44: NaN,
 | 
| +      is2D: false
 | 
| +  });
 | 
| +  assert_equals(matrix.a, matrix.m11);
 | 
| +  assert_equals(matrix.b, matrix.m12);
 | 
| +  assert_equals(matrix.c, matrix.m21);
 | 
| +  assert_equals(matrix.d, matrix.m22);
 | 
| +  assert_equals(matrix.e, matrix.m41);
 | 
| +  assert_equals(matrix.f, matrix.m42);
 | 
| +  assert_3d_matrix_equals(matrix, {
 | 
| +      m11: NaN, m12: NaN, m13: NaN, m14: NaN,
 | 
| +      m21: NaN, m22: NaN, m23: NaN, m24: NaN,
 | 
| +      m31: NaN, m32: NaN, m33: NaN, m34: NaN,
 | 
| +      m41: NaN, m42: NaN, m43: NaN, m44: NaN,
 | 
| +      isIdentity: false, is2D: false
 | 
| +  });
 | 
| +}, "DOMMatrixReadOnly.fromMatrix(): NaN test");
 | 
| +
 | 
| +test(() => {
 | 
| +  assert_throws(new TypeError(), () => {
 | 
| +        DOMMatrixReadOnly.fromMatrix({a: 1, b: 2, m33: 3, m44: 4, is2D: true});
 | 
| +      }, "The 'is2D' property is set to true but the input matrix is 3d matrix.");
 | 
| +  assert_throws(new TypeError(), () => {
 | 
| +        DOMMatrixReadOnly.fromMatrix({a: 1, b: 2, m11: 3});
 | 
| +      }, "The 'a' property should equal the 'm11' property.");
 | 
| +}, "DOMMatrixReadOnly.fromMatrix(): Exception test.");
 | 
| +
 | 
|  </script>
 | 
|  </body>
 | 
|  </html>
 | 
| 
 |