Index: src/compiler.cc |
diff --git a/src/compiler.cc b/src/compiler.cc |
index 8fac53e970322fee813cdfbd3e05cb07ef7a6239..992ed4e82dc93c006a4371cadc70aeb58f4e8da7 100644 |
--- a/src/compiler.cc |
+++ b/src/compiler.cc |
@@ -23,6 +23,7 @@ |
#include "src/frames-inl.h" |
#include "src/full-codegen/full-codegen.h" |
#include "src/globals.h" |
+#include "src/heap/heap.h" |
#include "src/interpreter/interpreter.h" |
#include "src/isolate-inl.h" |
#include "src/log-inl.h" |
@@ -705,6 +706,15 @@ bool GetOptimizedCodeLater(CompilationJob* job) { |
return false; |
} |
+ if (isolate->heap()->HighMemoryPressure()) { |
+ if (FLAG_trace_concurrent_recompilation) { |
+ PrintF(" ** High memory pressure, will retry optimizing "); |
+ info->closure()->ShortPrint(); |
+ PrintF(" later.\n"); |
+ } |
+ return false; |
+ } |
+ |
// All handles below this point will be allocated in a deferred handle scope |
// that is detached and handed off to the background thread when we return. |
CompilationHandleScope handle_scope(info); |