diff --git a/DEPS b/DEPS
index 45ab0dd..a8485873 100644
--- a/DEPS
+++ b/DEPS
@@ -44,7 +44,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
-  'v8_revision': '3fdf5b06b9ebe5bc3b6c30670a75da5c3a628d2e',
+  'v8_revision': '95967e6f6f7c0365760faa99674557cf3fa66259',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling swarming_client
   # and whatever else without interference from each other.
diff --git a/chromeos/CHROMEOS_LKGM b/chromeos/CHROMEOS_LKGM
index 497077c..c20c3b2 100644
--- a/chromeos/CHROMEOS_LKGM
+++ b/chromeos/CHROMEOS_LKGM
@@ -1 +1 @@
-9140.0.0
\ No newline at end of file
+9145.0.0
\ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations
index 016eb397..9edd546 100644
--- a/third_party/WebKit/LayoutTests/TestExpectations
+++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -109,8 +109,9 @@
 crbug.com/646176 virtual/spinvalidation/fast/layers/remove-layer-with-nested-stacking.html [ Pass ]
 crbug.com/646176 virtual/spinvalidation/printing/fixed-positioned-scrolled.html [ Pass ]
 crbug.com/646176 virtual/spinvalidation/printing/overflow-auto.html [ Pass ]
-crbug.com/646176 virtual/spinvalidation/css3/filters/effect-reference-rename.html [ Pass ]
-crbug.com/646176 virtual/spinvalidation/css3/filters/effect-reference-rename-2.html [ Pass ]
+# The below two are marked [ Failure Pass ] below
+# crbug.com/646176 virtual/spinvalidation/css3/filters/effect-reference-rename.html [ Pass ]
+# crbug.com/646176 virtual/spinvalidation/css3/filters/effect-reference-rename-2.html [ Pass ]
 
 crbug.com/673003 virtual/spinvalidation/paint/invalidation/svg/marker-viewBox-changes.svg [ Pass Failure ]
 crbug.com/673003 virtual/spinvalidation/paint/invalidation/outline-clip-change.html [ Pass Failure ]
diff --git a/third_party/WebKit/LayoutTests/fast/dom/geometry-interfaces-dom-matrix-transformPoint.html b/third_party/WebKit/LayoutTests/fast/dom/geometry-interfaces-dom-matrix-transformPoint.html
index 1463a00..dac3bf5 100644
--- a/third_party/WebKit/LayoutTests/fast/dom/geometry-interfaces-dom-matrix-transformPoint.html
+++ b/third_party/WebKit/LayoutTests/fast/dom/geometry-interfaces-dom-matrix-transformPoint.html
@@ -7,96 +7,96 @@
 test(function() {
   var matrix2d = new DOMMatrixReadOnly([1, 2, 3, 4, 5, 6]);
   var point = matrix2d.transformPoint();
-  assert_point_equals(point, new DOMPoint(5, 6, 0, 1));
+  assert_dom_point_equals(point, new DOMPoint(5, 6, 0, 1));
 }, "DOMMatrixReadOnly transformPoint() - 2d matrix ");
 
 test(function() {
   var matrix3d = new DOMMatrixReadOnly([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]);
   var point = matrix3d.transformPoint();
-  assert_point_equals(point, new DOMPoint(13, 14, 15, 16));
+  assert_dom_point_equals(point, new DOMPoint(13, 14, 15, 16));
 }, "DOMMatrixReadOnly transformPoint() - 3d matrix");
 
 test(function() {
   var matrix2d = new DOMMatrixReadOnly([2, 0, 0, 2, 10, 10]);
   var point = matrix2d.transformPoint(new DOMPoint(5));
-  assert_point_equals(point, new DOMPoint(20, 10, 0, 1));
+  assert_dom_point_equals(point, new DOMPoint(20, 10, 0, 1));
 }, "DOMMatrixReadOnly transformPoint(DOMPoint(x)) - 2d matrix");
 
 test(function() {
   var matrix2d = new DOMMatrixReadOnly([2, 0, 0, 2, 10, 10]);
   var point = matrix2d.transformPoint(new DOMPoint(5, 0, 0, 0));
-  assert_point_equals(point, new DOMPoint(10, 0, 0, 0));
+  assert_dom_point_equals(point, new DOMPoint(10, 0, 0, 0));
 }, "DOMMatrixReadOnly transformPoint(DOMPoint(x, 0, 0, 0)) - 2d matrix");
 
 test(function() {
   var matrix2d = new DOMMatrixReadOnly([2, 0, 0, 2, 10, 10]);
   var point = matrix2d.transformPoint(new DOMPoint(5, 4));
-  assert_point_equals(point, new DOMPoint(20, 18, 0, 1));
+  assert_dom_point_equals(point, new DOMPoint(20, 18, 0, 1));
 }, "DOMMatrixReadOnly transformPoint(DOMPoint(x, y)) - 2d matrix");
 
 test(function() {
   var matrix2d = new DOMMatrixReadOnly([2, 0, 0, 2, 10, 10]);
   var point = matrix2d.transformPoint(new DOMPoint(5, 4, 0, 0));
-  assert_point_equals(point, new DOMPoint(10, 8, 0, 0));
+  assert_dom_point_equals(point, new DOMPoint(10, 8, 0, 0));
 }, "DOMMatrixReadOnly transformPoint(DOMPoint(x, y, 0, 0)) - 2d matrix");
 
 test(function() {
   var matrix2d = new DOMMatrixReadOnly([2, 0, 0, 2, 10, 10]);
   var point = matrix2d.transformPoint(new DOMPoint(5, 4, 3));
-  assert_point_equals(point, new DOMPoint(20, 18, 3, 1));
+  assert_dom_point_equals(point, new DOMPoint(20, 18, 3, 1));
 }, "DOMMatrixReadOnly transformPoint(DOMPoint(x, y, z)) - 2d matrix");
 
 test(function() {
   var matrix2d = new DOMMatrixReadOnly([2, 0, 0, 2, 10, 10]);
   var point = matrix2d.transformPoint(new DOMPoint(5, 4, 3, 0));
-  assert_point_equals(point, new DOMPoint(10, 8, 3, 0));
+  assert_dom_point_equals(point, new DOMPoint(10, 8, 3, 0));
 }, "DOMMatrixReadOnly transformPoint(DOMPoint(x, y, z, 0)) - 2d matrix");
 
 test(function() {
   var matrix2d = new DOMMatrixReadOnly([2, 0, 0, 2, 10, 10]);
   var point = matrix2d.transformPoint(new DOMPoint(5, 4, 14, 5));
-  assert_point_equals(point, new DOMPoint(60, 58, 14, 5));
+  assert_dom_point_equals(point, new DOMPoint(60, 58, 14, 5));
 }, "DOMMatrixReadOnly transformPoint(DOMPoint(x, y, z, w)) - 2d matrix");
 
 test(function() {
   var matrix3d = new DOMMatrixReadOnly([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]);
   var point = matrix3d.transformPoint(new DOMPoint(5));
-  assert_point_equals(point, new DOMPoint(18, 24, 30, 36));
+  assert_dom_point_equals(point, new DOMPoint(18, 24, 30, 36));
 }, "DOMMatrixReadOnly transformPoint(DOMPoint(x)) - 3d matrix");
 
 test(function() {
   var matrix3d = new DOMMatrixReadOnly([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]);
   var point = matrix3d.transformPoint(new DOMPoint(5, 0, 0, 0));
-  assert_point_equals(point, new DOMPoint(5, 10, 15, 20));
+  assert_dom_point_equals(point, new DOMPoint(5, 10, 15, 20));
 }, "DOMMatrixReadOnly transformPoint(DOMPoint(x, 0, 0, 0)) - 3d matrix");
 
 test(function() {
   var matrix3d = new DOMMatrixReadOnly([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]);
   var point = matrix3d.transformPoint(new DOMPoint(5, 4));
-  assert_point_equals(point, new DOMPoint(38, 48, 58, 68));
+  assert_dom_point_equals(point, new DOMPoint(38, 48, 58, 68));
 }, "DOMMatrixReadOnly transformPoint(DOMPoint(x, y)) - 3d matrix");
 
 test(function() {
   var matrix3d = new DOMMatrixReadOnly([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]);
   var point = matrix3d.transformPoint(new DOMPoint(5, 4, 0, 0));
-  assert_point_equals(point, new DOMPoint(25, 34, 43, 52));
+  assert_dom_point_equals(point, new DOMPoint(25, 34, 43, 52));
 }, "DOMMatrixReadOnly transformPoint(DOMPoint(x, y, 0, 0)) - 3d matrix");
 
 test(function() {
   var matrix3d = new DOMMatrixReadOnly([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]);
   var point = matrix3d.transformPoint(new DOMPoint(5, 4, 3));
-  assert_point_equals(point, new DOMPoint(65, 78, 91, 104));
+  assert_dom_point_equals(point, new DOMPoint(65, 78, 91, 104));
 }, "DOMMatrixReadOnly transformPoint(DOMPoint(x, y, z)) - 3d matrix");
 
 test(function() {
   var matrix3d = new DOMMatrixReadOnly([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]);
   var point = matrix3d.transformPoint(new DOMPoint(5, 4, 3, 0));
-  assert_point_equals(point, new DOMPoint(52, 64, 76, 88));
+  assert_dom_point_equals(point, new DOMPoint(52, 64, 76, 88));
 }, "DOMMatrixReadOnly transformPoint(DOMPoint(x, y, z, 0)) - 3d matrix");
 
 test(function() {
   var matrix3d = new DOMMatrixReadOnly([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]);
   var point = matrix3d.transformPoint(new DOMPoint(5, 4, 14, 5));
-  assert_point_equals(point, new DOMPoint(216, 244, 272, 300));
+  assert_dom_point_equals(point, new DOMPoint(216, 244, 272, 300));
 }, "DOMMatrixReadOnly transformPoint(DOMPoint(x, y, z, w)) - 3d matrix");
 </script>
diff --git a/third_party/WebKit/LayoutTests/fast/dom/geometry-interfaces-dom-point.html b/third_party/WebKit/LayoutTests/fast/dom/geometry-interfaces-dom-point.html
index 4b59f95..89f353b3 100644
--- a/third_party/WebKit/LayoutTests/fast/dom/geometry-interfaces-dom-point.html
+++ b/third_party/WebKit/LayoutTests/fast/dom/geometry-interfaces-dom-point.html
@@ -24,31 +24,6 @@
 }, 'DOMPoint constructor with x, y, z, w parameters');
 
 test(() => {
-  var point = new DOMPoint({x: 2});
-  assert_dom_point_equals(point, [2, 0, 0, 1]);
-}, 'DOMPoint constructor with x parameter');
-
-test(() => {
-  var point = new DOMPoint({y: 2});
-  assert_dom_point_equals(point, [0, 2, 0, 1]);
-}, 'DOMPoint constructor with y parameter');
-
-test(() => {
-  var point = new DOMPoint({z: 2});
-  assert_dom_point_equals(point, [0, 0, 2, 1]);
-}, 'DOMPoint constructor with z parameter');
-
-test(() => {
-  var point = new DOMPoint({w: 2});
-  assert_dom_point_equals(point, [0, 0, 0, 2]);
-}, 'DOMPoint constructor with w parameter');
-
-test(() => {
-  var point = new DOMPoint({x: 2, y: 3, z: 4, w: 5});
-  assert_dom_point_equals(point, [2, 3, 4, 5]);
-}, 'DOMPoint constructor with x, y, z, w parameters');
-
-test(() => {
   var point = new DOMPoint();
   assert_dom_point_equals(point, [0, 0, 0, 1]);
 }, 'DOMPoint constructor without parameter');
diff --git a/third_party/WebKit/LayoutTests/fast/dom/resources/geometry-interfaces-test-helpers.js b/third_party/WebKit/LayoutTests/fast/dom/resources/geometry-interfaces-test-helpers.js
index 8ca48fc..7665b4d9 100644
--- a/third_party/WebKit/LayoutTests/fast/dom/resources/geometry-interfaces-test-helpers.js
+++ b/third_party/WebKit/LayoutTests/fast/dom/resources/geometry-interfaces-test-helpers.js
@@ -64,18 +64,20 @@
   assert_array_almost_equals(actual.toFloat64Array(), expected.toFloat64Array());
 }
 
-function assert_point_equals(actual, expected) {
-  assert_equals(actual.x, expected.x, "point equality: x differs");
-  assert_equals(actual.y, expected.y, "point equality: y differs");
-  assert_equals(actual.z, expected.z, "point equality: z differs");
-  assert_equals(actual.w, expected.w, "point equality: w differs");
-}
-
 function assert_dom_point_equals(actual, expected) {
-  assert_true(Array.isArray(expected));
-  assert_equals(expected.length, 4);
-  assert_equals(actual.x, expected[0], "point equality: x differs");
-  assert_equals(actual.y, expected[1], "point equality: y differs");
-  assert_equals(actual.z, expected[2], "point equality: z differs");
-  assert_equals(actual.w, expected[3], "point equality: w differs");
-}
+  assert_true(actual instanceof DOMPointReadOnly);
+  if(Array.isArray(expected)) {
+    assert_equals(expected.length, 4);
+    assert_equals(actual.x, expected[0], "point equality: x differs");
+    assert_equals(actual.y, expected[1], "point equality: y differs");
+    assert_equals(actual.z, expected[2], "point equality: z differs");
+    assert_equals(actual.w, expected[3], "point equality: w differs");
+  } else if(expected instanceof DOMPointReadOnly) {
+    assert_equals(actual.x, expected.x, "point equality: x differs");
+    assert_equals(actual.y, expected.y, "point equality: y differs");
+    assert_equals(actual.z, expected.z, "point equality: z differs");
+    assert_equals(actual.w, expected.w, "point equality: w differs");
+  } else {
+    assert_unreached();
+  }
+}
\ No newline at end of file
diff --git a/third_party/WebKit/Source/core/dom/DOMPoint.cpp b/third_party/WebKit/Source/core/dom/DOMPoint.cpp
index 2a72af35..b3138485 100644
--- a/third_party/WebKit/Source/core/dom/DOMPoint.cpp
+++ b/third_party/WebKit/Source/core/dom/DOMPoint.cpp
@@ -8,10 +8,6 @@
 
 namespace blink {
 
-DOMPoint* DOMPoint::create(const DOMPointInit& point) {
-  return new DOMPoint(point.x(), point.y(), point.z(), point.w());
-}
-
 DOMPoint* DOMPoint::create(double x, double y, double z, double w) {
   return new DOMPoint(x, y, z, w);
 }
diff --git a/third_party/WebKit/Source/core/dom/DOMPoint.h b/third_party/WebKit/Source/core/dom/DOMPoint.h
index 1508bfe9..95d5b2609 100644
--- a/third_party/WebKit/Source/core/dom/DOMPoint.h
+++ b/third_party/WebKit/Source/core/dom/DOMPoint.h
@@ -16,7 +16,6 @@
   DEFINE_WRAPPERTYPEINFO();
 
  public:
-  static DOMPoint* create(const DOMPointInit&);
   static DOMPoint* create(double x, double y, double z = 0, double w = 1);
   static DOMPoint* fromPoint(const DOMPointInit&);
 
diff --git a/third_party/WebKit/Source/core/dom/DOMPoint.idl b/third_party/WebKit/Source/core/dom/DOMPoint.idl
index e521dc3..737f446 100644
--- a/third_party/WebKit/Source/core/dom/DOMPoint.idl
+++ b/third_party/WebKit/Source/core/dom/DOMPoint.idl
@@ -5,9 +5,6 @@
 // https://dev.w3.org/fxtf/geometry/#DOMPoint
 
 [
-    // FIXME: The point argument is optional in the spec:
-    // https://www.w3.org/Bugs/Public/show_bug.cgi?id=28108
-    Constructor(DOMPointInit point),
     Constructor(optional unrestricted double x = 0, optional unrestricted double y = 0,
                 optional unrestricted double z = 0, optional unrestricted double w = 1),
     // FIXME: Exposed=(Window,Worker)
diff --git a/third_party/WebKit/Source/modules/compositorworker/WindowAnimationWorklet.cpp b/third_party/WebKit/Source/modules/compositorworker/WindowAnimationWorklet.cpp
index 15a48034..dcd582d 100644
--- a/third_party/WebKit/Source/modules/compositorworker/WindowAnimationWorklet.cpp
+++ b/third_party/WebKit/Source/modules/compositorworker/WindowAnimationWorklet.cpp
@@ -31,6 +31,8 @@
 
 // static
 Worklet* WindowAnimationWorklet::animationWorklet(DOMWindow& window) {
+  if (!window.frame())
+    return nullptr;
   return from(toLocalDOMWindow(window))
       .animationWorklet(toLocalDOMWindow(window));
 }