@@ -748,9 +748,9 @@ void StubCodeCompiler::GenerateInstanceOfStub() {
748748
749749// For use in GenerateTypeIsTopTypeForSubtyping and
750750// GenerateNullIsAssignableToType.
751- static void EnsureIsTypeOrFunctionTypeOrTypeParameter (Assembler* assembler,
752- Register type_reg,
753- Register scratch_reg) {
751+ static void EnsureIsSomeKindOfType (Assembler* assembler,
752+ Register type_reg,
753+ Register scratch_reg) {
754754#if defined(DEBUG)
755755 compiler::Label is_type_param_or_type_or_function_type;
756756 __ LoadClassIdMayBeSmi (scratch_reg, type_reg);
@@ -763,7 +763,10 @@ static void EnsureIsTypeOrFunctionTypeOrTypeParameter(Assembler* assembler,
763763 __ CompareImmediate (scratch_reg, kFunctionTypeCid );
764764 __ BranchIf (EQUAL, &is_type_param_or_type_or_function_type,
765765 compiler::Assembler::kNearJump );
766- __ Stop (" not a type or function type or type parameter" );
766+ __ CompareImmediate (scratch_reg, kRecordTypeCid );
767+ __ BranchIf (EQUAL, &is_type_param_or_type_or_function_type,
768+ compiler::Assembler::kNearJump );
769+ __ Stop (" not a type, function type, record type or type parameter" );
767770 __ Bind (&is_type_param_or_type_or_function_type);
768771#endif
769772}
@@ -812,8 +815,7 @@ void StubCodeCompiler::GenerateTypeIsTopTypeForSubtypingStub() {
812815 __ MoveRegister (scratch1_reg, TypeTestABI::kDstTypeReg );
813816 __ Bind (&check_top_type);
814817 // scratch1_reg: Current type to check.
815- EnsureIsTypeOrFunctionTypeOrTypeParameter (assembler, scratch1_reg,
816- scratch2_reg);
818+ EnsureIsSomeKindOfType (assembler, scratch1_reg, scratch2_reg);
817819 compiler::Label is_type_ref;
818820 __ CompareClassId (scratch1_reg, kTypeCid , scratch2_reg);
819821 // Type parameters can't be top types themselves, though a particular
@@ -912,8 +914,7 @@ void StubCodeCompiler::GenerateNullIsAssignableToTypeStub() {
912914 __ BranchIf (NOT_EQUAL, &done);
913915 __ Bind (&check_null_assignable);
914916 // scratch1_reg: Current type to check.
915- EnsureIsTypeOrFunctionTypeOrTypeParameter (assembler, kCurrentTypeReg ,
916- kScratchReg );
917+ EnsureIsSomeKindOfType (assembler, kCurrentTypeReg , kScratchReg );
917918 compiler::Label is_not_type;
918919 __ CompareClassId (kCurrentTypeReg , kTypeCid , kScratchReg );
919920 __ BranchIf (NOT_EQUAL, &is_not_type, compiler::Assembler::kNearJump );
0 commit comments