summaryrefslogtreecommitdiff
path: root/deps/v8
diff options
context:
space:
mode:
authorMichaƫl Zasso <targos@protonmail.com>2017-06-20 17:06:59 +0200
committerMyles Borins <mylesborins@google.com>2017-08-01 15:23:16 -0500
commit5651a6f65b4d08abe61fcd61d1f349b7ca76712e (patch)
tree22a6cc2d2ef1981e59053a9f68d3cb99cbfe95f1 /deps/v8
parented30842440267d8b8c66cd5a315344dc9de855ee (diff)
downloadnode-new-5651a6f65b4d08abe61fcd61d1f349b7ca76712e.tar.gz
deps: backport c0f1ff2 from upstream V8
Original commit message: Fix GCC 7 build errors BUG=chromium:691681 R=franzih@chromium.org Change-Id: Id7e5698487f16dc217a804f6d3f24da7213c72b9 Reviewed-on: https://chromium-review.googlesource.com/530227 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#46045} Refs: https://github.com/nodejs/node/pull/13517 Fixes: https://github.com/nodejs/node/issues/10388 Refs: https://github.com/nodejs/node/pull/12392 PR-URL: https://github.com/nodejs/node/pull/14004 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'deps/v8')
-rw-r--r--deps/v8/BUILD.gn1
-rw-r--r--deps/v8/src/objects-body-descriptors.h2
-rw-r--r--deps/v8/src/objects-inl.h1
-rw-r--r--deps/v8/src/objects/hash-table-inl.h34
-rw-r--r--deps/v8/src/objects/hash-table.h20
-rw-r--r--deps/v8/src/v8.gyp1
6 files changed, 42 insertions, 17 deletions
diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn
index 80d6f34133..2060cb1981 100644
--- a/deps/v8/BUILD.gn
+++ b/deps/v8/BUILD.gn
@@ -1748,6 +1748,7 @@ v8_source_set("v8_base") {
"src/objects/dictionary.h",
"src/objects/frame-array-inl.h",
"src/objects/frame-array.h",
+ "src/objects/hash-table-inl.h",
"src/objects/hash-table.h",
"src/objects/intl-objects.cc",
"src/objects/intl-objects.h",
diff --git a/deps/v8/src/objects-body-descriptors.h b/deps/v8/src/objects-body-descriptors.h
index 499c48a930..3eb3bb539e 100644
--- a/deps/v8/src/objects-body-descriptors.h
+++ b/deps/v8/src/objects-body-descriptors.h
@@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public BodyDescriptorBase {
template <typename StaticVisitor>
static inline void IterateBody(HeapObject* obj, int object_size) {
- IterateBody(obj);
+ IterateBody<StaticVisitor>(obj);
}
static inline int SizeOf(Map* map, HeapObject* object) { return kSize; }
diff --git a/deps/v8/src/objects-inl.h b/deps/v8/src/objects-inl.h
index 406f49d996..9afd19c8ca 100644
--- a/deps/v8/src/objects-inl.h
+++ b/deps/v8/src/objects-inl.h
@@ -31,6 +31,7 @@
#include "src/lookup-cache-inl.h"
#include "src/lookup.h"
#include "src/objects.h"
+#include "src/objects/hash-table-inl.h"
#include "src/objects/literal-objects.h"
#include "src/objects/module-info.h"
#include "src/objects/regexp-match-info.h"
diff --git a/deps/v8/src/objects/hash-table-inl.h b/deps/v8/src/objects/hash-table-inl.h
new file mode 100644
index 0000000000..7b2db38495
--- /dev/null
+++ b/deps/v8/src/objects/hash-table-inl.h
@@ -0,0 +1,34 @@
+// Copyright 2017 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 V8_OBJECTS_HASH_TABLE_INL_H_
+#define V8_OBJECTS_HASH_TABLE_INL_H_
+
+#include "src/objects/hash-table.h"
+
+namespace v8 {
+namespace internal {
+
+template <typename Derived, typename Shape, typename Key>
+uint32_t HashTable<Derived, Shape, Key>::Hash(Key key) {
+ if (Shape::UsesSeed) {
+ return Shape::SeededHash(key, GetHeap()->HashSeed());
+ } else {
+ return Shape::Hash(key);
+ }
+}
+
+template <typename Derived, typename Shape, typename Key>
+uint32_t HashTable<Derived, Shape, Key>::HashForObject(Key key, Object* object) {
+ if (Shape::UsesSeed) {
+ return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
+ } else {
+ return Shape::HashForObject(key, object);
+ }
+}
+
+} // namespace internal
+} // namespace v8
+
+#endif // V8_OBJECTS_HASH_TABLE_INL_H_
diff --git a/deps/v8/src/objects/hash-table.h b/deps/v8/src/objects/hash-table.h
index f3c68a82c5..0eac3a2342 100644
--- a/deps/v8/src/objects/hash-table.h
+++ b/deps/v8/src/objects/hash-table.h
@@ -138,22 +138,10 @@ class HashTable : public HashTableBase {
public:
typedef Shape ShapeT;
- // Wrapper methods
- inline uint32_t Hash(Key key) {
- if (Shape::UsesSeed) {
- return Shape::SeededHash(key, GetHeap()->HashSeed());
- } else {
- return Shape::Hash(key);
- }
- }
-
- inline uint32_t HashForObject(Key key, Object* object) {
- if (Shape::UsesSeed) {
- return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
- } else {
- return Shape::HashForObject(key, object);
- }
- }
+ // Wrapper methods. Defined in src/objects/hash-table-inl.h
+ // to break a cycle with src/heap/heap.h
+ inline uint32_t Hash(Key key);
+ inline uint32_t HashForObject(Key key, Object* object);
// Returns a new HashTable object.
MUST_USE_RESULT static Handle<Derived> New(
diff --git a/deps/v8/src/v8.gyp b/deps/v8/src/v8.gyp
index e7e19f5059..8015a6bda6 100644
--- a/deps/v8/src/v8.gyp
+++ b/deps/v8/src/v8.gyp
@@ -1228,6 +1228,7 @@
'objects/dictionary.h',
'objects/frame-array.h',
'objects/frame-array-inl.h',
+ 'objects/hash-table-inl.h',
'objects/hash-table.h',
'objects/intl-objects.cc',
'objects/intl-objects.h',