Index: runtime/vm/intrinsifier_arm64.cc |
diff --git a/runtime/vm/intrinsifier_arm64.cc b/runtime/vm/intrinsifier_arm64.cc |
index 265d5d4f6140614370856852bda7f235d94ceba1..3c28ec109af11650b6e963146e32f31ae45fc1e6 100644 |
--- a/runtime/vm/intrinsifier_arm64.cc |
+++ b/runtime/vm/intrinsifier_arm64.cc |
@@ -1614,11 +1614,10 @@ void Intrinsifier::ObjectRuntimeType(Assembler* assembler) { |
Label fall_through; |
__ ldr(R0, Address(SP, 0 * kWordSize)); |
__ LoadClassIdMayBeSmi(R1, R0); |
+ __ CompareImmediate(R1, kClosureCid); |
+ __ b(&fall_through, EQ); // Instance is a closure. |
__ LoadClassById(R2, R1); |
// R2: class of instance (R0). |
- __ ldr(R3, FieldAddress(R2, Class::signature_function_offset())); |
- __ CompareObject(R3, Object::null_object()); |
- __ b(&fall_through, NE); |
__ ldr(R3, FieldAddress(R2, Class::num_type_arguments_offset()), kHalfword); |
__ CompareImmediate(R3, 0); |