OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/objects.h" | 5 #include "src/objects.h" |
6 | 6 |
7 #include <cmath> | 7 #include <cmath> |
8 #include <iomanip> | 8 #include <iomanip> |
9 #include <sstream> | 9 #include <sstream> |
10 | 10 |
(...skipping 11956 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11967 if (SharedFunctionInfo::cast(literals->get(i)) == candidate) { | 11967 if (SharedFunctionInfo::cast(literals->get(i)) == candidate) { |
11968 return true; | 11968 return true; |
11969 } | 11969 } |
11970 } | 11970 } |
11971 return false; | 11971 return false; |
11972 } | 11972 } |
11973 | 11973 |
11974 | 11974 |
11975 void JSFunction::MarkForOptimization() { | 11975 void JSFunction::MarkForOptimization() { |
11976 Isolate* isolate = GetIsolate(); | 11976 Isolate* isolate = GetIsolate(); |
11977 // Do not optimize if function contains break points. | |
11978 if (shared()->HasDebugInfo()) return; | |
11979 DCHECK(!IsOptimized()); | 11977 DCHECK(!IsOptimized()); |
11980 DCHECK(shared()->allows_lazy_compilation() || | 11978 DCHECK(shared()->allows_lazy_compilation() || |
11981 !shared()->optimization_disabled()); | 11979 !shared()->optimization_disabled()); |
11982 DCHECK(!shared()->HasDebugInfo()); | |
11983 set_code_no_write_barrier( | 11980 set_code_no_write_barrier( |
11984 isolate->builtins()->builtin(Builtins::kCompileOptimized)); | 11981 isolate->builtins()->builtin(Builtins::kCompileOptimized)); |
11985 // No write barrier required, since the builtin is part of the root set. | 11982 // No write barrier required, since the builtin is part of the root set. |
11986 } | 11983 } |
11987 | 11984 |
11988 | 11985 |
11989 void JSFunction::AttemptConcurrentOptimization() { | 11986 void JSFunction::AttemptConcurrentOptimization() { |
11990 Isolate* isolate = GetIsolate(); | 11987 Isolate* isolate = GetIsolate(); |
11991 if (!isolate->concurrent_recompilation_enabled() || | 11988 if (!isolate->concurrent_recompilation_enabled() || |
11992 isolate->bootstrapper()->IsActive()) { | 11989 isolate->bootstrapper()->IsActive()) { |
(...skipping 7413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
19406 if (cell->value() != *new_value) { | 19403 if (cell->value() != *new_value) { |
19407 cell->set_value(*new_value); | 19404 cell->set_value(*new_value); |
19408 Isolate* isolate = cell->GetIsolate(); | 19405 Isolate* isolate = cell->GetIsolate(); |
19409 cell->dependent_code()->DeoptimizeDependentCodeGroup( | 19406 cell->dependent_code()->DeoptimizeDependentCodeGroup( |
19410 isolate, DependentCode::kPropertyCellChangedGroup); | 19407 isolate, DependentCode::kPropertyCellChangedGroup); |
19411 } | 19408 } |
19412 } | 19409 } |
19413 | 19410 |
19414 } // namespace internal | 19411 } // namespace internal |
19415 } // namespace v8 | 19412 } // namespace v8 |
OLD | NEW |