OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include <set> | 5 #include <set> |
6 | 6 |
7 #include "vm/kernel_to_il.h" | 7 #include "vm/kernel_to_il.h" |
8 | 8 |
9 #include "vm/compiler.h" | 9 #include "vm/compiler.h" |
10 #include "vm/intermediate_language.h" | 10 #include "vm/intermediate_language.h" |
(...skipping 1832 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1843 if (dst_type.IsMalformed()) { | 1843 if (dst_type.IsMalformed()) { |
1844 return ThrowTypeError(); | 1844 return ThrowTypeError(); |
1845 } | 1845 } |
1846 return CheckAssignableInCheckedMode(dst_type, name_symbol); | 1846 return CheckAssignableInCheckedMode(dst_type, name_symbol); |
1847 } | 1847 } |
1848 return Fragment(); | 1848 return Fragment(); |
1849 } | 1849 } |
1850 | 1850 |
1851 bool FlowGraphBuilder::NeedsDebugStepCheck(const Function& function, | 1851 bool FlowGraphBuilder::NeedsDebugStepCheck(const Function& function, |
1852 TokenPosition position) { | 1852 TokenPosition position) { |
1853 return FLAG_support_debugger && position.IsDebugPause() && | 1853 return position.IsDebugPause() && !function.is_native() && |
1854 !function.is_native() && function.is_debuggable(); | 1854 function.is_debuggable(); |
1855 } | 1855 } |
1856 | 1856 |
1857 bool FlowGraphBuilder::NeedsDebugStepCheck(Value* value, | 1857 bool FlowGraphBuilder::NeedsDebugStepCheck(Value* value, |
1858 TokenPosition position) { | 1858 TokenPosition position) { |
1859 if (!FLAG_support_debugger || !position.IsDebugPause()) return false; | 1859 if (!position.IsDebugPause()) { |
| 1860 return false; |
| 1861 } |
1860 Definition* definition = value->definition(); | 1862 Definition* definition = value->definition(); |
1861 if (definition->IsConstant() || definition->IsLoadStaticField()) return true; | 1863 if (definition->IsConstant() || definition->IsLoadStaticField()) { |
| 1864 return true; |
| 1865 } |
1862 if (definition->IsAllocateObject()) { | 1866 if (definition->IsAllocateObject()) { |
1863 return !definition->AsAllocateObject()->closure_function().IsNull(); | 1867 return !definition->AsAllocateObject()->closure_function().IsNull(); |
1864 } | 1868 } |
1865 return definition->IsLoadLocal() && | 1869 return definition->IsLoadLocal() && |
1866 !definition->AsLoadLocal()->local().IsInternal(); | 1870 !definition->AsLoadLocal()->local().IsInternal(); |
1867 } | 1871 } |
1868 | 1872 |
1869 Fragment FlowGraphBuilder::DebugStepCheck(TokenPosition position) { | 1873 Fragment FlowGraphBuilder::DebugStepCheck(TokenPosition position) { |
1870 return Fragment(new (Z) DebugStepCheckInstr( | 1874 return Fragment(new (Z) DebugStepCheckInstr( |
1871 position, RawPcDescriptors::kRuntimeCall, GetNextDeoptId())); | 1875 position, RawPcDescriptors::kRuntimeCall, GetNextDeoptId())); |
(...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2337 StreamingFlowGraphBuilder streaming_flow_graph_builder( | 2341 StreamingFlowGraphBuilder streaming_flow_graph_builder( |
2338 &helper, zone_, script.kernel_data(), script.kernel_data_size()); | 2342 &helper, zone_, script.kernel_data(), script.kernel_data_size()); |
2339 return streaming_flow_graph_builder.GetLineStartsFor( | 2343 return streaming_flow_graph_builder.GetLineStartsFor( |
2340 script.kernel_script_index()); | 2344 script.kernel_script_index()); |
2341 } | 2345 } |
2342 | 2346 |
2343 } // namespace kernel | 2347 } // namespace kernel |
2344 } // namespace dart | 2348 } // namespace dart |
2345 | 2349 |
2346 #endif // !defined(DART_PRECOMPILED_RUNTIME) | 2350 #endif // !defined(DART_PRECOMPILED_RUNTIME) |
OLD | NEW |