diff --git a/deps/v8/src/api.cc b/deps/v8/src/api.cc index 853bd50f2195a4..f7d3a1db0f1c22 100644 --- a/deps/v8/src/api.cc +++ b/deps/v8/src/api.cc @@ -241,7 +241,7 @@ void i::FatalProcessOutOfMemory(const char* location) { // When V8 cannot allocated memory FatalProcessOutOfMemory is called. // The default fatal error handler is called and execution is stopped. -void i::V8::FatalProcessOutOfMemory(const char* location, bool take_snapshot) { +void i::V8::FatalProcessOutOfMemory(const char* location, bool is_heap_oom) { i::Isolate* isolate = i::Isolate::Current(); char last_few_messages[Heap::kTraceRingBufferSize + 1]; char js_stacktrace[Heap::kStacktraceBufferSize + 1]; @@ -303,7 +303,9 @@ void i::V8::FatalProcessOutOfMemory(const char* location, bool take_snapshot) { PrintF("\n<--- Last few GCs --->\n%s\n", first_newline); PrintF("\n<--- JS stacktrace --->\n%s\n", js_stacktrace); } - Utils::ApiCheck(false, location, "Allocation failed - process out of memory"); + Utils::ApiCheck(false, location, is_heap_oom + ? "Allocation failed - JavaScript heap out of memory" + : "Allocation failed - process out of memory"); // If the fatal error handler returns, we stop execution. FATAL("API fatal error handler returned after process out of memory"); } diff --git a/deps/v8/src/heap/heap.cc b/deps/v8/src/heap/heap.cc index c3f56ac4c52f4a..2b5ff9cd1aeaac 100644 --- a/deps/v8/src/heap/heap.cc +++ b/deps/v8/src/heap/heap.cc @@ -4018,8 +4018,7 @@ AllocationResult Heap::AllocateUninitializedFixedDoubleArray( AllocationResult Heap::AllocateRawFixedDoubleArray(int length, PretenureFlag pretenure) { if (length < 0 || length > FixedDoubleArray::kMaxLength) { - v8::internal::Heap::FatalProcessOutOfMemory("invalid array length", - kDoubleAligned); + v8::internal::Heap::FatalProcessOutOfMemory("invalid array length", true); } int size = FixedDoubleArray::SizeFor(length); AllocationSpace space = SelectSpace(pretenure); @@ -5648,9 +5647,8 @@ void Heap::CompactRetainedMaps(ArrayList* retained_maps) { if (new_length != length) retained_maps->SetLength(new_length); } - -void Heap::FatalProcessOutOfMemory(const char* location, bool take_snapshot) { - v8::internal::V8::FatalProcessOutOfMemory(location, take_snapshot); +void Heap::FatalProcessOutOfMemory(const char* location, bool is_heap_oom) { + v8::internal::V8::FatalProcessOutOfMemory(location, is_heap_oom); } #ifdef DEBUG diff --git a/deps/v8/src/heap/heap.h b/deps/v8/src/heap/heap.h index 94574535619552..77c10b24d2abe6 100644 --- a/deps/v8/src/heap/heap.h +++ b/deps/v8/src/heap/heap.h @@ -568,7 +568,7 @@ class Heap { static inline bool IsOneByte(T t, int chars); static void FatalProcessOutOfMemory(const char* location, - bool take_snapshot = false); + bool is_heap_oom = false); static bool RootIsImmortalImmovable(int root_index); diff --git a/deps/v8/src/heap/mark-compact.cc b/deps/v8/src/heap/mark-compact.cc index e537689c4a5ca4..0aed77584e71b5 100644 --- a/deps/v8/src/heap/mark-compact.cc +++ b/deps/v8/src/heap/mark-compact.cc @@ -1727,8 +1727,8 @@ class MarkCompactCollector::EvacuateNewSpaceVisitor final compaction_spaces_->Get(OLD_SPACE)->AllocateRaw(size_in_bytes, alignment); if (allocation.IsRetry()) { - FatalProcessOutOfMemory( - "MarkCompactCollector: semi-space copy, fallback in old gen\n"); + v8::internal::Heap::FatalProcessOutOfMemory( + "MarkCompactCollector: semi-space copy, fallback in old gen", true); } return allocation; } diff --git a/deps/v8/src/v8.h b/deps/v8/src/v8.h index 6016ef1419ff02..a1b18b20d6c05b 100644 --- a/deps/v8/src/v8.h +++ b/deps/v8/src/v8.h @@ -21,7 +21,7 @@ class V8 : public AllStatic { // Report process out of memory. Implementation found in api.cc. // This function will not return, but will terminate the execution. static void FatalProcessOutOfMemory(const char* location, - bool take_snapshot = false); + bool is_heap_oom = false); static void InitializePlatform(v8::Platform* platform); static void ShutdownPlatform();