summaryrefslogtreecommitdiff
path: root/deps/v8/src/compiler/node-aux-data.h
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2017-02-14 11:27:26 +0100
committerMichaël Zasso <targos@protonmail.com>2017-02-22 15:55:42 +0100
commit7a77daf24344db7942e34c962b0f1ee729ab7af5 (patch)
treee7cbe7bf4e2f4b802a8f5bc18336c546cd6a0d7f /deps/v8/src/compiler/node-aux-data.h
parent5f08871ee93ea739148cc49e0f7679e33c70295a (diff)
downloadnode-new-7a77daf24344db7942e34c962b0f1ee729ab7af5.tar.gz
deps: update V8 to 5.6.326.55
PR-URL: https://github.com/nodejs/node/pull/10992 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Diffstat (limited to 'deps/v8/src/compiler/node-aux-data.h')
-rw-r--r--deps/v8/src/compiler/node-aux-data.h25
1 files changed, 13 insertions, 12 deletions
diff --git a/deps/v8/src/compiler/node-aux-data.h b/deps/v8/src/compiler/node-aux-data.h
index b50ff3885d..277ff18034 100644
--- a/deps/v8/src/compiler/node-aux-data.h
+++ b/deps/v8/src/compiler/node-aux-data.h
@@ -15,20 +15,20 @@ namespace compiler {
// Forward declarations.
class Node;
-template <class T>
+template <class T, T def()>
class NodeAuxData {
public:
explicit NodeAuxData(Zone* zone) : aux_data_(zone) {}
void Set(Node* node, T const& data) {
size_t const id = node->id();
- if (id >= aux_data_.size()) aux_data_.resize(id + 1);
+ if (id >= aux_data_.size()) aux_data_.resize(id + 1, def());
aux_data_[id] = data;
}
T Get(Node* node) const {
size_t const id = node->id();
- return (id < aux_data_.size()) ? aux_data_[id] : T();
+ return (id < aux_data_.size()) ? aux_data_[id] : def();
}
class const_iterator;
@@ -41,9 +41,8 @@ class NodeAuxData {
ZoneVector<T> aux_data_;
};
-
-template <class T>
-class NodeAuxData<T>::const_iterator {
+template <class T, T def()>
+class NodeAuxData<T, def>::const_iterator {
public:
typedef std::forward_iterator_tag iterator_category;
typedef int difference_type;
@@ -76,14 +75,16 @@ class NodeAuxData<T>::const_iterator {
size_t current_;
};
-template <class T>
-typename NodeAuxData<T>::const_iterator NodeAuxData<T>::begin() const {
- return typename NodeAuxData<T>::const_iterator(&aux_data_, 0);
+template <class T, T def()>
+typename NodeAuxData<T, def>::const_iterator NodeAuxData<T, def>::begin()
+ const {
+ return typename NodeAuxData<T, def>::const_iterator(&aux_data_, 0);
}
-template <class T>
-typename NodeAuxData<T>::const_iterator NodeAuxData<T>::end() const {
- return typename NodeAuxData<T>::const_iterator(&aux_data_, aux_data_.size());
+template <class T, T def()>
+typename NodeAuxData<T, def>::const_iterator NodeAuxData<T, def>::end() const {
+ return typename NodeAuxData<T, def>::const_iterator(&aux_data_,
+ aux_data_.size());
}
} // namespace compiler