| Index: runtime/vm/intermediate_language.cc
|
| ===================================================================
|
| --- runtime/vm/intermediate_language.cc (revision 14856)
|
| +++ runtime/vm/intermediate_language.cc (working copy)
|
| @@ -1327,6 +1327,12 @@
|
| case Token::kBIT_OR:
|
| case Token::kBIT_XOR:
|
| return false;
|
| + case Token::kSHR: {
|
| + // Can't deopt if shift-count is known positive.
|
| + Range* right_range = this->right()->definition()->range();
|
| + return (right_range == NULL)
|
| + || !right_range->IsWithin(0, RangeBoundary::kPlusInfinity);
|
| + }
|
| default:
|
| return overflow_;
|
| }
|
| @@ -2503,8 +2509,6 @@
|
| return;
|
| }
|
|
|
| -
|
| - // If left is a l
|
| RangeBoundary left_min =
|
| IsArrayLength(left_defn) ?
|
| RangeBoundary::FromDefinition(left_defn) : left_range->min();
|
|
|