| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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/v8.h" | 5 #include "src/v8.h" |
| 6 | 6 |
| 7 #include "src/api.h" | 7 #include "src/api.h" |
| 8 #include "src/arguments.h" | 8 #include "src/arguments.h" |
| 9 #include "src/bootstrapper.h" | 9 #include "src/bootstrapper.h" |
| 10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
| (...skipping 1862 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1873 | 1873 |
| 1874 static void EnsureFunctionHasDebugBreakSlots(Handle<JSFunction> function) { | 1874 static void EnsureFunctionHasDebugBreakSlots(Handle<JSFunction> function) { |
| 1875 if (function->code()->kind() == Code::FUNCTION && | 1875 if (function->code()->kind() == Code::FUNCTION && |
| 1876 function->code()->has_debug_break_slots()) { | 1876 function->code()->has_debug_break_slots()) { |
| 1877 // Nothing to do. Function code already had debug break slots. | 1877 // Nothing to do. Function code already had debug break slots. |
| 1878 return; | 1878 return; |
| 1879 } | 1879 } |
| 1880 // Make sure that the shared full code is compiled with debug | 1880 // Make sure that the shared full code is compiled with debug |
| 1881 // break slots. | 1881 // break slots. |
| 1882 if (!function->shared()->code()->has_debug_break_slots()) { | 1882 if (!function->shared()->code()->has_debug_break_slots()) { |
| 1883 MaybeHandle<Code> code = Compiler::GetCodeForDebugging(function); | 1883 MaybeHandle<Code> code = Compiler::GetDebugCode(function); |
| 1884 // Recompilation can fail. In that case leave the code as it was. | 1884 // Recompilation can fail. In that case leave the code as it was. |
| 1885 if (!code.is_null()) function->ReplaceCode(*code.ToHandleChecked()); | 1885 if (!code.is_null()) function->ReplaceCode(*code.ToHandleChecked()); |
| 1886 } else { | 1886 } else { |
| 1887 // Simply use shared code if it has debug break slots. | 1887 // Simply use shared code if it has debug break slots. |
| 1888 function->ReplaceCode(function->shared()->code()); | 1888 function->ReplaceCode(function->shared()->code()); |
| 1889 } | 1889 } |
| 1890 } | 1890 } |
| 1891 | 1891 |
| 1892 | 1892 |
| 1893 static void RecompileAndRelocateSuspendedGenerators( | 1893 static void RecompileAndRelocateSuspendedGenerators( |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1907 void Debug::PrepareForBreakPoints() { | 1907 void Debug::PrepareForBreakPoints() { |
| 1908 // If preparing for the first break point make sure to deoptimize all | 1908 // If preparing for the first break point make sure to deoptimize all |
| 1909 // functions as debugging does not work with optimized code. | 1909 // functions as debugging does not work with optimized code. |
| 1910 if (!has_break_points_) { | 1910 if (!has_break_points_) { |
| 1911 if (isolate_->concurrent_recompilation_enabled()) { | 1911 if (isolate_->concurrent_recompilation_enabled()) { |
| 1912 isolate_->optimizing_compiler_thread()->Flush(); | 1912 isolate_->optimizing_compiler_thread()->Flush(); |
| 1913 } | 1913 } |
| 1914 | 1914 |
| 1915 Deoptimizer::DeoptimizeAll(isolate_); | 1915 Deoptimizer::DeoptimizeAll(isolate_); |
| 1916 | 1916 |
| 1917 Handle<Code> lazy_compile = isolate_->builtins()->CompileUnoptimized(); | 1917 Handle<Code> lazy_compile = isolate_->builtins()->CompileLazy(); |
| 1918 | 1918 |
| 1919 // There will be at least one break point when we are done. | 1919 // There will be at least one break point when we are done. |
| 1920 has_break_points_ = true; | 1920 has_break_points_ = true; |
| 1921 | 1921 |
| 1922 // Keep the list of activated functions in a handlified list as it | 1922 // Keep the list of activated functions in a handlified list as it |
| 1923 // is used both in GC and non-GC code. | 1923 // is used both in GC and non-GC code. |
| 1924 List<Handle<JSFunction> > active_functions(100); | 1924 List<Handle<JSFunction> > active_functions(100); |
| 1925 | 1925 |
| 1926 // A list of all suspended generators. | 1926 // A list of all suspended generators. |
| 1927 List<Handle<JSGeneratorObject> > suspended_generators; | 1927 List<Handle<JSGeneratorObject> > suspended_generators; |
| (...skipping 1442 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3370 logger_->DebugEvent("Put", message.text()); | 3370 logger_->DebugEvent("Put", message.text()); |
| 3371 } | 3371 } |
| 3372 | 3372 |
| 3373 | 3373 |
| 3374 void LockingCommandMessageQueue::Clear() { | 3374 void LockingCommandMessageQueue::Clear() { |
| 3375 base::LockGuard<base::Mutex> lock_guard(&mutex_); | 3375 base::LockGuard<base::Mutex> lock_guard(&mutex_); |
| 3376 queue_.Clear(); | 3376 queue_.Clear(); |
| 3377 } | 3377 } |
| 3378 | 3378 |
| 3379 } } // namespace v8::internal | 3379 } } // namespace v8::internal |
| OLD | NEW |