@@ -554,7 +554,7 @@ function _hx_set_method($o, $field, $func) {
}
function _hx_shift_right($v, $n) {
- return ($v >> $n) & (0x7fffffff >> ($n-1));
+ return ($v >= 0) ? ($v >> $n) : ($v >> $n) & (0x7fffffff >> ($n-1));
function _hx_string_call($s, $method, $params) {
@@ -0,0 +1,9 @@
+package unit.issues;
+import unit.Test;
+
+class Issue2845 extends Test {
+ function test() {
+ var c = 0;
+ eq(4, (36 >>> c) & ((1 << 4) - 1));
+ }
+}