1// Copyright 2014 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Flags: --allow-natives-syntax --noopt-safe-uint32-operations
6
7// Check the results of `left >>> right`. The result is always unsigned (and
8// therefore positive).
9function test_shr(left) {
10  var errors = 0;
11
12  for (var i = 1; i < 1024; i++) {
13    var temp = left >>> i;
14    if (temp < 0) {
15      errors++;
16    }
17  }
18
19  return errors;
20}
21
22assertEquals(0, test_shr(1));
23%OptimizeFunctionOnNextCall(test_shr);
24for (var i = 5; i >= -5; i--) {
25  assertEquals(0, test_shr(i));
26}
27