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

Side by Side Diff: runtime/vm/flow_graph_compiler.cc

Issue 2692803006: Track the 'awaiter return' call stack use it to detect uncaught exceptions in async functions (Closed)
Patch Set: rmacnak review Created 3 years, 9 months 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 "vm/globals.h" // Needed here to get TARGET_ARCH_XXX. 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_XXX.
6 6
7 #include "vm/flow_graph_compiler.h" 7 #include "vm/flow_graph_compiler.h"
8 8
9 #include "vm/bit_vector.h" 9 #include "vm/bit_vector.h"
10 #include "vm/cha.h" 10 #include "vm/cha.h"
(...skipping 653 matching lines...) Expand 10 before | Expand all | Expand 10 after
664 BeginCodeSourceRange(); 664 BeginCodeSourceRange();
665 deopt_infos_[i]->GenerateCode(this, i); 665 deopt_infos_[i]->GenerateCode(this, i);
666 EndCodeSourceRange(TokenPosition::kDeferredDeoptInfo); 666 EndCodeSourceRange(TokenPosition::kDeferredDeoptInfo);
667 } 667 }
668 } 668 }
669 669
670 670
671 void FlowGraphCompiler::AddExceptionHandler(intptr_t try_index, 671 void FlowGraphCompiler::AddExceptionHandler(intptr_t try_index,
672 intptr_t outer_try_index, 672 intptr_t outer_try_index,
673 intptr_t pc_offset, 673 intptr_t pc_offset,
674 TokenPosition token_pos,
675 bool is_generated,
674 const Array& handler_types, 676 const Array& handler_types,
675 bool needs_stacktrace) { 677 bool needs_stacktrace) {
676 exception_handlers_list_->AddHandler(try_index, outer_try_index, pc_offset, 678 exception_handlers_list_->AddHandler(try_index, outer_try_index, pc_offset,
677 handler_types, needs_stacktrace); 679 token_pos, is_generated, handler_types,
680 needs_stacktrace);
678 } 681 }
679 682
680 683
681 void FlowGraphCompiler::SetNeedsStackTrace(intptr_t try_index) { 684 void FlowGraphCompiler::SetNeedsStackTrace(intptr_t try_index) {
682 exception_handlers_list_->SetNeedsStackTrace(try_index); 685 exception_handlers_list_->SetNeedsStackTrace(try_index);
683 } 686 }
684 687
685 688
686 void FlowGraphCompiler::AddDescriptor(RawPcDescriptors::Kind kind, 689 void FlowGraphCompiler::AddDescriptor(RawPcDescriptors::Kind kind,
687 intptr_t pc_offset, 690 intptr_t pc_offset,
(...skipping 1195 matching lines...) Expand 10 before | Expand all | Expand 10 after
1883 1886
1884 1887
1885 void FlowGraphCompiler::FrameStateClear() { 1888 void FlowGraphCompiler::FrameStateClear() {
1886 ASSERT(!is_optimizing()); 1889 ASSERT(!is_optimizing());
1887 frame_state_.TruncateTo(0); 1890 frame_state_.TruncateTo(0);
1888 } 1891 }
1889 #endif // defined(DEBUG) && !defined(TARGET_ARCH_DBC) 1892 #endif // defined(DEBUG) && !defined(TARGET_ARCH_DBC)
1890 1893
1891 1894
1892 } // namespace dart 1895 } // namespace dart
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698