Chromium Code Reviews| Index: runtime/vm/kernel_binary_flowgraph.cc |
| diff --git a/runtime/vm/kernel_binary_flowgraph.cc b/runtime/vm/kernel_binary_flowgraph.cc |
| index 33c85883c08dca768e4f896411db799a63c561f3..c244164bc4734340e94508c1b2a0b093f0eb97bd 100644 |
| --- a/runtime/vm/kernel_binary_flowgraph.cc |
| +++ b/runtime/vm/kernel_binary_flowgraph.cc |
| @@ -888,7 +888,7 @@ void StreamingScopeBuilder::VisitStatement() { |
| EnterScope(offset); |
| - builder_->SkipDartType(); // read guard. |
| + VisitDartType(); // read guard. |
|
Kevin Millikin (Google)
2017/06/21 07:02:58
Update comments to be full sentences: "Read the gu
|
| tag = builder_->ReadTag(); // read first part of exception. |
| if (tag == kSomething) { |
| VisitVariableDeclaration(); // read exception. |
| @@ -6542,9 +6542,17 @@ Fragment StreamingFlowGraphBuilder::BuildTryCatch() { |
| } else { |
| catch_body += LoadLocal(CurrentException()); |
| catch_body += PushArgument(); // exception |
| - catch_body += NullConstant(); |
| + if (!type_guard->IsInstantiated(kCurrentClass)) { |
| + catch_body += LoadInstantiatorTypeArguments(); |
| + } else { |
| + catch_body += NullConstant(); |
| + } |
| catch_body += PushArgument(); // instantiator type arguments |
| - catch_body += NullConstant(); |
| + if (!type_guard->IsInstantiated(kFunctions)) { |
| + catch_body += LoadFunctionTypeArguments(); |
| + } else { |
| + catch_body += NullConstant(); |
| + } |
| catch_body += PushArgument(); // function type arguments |
| catch_body += Constant(*type_guard); |
| catch_body += PushArgument(); // guard type |