Chromium Code Reviews| Index: runtime/vm/simulator_dbc.cc |
| diff --git a/runtime/vm/simulator_dbc.cc b/runtime/vm/simulator_dbc.cc |
| index a82d19a840c89a0e04b296fb05ba62c5d6c2c9e5..7bcaf8ebcbbf3596b1bddc1b2071c4546775ad2b 100644 |
| --- a/runtime/vm/simulator_dbc.cc |
| +++ b/runtime/vm/simulator_dbc.cc |
| @@ -2672,21 +2672,25 @@ RawObject* Simulator::Call(const Code& code, |
| } |
| { |
| - BYTECODE(AssertAssignable, A_D); // Stack: instance, type args, type, name |
| + BYTECODE(BadTypeError, 0); |
|
Florian Schneider
2016/10/11 17:55:17
Maybe add the same comment here:
// Stack: instanc
zra
2016/10/11 18:04:09
Done.
|
| RawObject** args = SP - 3; |
| if (args[0] != null_value) { |
| - const AbstractType& dst_type = |
| - AbstractType::Handle(static_cast<RawAbstractType*>(args[2])); |
| - if (dst_type.IsMalformedOrMalbounded()) { |
| - SP[1] = args[0]; // instance. |
| - SP[2] = args[3]; // name. |
| - SP[3] = args[2]; // type. |
| - Exit(thread, FP, SP + 4, pc); |
| - NativeArguments native_args(thread, 3, SP + 1, SP - 3); |
| - INVOKE_RUNTIME(DRT_BadTypeError, native_args); |
| - UNREACHABLE(); |
| - } |
| + SP[1] = args[0]; // instance. |
| + SP[2] = args[3]; // name. |
| + SP[3] = args[2]; // type. |
| + Exit(thread, FP, SP + 4, pc); |
| + NativeArguments native_args(thread, 3, SP + 1, SP - 3); |
| + INVOKE_RUNTIME(DRT_BadTypeError, native_args); |
| + UNREACHABLE(); |
| + } |
| + SP -= 3; |
| + DISPATCH(); |
| + } |
| + { |
| + BYTECODE(AssertAssignable, A_D); // Stack: instance, type args, type, name |
| + RawObject** args = SP - 3; |
| + if (args[0] != null_value) { |
| RawSubtypeTestCache* cache = |
| static_cast<RawSubtypeTestCache*>(LOAD_CONSTANT(rD)); |
| if (cache != null_value) { |