| 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/isolate.h" | 5 #include "src/isolate.h" |
| 6 | 6 |
| 7 #include <stdlib.h> | 7 #include <stdlib.h> |
| 8 | 8 |
| 9 #include <fstream> // NOLINT(readability/streams) | 9 #include <fstream> // NOLINT(readability/streams) |
| 10 #include <sstream> | 10 #include <sstream> |
| (...skipping 2883 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2894 DisallowHeapAllocation no_gc; | 2894 DisallowHeapAllocation no_gc; |
| 2895 Object* const initial_js_array_map = | 2895 Object* const initial_js_array_map = |
| 2896 context()->native_context()->get(Context::ArrayMapIndex(kind)); | 2896 context()->native_context()->get(Context::ArrayMapIndex(kind)); |
| 2897 if (!initial_js_array_map->IsUndefined(this)) { | 2897 if (!initial_js_array_map->IsUndefined(this)) { |
| 2898 return Map::cast(initial_js_array_map); | 2898 return Map::cast(initial_js_array_map); |
| 2899 } | 2899 } |
| 2900 } | 2900 } |
| 2901 return nullptr; | 2901 return nullptr; |
| 2902 } | 2902 } |
| 2903 | 2903 |
| 2904 | 2904 bool Isolate::use_crankshaft() { |
| 2905 bool Isolate::use_crankshaft() const { | |
| 2906 return FLAG_opt && FLAG_crankshaft && !serializer_enabled_ && | 2905 return FLAG_opt && FLAG_crankshaft && !serializer_enabled_ && |
| 2907 CpuFeatures::SupportsCrankshaft(); | 2906 CpuFeatures::SupportsCrankshaft() && !IsCodeCoverageEnabled(); |
| 2908 } | 2907 } |
| 2909 | 2908 |
| 2910 bool Isolate::NeedsSourcePositionsForProfiling() const { | 2909 bool Isolate::NeedsSourcePositionsForProfiling() const { |
| 2911 return FLAG_trace_deopt || FLAG_trace_turbo || FLAG_trace_turbo_graph || | 2910 return FLAG_trace_deopt || FLAG_trace_turbo || FLAG_trace_turbo_graph || |
| 2912 FLAG_turbo_profiling || FLAG_perf_prof || is_profiling() || | 2911 FLAG_turbo_profiling || FLAG_perf_prof || is_profiling() || |
| 2913 debug_->is_active() || logger_->is_logging(); | 2912 debug_->is_active() || logger_->is_logging(); |
| 2914 } | 2913 } |
| 2915 | 2914 |
| 2915 bool Isolate::IsCodeCoverageEnabled() { |
| 2916 return heap()->code_coverage_list()->IsArrayList(); |
| 2917 } |
| 2918 |
| 2919 void Isolate::SetCodeCoverageList(Object* value) { |
| 2920 DCHECK(value->IsUndefined(this) || value->IsArrayList()); |
| 2921 heap()->set_code_coverage_list(value); |
| 2922 } |
| 2923 |
| 2916 bool Isolate::IsArrayOrObjectPrototype(Object* object) { | 2924 bool Isolate::IsArrayOrObjectPrototype(Object* object) { |
| 2917 Object* context = heap()->native_contexts_list(); | 2925 Object* context = heap()->native_contexts_list(); |
| 2918 while (!context->IsUndefined(this)) { | 2926 while (!context->IsUndefined(this)) { |
| 2919 Context* current_context = Context::cast(context); | 2927 Context* current_context = Context::cast(context); |
| 2920 if (current_context->initial_object_prototype() == object || | 2928 if (current_context->initial_object_prototype() == object || |
| 2921 current_context->initial_array_prototype() == object) { | 2929 current_context->initial_array_prototype() == object) { |
| 2922 return true; | 2930 return true; |
| 2923 } | 2931 } |
| 2924 context = current_context->next_context_link(); | 2932 context = current_context->next_context_link(); |
| 2925 } | 2933 } |
| (...skipping 723 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3649 // Then check whether this scope intercepts. | 3657 // Then check whether this scope intercepts. |
| 3650 if ((flag & intercept_mask_)) { | 3658 if ((flag & intercept_mask_)) { |
| 3651 intercepted_flags_ |= flag; | 3659 intercepted_flags_ |= flag; |
| 3652 return true; | 3660 return true; |
| 3653 } | 3661 } |
| 3654 return false; | 3662 return false; |
| 3655 } | 3663 } |
| 3656 | 3664 |
| 3657 } // namespace internal | 3665 } // namespace internal |
| 3658 } // namespace v8 | 3666 } // namespace v8 |
| OLD | NEW |