Upgrade V8 to version 4.9.385.28

https://chromium.googlesource.com/v8/v8/+/4.9.385.28

FPIIM-449

Change-Id: I4b2e74289d4bf3667f2f3dc8aa2e541f63e26eb4
diff --git a/test/cctest/heap/heap-tester.h b/test/cctest/heap/heap-tester.h
new file mode 100644
index 0000000..0a0860b
--- /dev/null
+++ b/test/cctest/heap/heap-tester.h
@@ -0,0 +1,86 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef HEAP_HEAP_TESTER_H_
+#define HEAP_HEAP_TESTER_H_
+
+#include "src/handles.h"
+#include "src/heap/spaces.h"
+
+// Tests that should have access to private methods of {v8::internal::Heap}.
+// Those tests need to be defined using HEAP_TEST(Name) { ... }.
+#define HEAP_TEST_METHODS(V)                              \
+  V(CompactionFullAbortedPage)                            \
+  V(CompactionPartiallyAbortedPage)                       \
+  V(CompactionPartiallyAbortedPageIntraAbortedPointers)   \
+  V(CompactionPartiallyAbortedPageWithStoreBufferEntries) \
+  V(CompactionSpaceDivideMultiplePages)                   \
+  V(CompactionSpaceDivideSinglePage)                      \
+  V(GCFlags)                                              \
+  V(MarkCompactCollector)                                 \
+  V(NoPromotion)                                          \
+  V(NumberStringCacheSize)                                \
+  V(ObjectGroups)                                         \
+  V(Promotion)                                            \
+  V(Regression39128)                                      \
+  V(ResetWeakHandle)                                      \
+  V(StressHandles)                                        \
+  V(TestMemoryReducerSampleJsCalls)                       \
+  V(TestSizeOfObjects)                                    \
+  V(WriteBarriersInCopyJSObject)
+
+
+#define HEAP_TEST(Name)                                                       \
+  CcTest register_test_##Name(v8::internal::HeapTester::Test##Name, __FILE__, \
+                              #Name, NULL, true, true);                       \
+  void v8::internal::HeapTester::Test##Name()
+
+
+#define THREADED_HEAP_TEST(Name)                                             \
+  RegisterThreadedTest register_##Name(v8::internal::HeapTester::Test##Name, \
+                                       #Name);                               \
+  /* */ HEAP_TEST(Name)
+
+
+namespace v8 {
+namespace internal {
+
+class HeapTester {
+ public:
+#define DECLARE_STATIC(Name) static void Test##Name();
+
+  HEAP_TEST_METHODS(DECLARE_STATIC)
+#undef HEAP_TEST_METHODS
+
+  /* test-alloc.cc */
+  static AllocationResult AllocateAfterFailures();
+  static Handle<Object> TestAllocateAfterFailures();
+
+  /* test-api.cc */
+  static void ResetWeakHandle(bool global_gc);
+
+  /* test-spaces.cc */
+  static CompactionSpaceCollection** InitializeCompactionSpaces(Heap* heap,
+                                                                int num_spaces);
+  static void DestroyCompactionSpaces(CompactionSpaceCollection** spaces,
+                                      int num_spaces);
+  static void MergeCompactionSpaces(PagedSpace* space,
+                                    CompactionSpaceCollection** spaces,
+                                    int num_spaces);
+  static void AllocateInCompactionSpaces(CompactionSpaceCollection** spaces,
+                                         AllocationSpace id, int num_spaces,
+                                         int num_objects, int object_size);
+  static void CompactionStats(CompactionSpaceCollection** spaces,
+                              AllocationSpace id, int num_spaces,
+                              intptr_t* capacity, intptr_t* size);
+  static void TestCompactionSpaceDivide(int num_additional_objects,
+                                        int object_size,
+                                        int num_compaction_spaces,
+                                        int additional_capacity_in_bytes);
+};
+
+}  // namespace internal
+}  // namespace v8
+
+#endif  // HEAP_HEAP_TESTER_H_