summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common.gypi2
-rw-r--r--deps/v8/src/snapshot/serializer.cc8
-rw-r--r--deps/v8/src/snapshot/serializer.h1
-rw-r--r--deps/v8/src/snapshot/startup-serializer.cc11
4 files changed, 17 insertions, 5 deletions
diff --git a/common.gypi b/common.gypi
index ca1f853172..10b4ecfc52 100644
--- a/common.gypi
+++ b/common.gypi
@@ -39,7 +39,7 @@
# Reset this number to 0 on major V8 upgrades.
# Increment by one for each non-official patch applied to deps/v8.
- 'v8_embedder_string': '-node.12',
+ 'v8_embedder_string': '-node.13',
##### V8 defaults for Node.js #####
diff --git a/deps/v8/src/snapshot/serializer.cc b/deps/v8/src/snapshot/serializer.cc
index 9eefbe2c48..b2dd6a33e7 100644
--- a/deps/v8/src/snapshot/serializer.cc
+++ b/deps/v8/src/snapshot/serializer.cc
@@ -115,10 +115,12 @@ void Serializer::SerializeRootObject(Object object) {
}
#ifdef DEBUG
-void Serializer::PrintStack() {
+void Serializer::PrintStack() { PrintStack(std::cout); }
+
+void Serializer::PrintStack(std::ostream& out) {
for (const auto o : stack_) {
- o.Print();
- PrintF("\n");
+ o.Print(out);
+ out << "\n";
}
}
#endif // DEBUG
diff --git a/deps/v8/src/snapshot/serializer.h b/deps/v8/src/snapshot/serializer.h
index c9e7fada80..b70c7fd45a 100644
--- a/deps/v8/src/snapshot/serializer.h
+++ b/deps/v8/src/snapshot/serializer.h
@@ -250,6 +250,7 @@ class Serializer : public SerializerDeserializer {
void PushStack(HeapObject o) { stack_.push_back(o); }
void PopStack() { stack_.pop_back(); }
void PrintStack();
+ void PrintStack(std::ostream&);
#endif // DEBUG
SerializerReferenceMap* reference_map() { return &reference_map_; }
diff --git a/deps/v8/src/snapshot/startup-serializer.cc b/deps/v8/src/snapshot/startup-serializer.cc
index 62a786f984..6ad2efc18b 100644
--- a/deps/v8/src/snapshot/startup-serializer.cc
+++ b/deps/v8/src/snapshot/startup-serializer.cc
@@ -71,7 +71,16 @@ bool IsUnexpectedCodeObject(Isolate* isolate, HeapObject obj) {
#endif // DEBUG
void StartupSerializer::SerializeObject(HeapObject obj) {
- DCHECK(!obj.IsJSFunction());
+#ifdef DEBUG
+ if (obj.IsJSFunction()) {
+ v8::base::OS::PrintError("Reference stack:\n");
+ PrintStack(std::cerr);
+ obj.Print(std::cerr);
+ FATAL(
+ "JSFunction should be added through the context snapshot instead of "
+ "the isolate snapshot");
+ }
+#endif // DEBUG
DCHECK(!IsUnexpectedCodeObject(isolate(), obj));
if (SerializeHotObject(obj)) return;