ce69059
diff -up chromium-56.0.2924.87/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.gcc7 chromium-56.0.2924.87/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h
ce69059
--- chromium-56.0.2924.87/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.gcc7	2017-03-01 11:29:32.681142930 -0500
ce69059
+++ chromium-56.0.2924.87/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h	2017-03-01 11:30:19.396536499 -0500
ce69059
@@ -5,6 +5,7 @@
ce69059
 #include "platform/PlatformExport.h"
ce69059
 #include "wtf/ThreadSpecific.h"
ce69059
 
ce69059
+#include <functional>
ce69059
 #include <memory>
ce69059
 
ce69059
 namespace gpu {
54f615e
diff -up chromium-56.0.2924.87/v8/src/objects-body-descriptors.h.gcc7 chromium-56.0.2924.87/v8/src/objects-body-descriptors.h
54f615e
--- chromium-56.0.2924.87/v8/src/objects-body-descriptors.h.gcc7	2017-02-28 16:00:27.313172210 -0500
54f615e
+++ chromium-56.0.2924.87/v8/src/objects-body-descriptors.h	2017-02-28 16:00:46.016804708 -0500
54f615e
@@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public
54f615e
 
54f615e
   template <typename StaticVisitor>
54f615e
   static inline void IterateBody(HeapObject* obj, int object_size) {
54f615e
-    IterateBody(obj);
54f615e
+    IterateBody<StaticVisitor>(obj);
54f615e
   }
54f615e
 };
54f615e
 
54f615e
diff -up chromium-56.0.2924.87/v8/src/objects.h.gcc7 chromium-56.0.2924.87/v8/src/objects.h
54f615e
--- chromium-56.0.2924.87/v8/src/objects.h.gcc7	2017-02-28 15:58:27.368527968 -0500
54f615e
+++ chromium-56.0.2924.87/v8/src/objects.h	2017-02-28 15:59:25.868379455 -0500
54f615e
@@ -3531,22 +3531,10 @@ class HashTable : public HashTableBase {
54f615e
  public:
54f615e
   typedef Shape ShapeT;
54f615e
 
54f615e
-  // Wrapper methods
54f615e
-  inline uint32_t Hash(Key key) {
54f615e
-    if (Shape::UsesSeed) {
54f615e
-      return Shape::SeededHash(key, GetHeap()->HashSeed());
54f615e
-    } else {
54f615e
-      return Shape::Hash(key);
54f615e
-    }
54f615e
-  }
54f615e
-
54f615e
-  inline uint32_t HashForObject(Key key, Object* object) {
54f615e
-    if (Shape::UsesSeed) {
54f615e
-      return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
54f615e
-    } else {
54f615e
-      return Shape::HashForObject(key, object);
54f615e
-    }
54f615e
-  }
54f615e
+  // Wrapper methods.  Defined in src/objects-inl.h
54f615e
+  // to break a cycle with src/heap/heap.h.
54f615e
+  inline uint32_t Hash(Key key);
54f615e
+  inline uint32_t HashForObject(Key key, Object* object);
54f615e
 
54f615e
   // Returns a new HashTable object.
54f615e
   MUST_USE_RESULT static Handle<Derived> New(
54f615e
diff -up chromium-56.0.2924.87/v8/src/objects-inl.h.gcc7 chromium-56.0.2924.87/v8/src/objects-inl.h
54f615e
--- chromium-56.0.2924.87/v8/src/objects-inl.h.gcc7	2017-02-28 15:59:44.293016928 -0500
54f615e
+++ chromium-56.0.2924.87/v8/src/objects-inl.h	2017-02-28 16:00:18.187351116 -0500
54f615e
@@ -39,6 +39,25 @@
54f615e
 namespace v8 {
54f615e
 namespace internal {
54f615e
 
54f615e
+template <typename Derived, typename Shape, typename Key>
54f615e
+uint32_t HashTable<Derived, Shape, Key>::Hash(Key key) {
54f615e
+  if (Shape::UsesSeed) {
54f615e
+    return Shape::SeededHash(key, GetHeap()->HashSeed());
54f615e
+  } else {
54f615e
+    return Shape::Hash(key);
54f615e
+  }
54f615e
+}
54f615e
+
54f615e
+template <typename Derived, typename Shape, typename Key>
54f615e
+uint32_t HashTable<Derived, Shape, Key>::HashForObject(Key key,
54f615e
+                                                       Object* object) {
54f615e
+  if (Shape::UsesSeed) {
54f615e
+    return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
54f615e
+  } else {
54f615e
+    return Shape::HashForObject(key, object);
54f615e
+  }
54f615e
+}
54f615e
+
54f615e
 PropertyDetails::PropertyDetails(Smi* smi) {
54f615e
   value_ = smi->value();
54f615e
 }