| Index: runtime/lib/integers.cc
|
| diff --git a/runtime/lib/integers.cc b/runtime/lib/integers.cc
|
| index b1ca62c3e311877ca86ac568531c416d42b56f18..e8d655ca416b741a98b559dfacaf451788bea44b 100644
|
| --- a/runtime/lib/integers.cc
|
| +++ b/runtime/lib/integers.cc
|
| @@ -275,7 +275,9 @@ static RawInteger* ShiftOperationHelper(Token::Kind kind,
|
| case Token::kSHL:
|
| return Integer::New(mint_value << shift_count, Heap::kNew, silent);
|
| case Token::kSHR:
|
| - return Integer::New(mint_value >> -shift_count, Heap::kNew, silent);
|
| + shift_count =
|
| + (-shift_count > Mint::kBits) ? Mint::kBits : -shift_count;
|
| + return Integer::New(mint_value >> shift_count, Heap::kNew, silent);
|
| default:
|
| UNIMPLEMENTED();
|
| }
|
|
|