| Index: runtime/vm/intermediate_language.cc
|
| diff --git a/runtime/vm/intermediate_language.cc b/runtime/vm/intermediate_language.cc
|
| index a2a9d2768a3eeca3dde6f90e183d07cca37b1d3b..faa7c143b204a54bf7897f9bea6be48048da39c7 100644
|
| --- a/runtime/vm/intermediate_language.cc
|
| +++ b/runtime/vm/intermediate_language.cc
|
| @@ -2404,7 +2404,8 @@ static bool MayBeBoxableNumber(intptr_t cid) {
|
| return (cid == kDynamicCid) ||
|
| (cid == kMintCid) ||
|
| (cid == kBigintCid) ||
|
| - (cid == kDoubleCid);
|
| + (cid == kDoubleCid) ||
|
| + (cid == kFractionCid);
|
| }
|
|
|
|
|
| @@ -2423,8 +2424,8 @@ static bool MaybeNumber(CompileType* type) {
|
| static Definition* CanonicalizeStrictCompare(StrictCompareInstr* compare,
|
| bool* negated) {
|
| // Use propagated cid and type information to eliminate number checks.
|
| - // If one of the inputs is not a boxable number (Mint, Double, Bigint), or
|
| - // is not a subtype of num, no need for number checks.
|
| + // If one of the inputs is not a boxable number (Mint, Double, Bigint,
|
| + // Fraction), or is not a subtype of num, no need for number checks.
|
| if (compare->needs_number_check()) {
|
| if (!MayBeBoxableNumber(compare->left()->Type()->ToCid()) ||
|
| !MayBeBoxableNumber(compare->right()->Type()->ToCid())) {
|
|
|