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

Unified Diff: runtime/vm/isolate_reload.cc

Issue 2205573005: Propagate UnhandledExceptionErrors returned by the tag handler in Reload (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/isolate_reload.cc
diff --git a/runtime/vm/isolate_reload.cc b/runtime/vm/isolate_reload.cc
index 405653f697a24b2c34889a1468b187eafd7d71ca..e635a7b1a71fd2b3e497c9fcf7ad892913ade4b6 100644
--- a/runtime/vm/isolate_reload.cc
+++ b/runtime/vm/isolate_reload.cc
@@ -490,10 +490,10 @@ void IsolateReloadContext::Reload(bool force_reload) {
// 6) The tag handler returns and we move on.
//
// Even after a successful reload the Dart code invoked in (5) can result
- // in an Unwind error or a StackOverflow error. This error will be returned
- // by the tag handler. The tag handler can return other errors, for example,
- // top level parse errors. We want to capture these errors while propagating
- // the Unwind or StackOverflow errors.
+ // in an Unwind error or an UnhandledException error. This error will be
+ // returned by the tag handler. The tag handler can return other errors,
+ // for example, top level parse errors. We want to capture these errors while
+ // propagating the UnwindError or an UnhandledException error.
Object& result = Object::Handle(thread->zone());
{
TransitionVMToNative transition(thread);
@@ -511,9 +511,9 @@ void IsolateReloadContext::Reload(bool force_reload) {
BackgroundCompiler::Enable();
if (result.IsUnwindError() ||
- (result.raw() == isolate()->object_store()->stack_overflow())) {
- // When returning from the tag handler with an Unwind error or a
- // StackOverflow error, propagate it and give up.
+ result.IsUnhandledException()) {
+ // If the tag handler returns with an UnwindError or an UnhandledException
+ // error, propagate it and give up.
Exceptions::PropagateError(Error::Cast(result));
UNREACHABLE();
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698