Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Unified Diff: src/compiler.cc

Issue 2494043002: [debugger,compiler] do not recompile already compiled inner functions. (Closed)
Patch Set: do not log Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | test/debugger/regress/regress-5575-1.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/compiler.cc
diff --git a/src/compiler.cc b/src/compiler.cc
index 05ca9bb349757fa9d1759d2112209c91bdd69e9c..7cfea6d8665193b579d607dbce8583afe8fa5d27 100644
--- a/src/compiler.cc
+++ b/src/compiler.cc
@@ -1591,7 +1591,15 @@ Handle<SharedFunctionInfo> Compiler::GetSharedFunctionInfo(
RuntimeCallTimerScope runtimeTimer(isolate, &RuntimeCallStats::CompileCode);
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.compile"), "V8.CompileCode");
- if (!literal->ShouldEagerCompile()) {
+ if (result->is_compiled()) {
+ // If this inner function is already compiled, we don't need to compile
+ // again. When compiling for debug, we are not interested in having debug
+ // break slots in inner functions, neither for setting break points nor
+ // for revealing inner functions.
+ // This is especially important for generators. We must not replace the
+ // code for generators, as there may be suspended generator objects.
+ return result;
+ } else if (!literal->ShouldEagerCompile()) {
info.SetCode(isolate->builtins()->CompileLazy());
Scope* outer_scope = literal->scope()->GetOuterScopeWithContext();
if (outer_scope) {
« no previous file with comments | « no previous file | test/debugger/regress/regress-5575-1.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698