浏览代码

(Php) fix >>> implementation (closes #2845)

Simon Krajewski 11 年之前
父节点
当前提交
ce688a7073
共有 2 个文件被更改,包括 10 次插入1 次删除
  1. 1 1
      std/php/Boot.hx
  2. 9 0
      tests/unit/issues/Issue2845.hx

+ 1 - 1
std/php/Boot.hx

@@ -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) {

+ 9 - 0
tests/unit/issues/Issue2845.hx

@@ -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));
+	}
+}