Index: runtime/vm/flow_graph_compiler_dbc.cc |
diff --git a/runtime/vm/flow_graph_compiler_dbc.cc b/runtime/vm/flow_graph_compiler_dbc.cc |
index aa6efacef9624211156fd6862f2bbabd20512915..fad3bd807b5d51a30c724215ff89f10fefd468d8 100644 |
--- a/runtime/vm/flow_graph_compiler_dbc.cc |
+++ b/runtime/vm/flow_graph_compiler_dbc.cc |
@@ -230,7 +230,13 @@ void FlowGraphCompiler::GenerateAssertAssignable(TokenPosition token_pos, |
} |
__ PushConstant(dst_type); |
__ PushConstant(dst_name); |
- __ AssertAssignable(__ AddConstant(test_cache)); |
+ |
+ if (dst_type.IsMalformedOrMalbounded()) { |
+ __ BadTypeError(); |
+ } else { |
+ __ AssertAssignable(__ AddConstant(test_cache)); |
+ } |
+ |
if (is_optimizing()) { |
// Register allocator does not think that our first input (also used as |
// output) needs to be kept alive across the call because that is how code |