aboutsummaryrefslogtreecommitdiffstats
path: root/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator
diff options
context:
space:
mode:
Diffstat (limited to 'external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator')
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A1.js59
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.1_T1.js42
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.1_T2.js21
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.1_T3.js21
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.2_T1.js70
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.3_T1.js25
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.4_T1.js22
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.4_T2.js25
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.4_T3.js26
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T1.1.js29
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T1.2.js30
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T1.3.js39
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T1.4.js29
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T1.5.js30
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.1.js49
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.2.js59
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.3.js29
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.4.js29
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.5.js49
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.6.js29
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.7.js29
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.8.js29
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.9.js29
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A4_T1.js2570
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A4_T2.js2570
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A4_T3.js2570
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A4_T4.js2565
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A5.1_T1.js59
-rw-r--r--external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A5.2_T1.js329
29 files changed, 11462 insertions, 0 deletions
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A1.js
new file mode 100644
index 000000000..238775f7c
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A1.js
@@ -0,0 +1,59 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S11.7.2_A1;
+* @section: 11.7.2, 7.2, 7.3;
+* @assertion: White Space and Line Terminator between ShiftExpression and ">>" or between ">>" and AdditiveExpression are allowed;
+* @description: Checking by using eval;
+*/
+
+//CHECK#1
+if (eval("-4\u0009>>\u00091") !== -2) {
+ $ERROR('#1: -4\\u0009>>\\u00091 === -2');
+}
+
+//CHECK#2
+if (eval("-4\u000B>>\u000B1") !== -2) {
+ $ERROR('#2: -4\\u000B>>\\u000B1 === -2');
+}
+
+//CHECK#3
+if (eval("-4\u000C>>\u000C1") !== -2) {
+ $ERROR('#3: -4\\u000C>>\\u000C1 === -2');
+}
+
+//CHECK#4
+if (eval("-4\u0020>>\u00201") !== -2) {
+ $ERROR('#4: -4\\u0020>>\\u00201 === -2');
+}
+
+//CHECK#5
+if (eval("-4\u00A0>>\u00A01") !== -2) {
+ $ERROR('#5: -4\\u00A0>>\\u00A01 === -2');
+}
+
+//CHECK#6
+if (eval("-4\u000A>>\u000A1") !== -2) {
+ $ERROR('#6: -4\\u000A>>\\u000A1 === -2');
+}
+
+//CHECK#7
+if (eval("-4\u000D>>\u000D1") !== -2) {
+ $ERROR('#7: -4\\u000D>>\\u000D1 === -2');
+}
+
+//CHECK#8
+if (eval("-4\u2028>>\u20281") !== -2) {
+ $ERROR('#8: -4\\u2028>>\\u20281 === -2');
+}
+
+//CHECK#9
+if (eval("-4\u2029>>\u20291") !== -2) {
+ $ERROR('#9: -4\\u2029>>\\u20291 === -2');
+}
+
+//CHECK#10
+if (eval("-4\u0009\u000B\u000C\u0020\u00A0\u000A\u000D\u2028\u2029>>\u0009\u000B\u000C\u0020\u00A0\u000A\u000D\u2028\u20291") !== -2) {
+ $ERROR('#10: -4\\u0009\\u000B\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u2029>>\\u0009\\u000B\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u20291 === -2');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.1_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.1_T1.js
new file mode 100644
index 000000000..1469a5261
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.1_T1.js
@@ -0,0 +1,42 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S11.7.2_A2.1_T1;
+* @section: 11.7.2;
+* @assertion: Operator x >> y uses GetValue;
+* @description: Either Type is not Reference or GetBase is not null;
+*/
+
+//CHECK#1
+if (-4 >> 1 !== -2) {
+ $ERROR('#1: -4 >> 1 === -2. Actual: ' + (-4 >> 1));
+}
+
+//CHECK#2
+var x = -4;
+if (x >> 1 !== -2) {
+ $ERROR('#2: var x = -4; x >> 1 === -2. Actual: ' + (x >> 1));
+}
+
+//CHECK#3
+var y = 1;
+if (-4 >> y !== -2) {
+ $ERROR('#3: var y = 1; -4 >> y === -2. Actual: ' + (-4 >> y));
+}
+
+//CHECK#4
+var x = -4;
+var y = 1;
+if (x >> y !== -2) {
+ $ERROR('#4: var x = -4; var y = 1; x >> y === -2. Actual: ' + (x >> y));
+}
+
+//CHECK#5
+var objectx = new Object();
+var objecty = new Object();
+objectx.prop = -4;
+objecty.prop = 1;
+if (objectx.prop >> objecty.prop !== -2) {
+ $ERROR('#5: var objectx = new Object(); var objecty = new Object(); objectx.prop = -4; objecty.prop = 1; objectx.prop >> objecty.prop === -2. Actual: ' + (objectx.prop >> objecty.prop));
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.1_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.1_T2.js
new file mode 100644
index 000000000..58ca08fa8
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.1_T2.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A2.1_T2;
+ * @section: 11.7.2;
+ * @assertion: Operator x >> y uses GetValue;
+ * @description: If GetBase(x) is null, throw ReferenceError;
+*/
+
+//CHECK#1
+try {
+ x >> 1;
+ $ERROR('#1.1: x >> 1 throw ReferenceError. Actual: ' + (x >> 1));
+}
+catch (e) {
+ if ((e instanceof ReferenceError) !== true) {
+ $ERROR('#1.2: x >> 1 throw ReferenceError. Actual: ' + (e));
+ }
+}
+
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.1_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.1_T3.js
new file mode 100644
index 000000000..9ac3aa0bf
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.1_T3.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A2.1_T3;
+ * @section: 11.7.2;
+ * @assertion: Operator x >> y uses GetValue;
+ * @description: If GetBase(y) is null, throw ReferenceError;
+*/
+
+//CHECK#1
+try {
+ 1 >> y;
+ $ERROR('#1.1: 1 >> y throw ReferenceError. Actual: ' + (1 >> y));
+}
+catch (e) {
+ if ((e instanceof ReferenceError) !== true) {
+ $ERROR('#1.2: 1 >> y throw ReferenceError. Actual: ' + (e));
+ }
+}
+
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.2_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.2_T1.js
new file mode 100644
index 000000000..646f92798
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.2_T1.js
@@ -0,0 +1,70 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A2.2_T1;
+ * @section: 11.7.2, 8.6.2.6;
+ * @assertion: Operator x >> y uses [[Default Value]];
+ * @description: If Type(value) is Object, evaluate ToPrimitive(value, Number);
+ */
+
+//CHECK#1
+if ({valueOf: function() {return -4}} >> 1 !== -2) {
+ $ERROR('#1: {valueOf: function() {return -4}} >> 1 === -2. Actual: ' + ({valueOf: function() {return -4}} >> 1));
+}
+
+//CHECK#2
+if ({valueOf: function() {return -4}, toString: function() {return 0}} >> 1 !== -2) {
+ $ERROR('#2: {valueOf: function() {return -4}, toString: function() {return 0}} >> 1 === -2. Actual: ' + ({valueOf: function() {return -4}, toString: function() {return 0}} >> 1));
+}
+
+//CHECK#3
+if ({valueOf: function() {return -4}, toString: function() {return {}}} >> 1 !== -2) {
+ $ERROR('#3: {valueOf: function() {return -4}, toString: function() {return {}}} >> 1 === -2. Actual: ' + ({valueOf: function() {return -4}, toString: function() {return {}}} >> 1));
+}
+
+//CHECK#4
+try {
+ if ({valueOf: function() {return -4}, toString: function() {throw "error"}} >> 1 !== -2) {
+ $ERROR('#4.1: {valueOf: function() {return -4}, toString: function() {throw "error"}} >> 1 === -2. Actual: ' + ({valueOf: function() {return -4}, toString: function() {throw "error"}} >> 1));
+ }
+}
+catch (e) {
+ if (e === "error") {
+ $ERROR('#4.2: {valueOf: function() {return -4}, toString: function() {throw "error"}} >> 1 not throw "error"');
+ } else {
+ $ERROR('#4.3: {valueOf: function() {return -4}, toString: function() {throw "error"}} >> 1 not throw Error. Actual: ' + (e));
+ }
+}
+
+//CHECK#5
+if (-4 >> {toString: function() {return 1}} !== -2) {
+ $ERROR('#5: -4 >> {toString: function() {return 1}} === -2. Actual: ' + (-4 >> {toString: function() {return 1}}));
+}
+
+//CHECK#6
+if (-4 >> {valueOf: function() {return {}}, toString: function() {return 1}} !== -2) {
+ $ERROR('#6: -4 >> {valueOf: function() {return {}}, toString: function() {return 1}} === -2. Actual: ' + (-4 >> {valueOf: function() {return {}}, toString: function() {return 1}}));
+}
+
+//CHECK#7
+try {
+ -4 >> {valueOf: function() {throw "error"}, toString: function() {return 1}};
+ $ERROR('#7.1: -4 >> {valueOf: function() {throw "error"}, toString: function() {return 1}} throw "error". Actual: ' + (-4 >> {valueOf: function() {throw "error"}, toString: function() {return 1}}));
+}
+catch (e) {
+ if (e !== "error") {
+ $ERROR('#7.2: -4 >> {valueOf: function() {throw "error"}, toString: function() {return 1}} throw "error". Actual: ' + (e));
+ }
+}
+
+//CHECK#8
+try {
+ -4 >> {valueOf: function() {return {}}, toString: function() {return {}}};
+ $ERROR('#8.1: -4 >> {valueOf: function() {return {}}, toString: function() {return {}}} throw TypeError. Actual: ' + (-4 >> {valueOf: function() {return {}}, toString: function() {return {}}}));
+}
+catch (e) {
+ if ((e instanceof TypeError) !== true) {
+ $ERROR('#8.2: -4 >> {valueOf: function() {return {}}, toString: function() {return {}}} throw TypeError. Actual: ' + (e));
+ }
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.3_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.3_T1.js
new file mode 100644
index 000000000..fba3668e8
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.3_T1.js
@@ -0,0 +1,25 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A2.3_T1;
+ * @section: 11.7.2;
+ * @assertion: ToNumber(first expression) is called first, and then ToNumber(second expression);
+ * @description: Checking with "throw";
+*/
+
+//CHECK#1
+var x = { valueOf: function () { throw "x"; } };
+var y = { valueOf: function () { throw "y"; } };
+try {
+ x >> y;
+ $ERROR('#1.1: var x = { valueOf: function () { throw "x"; } }; var y = { valueOf: function () { throw "y"; } }; x >> y throw "x". Actual: ' + (x >> y));
+} catch (e) {
+ if (e === "y") {
+ $ERROR('#1.2: ToNumber(first expression) is called first, and then ToNumber(second expression)');
+ } else {
+ if (e !== "x") {
+ $ERROR('#1.3: var x = { valueOf: function () { throw "x"; } }; var y = { valueOf: function () { throw "y"; } }; x >> y throw "x". Actual: ' + (e));
+ }
+ }
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.4_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.4_T1.js
new file mode 100644
index 000000000..2a70c67ab
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.4_T1.js
@@ -0,0 +1,22 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A2.4_T1;
+ * @section: 11.7.2;
+ * @assertion: First expression is evaluated first, and then second expression;
+ * @description: Checking with "=";
+*/
+
+//CHECK#1
+var x = 0;
+if ((x = 1) >> x !== 0) {
+ $ERROR('#1: var x = 0; (x = 1) >> x === 0. Actual: ' + ((x = 1) >> x));
+}
+
+//CHECK#2
+var x = -4;
+if (x >> (x = 1) !== -2) {
+ $ERROR('#2: var x = -4; x >> (x = 1) === -2. Actual: ' + (x >> (x = 1)));
+}
+
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.4_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.4_T2.js
new file mode 100644
index 000000000..4168d109d
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.4_T2.js
@@ -0,0 +1,25 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A2.4_T2;
+ * @section: 11.7.2;
+ * @assertion: First expression is evaluated first, and then second expression;
+ * @description: Checking with "throw";
+*/
+
+//CHECK#1
+var x = function () { throw "x"; };
+var y = function () { throw "y"; };
+try {
+ x() >> y();
+ $ERROR('#1.1: var x = function () { throw "x"; }; var y = function () { throw "y"; }; x() >> y() throw "x". Actual: ' + (x() >> y()));
+} catch (e) {
+ if (e === "y") {
+ $ERROR('#1.2: First expression is evaluated first, and then second expression');
+ } else {
+ if (e !== "x") {
+ $ERROR('#1.3: var x = function () { throw "x"; }; var y = function () { throw "y"; }; x() >> y() throw "x". Actual: ' + (e));
+ }
+ }
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.4_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.4_T3.js
new file mode 100644
index 000000000..b426d1f7f
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A2.4_T3.js
@@ -0,0 +1,26 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A2.4_T3;
+ * @section: 11.7.2;
+ * @assertion: First expression is evaluated first, and then second expression;
+ * @description: Checking with undeclarated variables;
+*/
+
+//CHECK#1
+try {
+ x >> (x = 1);
+ $ERROR('#1.1: x >> (x = 1) throw ReferenceError. Actual: ' + (x >> (x = 1)));
+}
+catch (e) {
+ if ((e instanceof ReferenceError) !== true) {
+ $ERROR('#1.2: x >> (x = 1) throw ReferenceError. Actual: ' + (e));
+ }
+}
+
+//CHECK#2
+if ((y = 1) >> y !== 0) {
+ $ERROR('#2: (y = 1) >> y === 0. Actual: ' + ((y = 1) >> y));
+}
+
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T1.1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T1.1.js
new file mode 100644
index 000000000..18a22e690
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T1.1.js
@@ -0,0 +1,29 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A3_T1.1;
+ * @section: 11.7.2;
+ * @assertion: Operator x >> y returns ToNumber(x) >> ToNumber(y);
+ * @description: Type(x) and Type(y) vary between primitive boolean and Boolean object;
+ */
+
+//CHECK#1
+if (true >> true !== 0) {
+ $ERROR('#1: true >> true === 0. Actual: ' + (true >> true));
+}
+
+//CHECK#2
+if (new Boolean(true) >> true !== 0) {
+ $ERROR('#2: new Boolean(true) >> true === 0. Actual: ' + (new Boolean(true) >> true));
+}
+
+//CHECK#3
+if (true >> new Boolean(true) !== 0) {
+ $ERROR('#3: true >> new Boolean(true) === 0. Actual: ' + (true >> new Boolean(true)));
+}
+
+//CHECK#4
+if (new Boolean(true) >> new Boolean(true) !== 0) {
+ $ERROR('#4: new Boolean(true) >> new Boolean(true) === 0. Actual: ' + (new Boolean(true) >> new Boolean(true)));
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T1.2.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T1.2.js
new file mode 100644
index 000000000..8385d7509
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T1.2.js
@@ -0,0 +1,30 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A3_T1.2;
+ * @section: 11.7.2;
+ * @assertion: Operator x >> y returns ToNumber(x) >> ToNumber(y);
+ * @description: Type(x) and Type(y) vary between primitive number and Number object;
+*/
+
+//CHECK#1
+if (1 >> 1 !== 0) {
+ $ERROR('#1: 1 >> 1 === 0. Actual: ' + (1 >> 1));
+}
+
+//CHECK#2
+if (new Number(1) >> 1 !== 0) {
+ $ERROR('#2: new Number(1) >> 1 === 0. Actual: ' + (new Number(1) >> 1));
+}
+
+//CHECK#3
+if (1 >> new Number(1) !== 0) {
+ $ERROR('#3: 1 >> new Number(1) === 0. Actual: ' + (1 >> new Number(1)));
+}
+
+//CHECK#4
+if (new Number(1) >> new Number(1) !== 0) {
+ $ERROR('#4: new Number(1) >> new Number(1) === 0. Actual: ' + (new Number(1) >> new Number(1)));
+}
+
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T1.3.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T1.3.js
new file mode 100644
index 000000000..690d27e5e
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T1.3.js
@@ -0,0 +1,39 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A3_T1.3;
+ * @section: 11.7.2;
+ * @assertion: Operator x >> y returns ToNumber(x) >> ToNumber(y);
+ * @description: Type(x) and Type(y) vary between primitive string and String object;
+*/
+
+//CHECK#1
+if ("1" >> "1" !== 0) {
+ $ERROR('#1: "1" >> "1" === 0. Actual: ' + ("1" >> "1"));
+}
+
+//CHECK#2
+if (new String("1") >> "1" !== 0) {
+ $ERROR('#2: new String("1") >> "1" === 0. Actual: ' + (new String("1") >> "1"));
+}
+
+//CHECK#3
+if ("1" >> new String("1") !== 0) {
+ $ERROR('#3: "1" >> new String("1") === 0. Actual: ' + ("1" >> new String("1")));
+}
+
+//CHECK#4
+if (new String("1") >> new String("1") !== 0) {
+ $ERROR('#4: new String("1") >> new String("1") === 0. Actual: ' + (new String("1") >> new String("1")));
+}
+
+//CHECK#5
+if ("x" >> "1" !== 0) {
+ $ERROR('#5: "x" >> "1" === 0. Actual: ' + ("x" >> "1"));
+}
+
+//CHECK#6
+if ("1" >> "x" !== 1) {
+ $ERROR('#6: "1" >> "x" === 1. Actual: ' + ("1" >> "x"));
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T1.4.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T1.4.js
new file mode 100644
index 000000000..ba2d5ccbe
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T1.4.js
@@ -0,0 +1,29 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A3_T1.4;
+ * @section: 11.7.2;
+ * @assertion: Operator x >> y returns ToNumber(x) >> ToNumber(y);
+ * @description: Type(x) and Type(y) vary between Null and Undefined;
+ */
+
+//CHECK#1
+if (null >> undefined !== 0) {
+ $ERROR('#1: null >> undefined === 0. Actual: ' + (null >> undefined));
+}
+
+//CHECK#2
+if (undefined >> null !== 0) {
+ $ERROR('#2: undefined >> null === 0. Actual: ' + (undefined >> null));
+}
+
+//CHECK#3
+if (undefined >> undefined !== 0) {
+ $ERROR('#3: undefined >> undefined === 0. Actual: ' + (undefined >> undefined));
+}
+
+//CHECK#4
+if (null >> null !== 0) {
+ $ERROR('#4: null >> null === 0. Actual: ' + (null >> null));
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T1.5.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T1.5.js
new file mode 100644
index 000000000..134e3bf5d
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T1.5.js
@@ -0,0 +1,30 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A3_T1.5;
+ * @section: 11.7.2;
+ * @assertion: Operator x >> y returns ToNumber(x) >> ToNumber(y);
+ * @description: Type(x) and Type(y) vary between Object object and Function object;
+ */
+
+//CHECK#1
+if (({} >> function(){return 1}) !== 0) {
+ $ERROR('#1: ({} >> function(){return 1}) === 0. Actual: ' + (({} >> function(){return 1})));
+}
+
+//CHECK#2
+if ((function(){return 1} >> {}) !== 0) {
+ $ERROR('#2: (function(){return 1} >> {}) === 0. Actual: ' + ((function(){return 1} >> {})));
+}
+
+//CHECK#3
+if ((function(){return 1} >> function(){return 1}) !== 0) {
+ $ERROR('#3: (function(){return 1} >> function(){return 1}) === 0. Actual: ' + ((function(){return 1} >> function(){return 1})));
+}
+
+//CHECK#4
+if (({} >> {}) !== 0) {
+ $ERROR('#4: ({} >> {}) === 0. Actual: ' + (({} >> {})));
+}
+
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.1.js
new file mode 100644
index 000000000..10f291659
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.1.js
@@ -0,0 +1,49 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A3_T2.1;
+ * @section: 11.7.2;
+ * @assertion: Operator x >> y returns ToNumber(x) >> ToNumber(y);
+ * @description: Type(x) is different from Type(y) and both types vary between Number (primitive or object) and Boolean (primitive and object);
+ */
+
+//CHECK#1
+if (true >> 1 !== 0) {
+ $ERROR('#1: true >> 1 === 0. Actual: ' + (true >> 1));
+}
+
+//CHECK#2
+if (1 >> true !== 0) {
+ $ERROR('#2: 1 >> true === 0. Actual: ' + (1 >> true));
+}
+
+//CHECK#3
+if (new Boolean(true) >> 1 !== 0) {
+ $ERROR('#3: new Boolean(true) >> 1 === 0. Actual: ' + (new Boolean(true) >> 1));
+}
+
+//CHECK#4
+if (1 >> new Boolean(true) !== 0) {
+ $ERROR('#4: 1 >> new Boolean(true) === 0. Actual: ' + (1 >> new Boolean(true)));
+}
+
+//CHECK#5
+if (true >> new Number(1) !== 0) {
+ $ERROR('#5: true >> new Number(1) === 0. Actual: ' + (true >> new Number(1)));
+}
+
+//CHECK#6
+if (new Number(1) >> true !== 0) {
+ $ERROR('#6: new Number(1) >> true === 0. Actual: ' + (new Number(1) >> true));
+}
+
+//CHECK#7
+if (new Boolean(true) >> new Number(1) !== 0) {
+ $ERROR('#7: new Boolean(true) >> new Number(1) === 0. Actual: ' + (new Boolean(true) >> new Number(1)));
+}
+
+//CHECK#8
+if (new Number(1) >> new Boolean(true) !== 0) {
+ $ERROR('#8: new Number(1) >> new Boolean(true) === 0. Actual: ' + (new Number(1) >> new Boolean(true)));
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.2.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.2.js
new file mode 100644
index 000000000..7a2078ebc
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.2.js
@@ -0,0 +1,59 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A3_T2.2;
+ * @section: 11.7.2;
+ * @assertion: Operator x >> y returns ToNumber(x) >> ToNumber(y);
+ * @description: Type(x) is different from Type(y) and both types vary between Number (primitive or object) and String (primitive and object);
+*/
+
+//CHECK#1
+if ("1" >> 1 !== 0) {
+ $ERROR('#1: "1" >> 1 === 0. Actual: ' + ("1" >> 1));
+}
+
+//CHECK#2
+if (1 >> "1" !== 0) {
+ $ERROR('#2: 1 >> "1" === 0. Actual: ' + (1 >> "1"));
+}
+
+//CHECK#3
+if (new String("1") >> 1 !== 0) {
+ $ERROR('#3: new String("1") >> 1 === 0. Actual: ' + (new String("1") >> 1));
+}
+
+//CHECK#4
+if (1 >> new String("1") !== 0) {
+ $ERROR('#4: 1 >> new String("1") === 0. Actual: ' + (1 >> new String("1")));
+}
+
+//CHECK#5
+if ("1" >> new Number(1) !== 0) {
+ $ERROR('#5: "1" >> new Number(1) === 0. Actual: ' + ("1" >> new Number(1)));
+}
+
+//CHECK#6
+if (new Number(1) >> "1" !== 0) {
+ $ERROR('#6: new Number(1) >> "1" === 0. Actual: ' + (new Number(1) >> "1"));
+}
+
+//CHECK#7
+if (new String("1") >> new Number(1) !== 0) {
+ $ERROR('#7: new String("1") >> new Number(1) === 0. Actual: ' + (new String("1") >> new Number(1)));
+}
+
+//CHECK#8
+if (new Number(1) >> new String("1") !== 0) {
+ $ERROR('#8: new Number(1) >> new String("1") === 0. Actual: ' + (new Number(1) >> new String("1")));
+}
+
+//CHECK#9
+if ("x" >> 1 !== 0) {
+ $ERROR('#9: "x" >> 1 === 0. Actual: ' + ("x" >> 1));
+}
+
+//CHECK#10
+if (1 >> "x" !== 1) {
+ $ERROR('#10: 1 >> "x" === 1. Actual: ' + (1 >> "x"));
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.3.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.3.js
new file mode 100644
index 000000000..0b148f33d
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.3.js
@@ -0,0 +1,29 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A3_T2.3;
+ * @section: 11.7.2;
+ * @assertion: Operator x >> y returns ToNumber(x) >> ToNumber(y);
+ * @description: Type(x) is different from Type(y) and both types vary between Number (primitive or object) and Null;
+ */
+
+//CHECK#1
+if (1 >> null !== 1) {
+ $ERROR('#1: 1 >> null === 1. Actual: ' + (1 >> null));
+}
+
+//CHECK#2
+if (null >> 1 !== 0) {
+ $ERROR('#2: null >> 1 === 0. Actual: ' + (null >> 1));
+}
+
+//CHECK#3
+if (new Number(1) >> null !== 1) {
+ $ERROR('#3: new Number(1) >> null === 1. Actual: ' + (new Number(1) >> null));
+}
+
+//CHECK#4
+if (null >> new Number(1) !== 0) {
+ $ERROR('#4: null >> new Number(1) === 0. Actual: ' + (null >> new Number(1)));
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.4.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.4.js
new file mode 100644
index 000000000..f7f461f66
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.4.js
@@ -0,0 +1,29 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A3_T2.4;
+ * @section: 11.7.2;
+ * @assertion: Operator x >> y returns ToNumber(x) >> ToNumber(y);
+ * @description: Type(x) is different from Type(y) and both types vary between Number (primitive or object) and Undefined;
+ */
+
+//CHECK#1
+if (1 >> undefined !== 1) {
+ $ERROR('#1: 1 >> undefined === 1. Actual: ' + (1 >> undefined));
+}
+
+//CHECK#2
+if (undefined >> 1 !== 0) {
+ $ERROR('#2: undefined >> 1 === 0. Actual: ' + (undefined >> 1));
+}
+
+//CHECK#3
+if (new Number(1) >> undefined !== 1) {
+ $ERROR('#3: new Number(1) >> undefined === 1. Actual: ' + (new Number(1) >> undefined));
+}
+
+//CHECK#4
+if (undefined >> new Number(1) !== 0) {
+ $ERROR('#4: undefined >> new Number(1) === 0. Actual: ' + (undefined >> new Number(1)));
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.5.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.5.js
new file mode 100644
index 000000000..6c5d897be
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.5.js
@@ -0,0 +1,49 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A3_T2.5;
+ * @section: 11.7.2;
+ * @assertion: Operator x >> y returns ToNumber(x) >> ToNumber(y);
+ * @description: Type(x) is different from Type(y) and both types vary between String (primitive or object) and Boolean (primitive and object);
+*/
+
+//CHECK#1
+if (true >> "1" !== 0) {
+ $ERROR('#1: true >> "1" === 0. Actual: ' + (true >> "1"));
+}
+
+//CHECK#2
+if ("1" >> true !== 0) {
+ $ERROR('#2: "1" >> true === 0. Actual: ' + ("1" >> true));
+}
+
+//CHECK#3
+if (new Boolean(true) >> "1" !== 0) {
+ $ERROR('#3: new Boolean(true) >> "1" === 0. Actual: ' + (new Boolean(true) >> "1"));
+}
+
+//CHECK#4
+if ("1" >> new Boolean(true) !== 0) {
+ $ERROR('#4: "1" >> new Boolean(true) === 0. Actual: ' + ("1" >> new Boolean(true)));
+}
+
+//CHECK#5
+if (true >> new String("1") !== 0) {
+ $ERROR('#5: true >> new String("1") === 0. Actual: ' + (true >> new String("1")));
+}
+
+//CHECK#6
+if (new String("1") >> true !== 0) {
+ $ERROR('#6: new String("1") >> true === 0. Actual: ' + (new String("1") >> true));
+}
+
+//CHECK#7
+if (new Boolean(true) >> new String("1") !== 0) {
+ $ERROR('#7: new Boolean(true) >> new String("1") === 0. Actual: ' + (new Boolean(true) >> new String("1")));
+}
+
+//CHECK#8
+if (new String("1") >> new Boolean(true) !== 0) {
+ $ERROR('#8: new String("1") >> new Boolean(true) === 0. Actual: ' + (new String("1") >> new Boolean(true)));
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.6.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.6.js
new file mode 100644
index 000000000..567d6b773
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.6.js
@@ -0,0 +1,29 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A3_T2.6;
+ * @section: 11.7.2;
+ * @assertion: Operator x >> y returns ToNumber(x) >> ToNumber(y);
+ * @description: Type(x) is different from Type(y) and both types vary between String (primitive or object) and Undefined;
+ */
+
+//CHECK#1
+if ("1" >> undefined !== 1) {
+ $ERROR('#1: "1" >> undefined === 1. Actual: ' + ("1" >> undefined));
+}
+
+//CHECK#2
+if (undefined >> "1" !== 0) {
+ $ERROR('#2: undefined >> "1" === 0. Actual: ' + (undefined >> "1"));
+}
+
+//CHECK#3
+if (new String("1") >> undefined !== 1) {
+ $ERROR('#3: new String("1") >> undefined === 1. Actual: ' + (new String("1") >> undefined));
+}
+
+//CHECK#4
+if (undefined >> new String("1") !== 0) {
+ $ERROR('#4: undefined >> new String("1") === 0. Actual: ' + (undefined >> new String("1")));
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.7.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.7.js
new file mode 100644
index 000000000..5e254c66b
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.7.js
@@ -0,0 +1,29 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A3_T2.7;
+ * @section: 11.7.2;
+ * @assertion: Operator x >> y returns ToNumber(x) >> ToNumber(y);
+ * @description: Type(x) is different from Type(y) and both types vary between String (primitive or object) and Null;
+ */
+
+//CHECK#1
+if ("1" >> null !== 1) {
+ $ERROR('#1: "1" >> null === 1. Actual: ' + ("1" >> null));
+}
+
+//CHECK#2
+if (null >> "1" !== 0) {
+ $ERROR('#2: null >> "1" === 0. Actual: ' + (null >> "1"));
+}
+
+//CHECK#3
+if (new String("1") >> null !== 1) {
+ $ERROR('#3: new String("1") >> null === 1. Actual: ' + (new String("1") >> null));
+}
+
+//CHECK#4
+if (null >> new String("1") !== 0) {
+ $ERROR('#4: null >> new String("1") === 0. Actual: ' + (null >> new String("1")));
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.8.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.8.js
new file mode 100644
index 000000000..7f37aa219
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.8.js
@@ -0,0 +1,29 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A3_T2.8;
+ * @section: 11.7.2;
+ * @assertion: Operator x >> y returns ToNumber(x) >> ToNumber(y);
+ * @description: Type(x) is different from Type(y) and both types vary between Boolean (primitive or object) and Undefined;
+ */
+
+//CHECK#1
+if (true >> undefined !== 1) {
+ $ERROR('#1: true >> undefined === 1. Actual: ' + (true >> undefined));
+}
+
+//CHECK#2
+if (undefined >> true !== 0) {
+ $ERROR('#2: undefined >> true === 0. Actual: ' + (undefined >> true));
+}
+
+//CHECK#3
+if (new Boolean(true) >> undefined !== 1) {
+ $ERROR('#3: new Boolean(true) >> undefined === 1. Actual: ' + (new Boolean(true) >> undefined));
+}
+
+//CHECK#4
+if (undefined >> new Boolean(true) !== 0) {
+ $ERROR('#4: undefined >> new Boolean(true) === 0. Actual: ' + (undefined >> new Boolean(true)));
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.9.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.9.js
new file mode 100644
index 000000000..733306fba
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A3_T2.9.js
@@ -0,0 +1,29 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A3_T2.9;
+ * @section: 11.7.2;
+ * @assertion: Operator x >> y returns ToNumber(x) >> ToNumber(y);
+ * @description: Type(x) is different from Type(y) and both types vary between Boolean (primitive or object) and Null;
+ */
+
+//CHECK#1
+if (true >> null !== 1) {
+ $ERROR('#1: true >> null === 1. Actual: ' + (true >> null));
+}
+
+//CHECK#2
+if (null >> true !== 0) {
+ $ERROR('#2: null >> true === 0. Actual: ' + (null >> true));
+}
+
+//CHECK#3
+if (new Boolean(true) >> null !== 1) {
+ $ERROR('#3: new Boolean(true) >> null === 1. Actual: ' + (new Boolean(true) >> null));
+}
+
+//CHECK#4
+if (null >> new Boolean(true) !== 0) {
+ $ERROR('#4: null >> new Boolean(true) === 0. Actual: ' + (null >> new Boolean(true)));
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A4_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A4_T1.js
new file mode 100644
index 000000000..1369a8649
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A4_T1.js
@@ -0,0 +1,2570 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A4_T1;
+ * @section: 11.7.2;
+ * @assertion: Check x >> y operator in distinct points;
+ * @description: ShiftExpression = -2^n, n = 0...15;
+ */
+
+//CHECK
+
+if (-1 >> 0 !== -1) {
+ $ERROR('#1: -1 >> 0 === -1. Actual: ' + (-1 >> 0));
+}
+
+
+if (-2 >> 0 !== -2) {
+ $ERROR('#2: -2 >> 0 === -2. Actual: ' + (-2 >> 0));
+}
+
+
+if (-4 >> 0 !== -4) {
+ $ERROR('#3: -4 >> 0 === -4. Actual: ' + (-4 >> 0));
+}
+
+
+if (-8 >> 0 !== -8) {
+ $ERROR('#4: -8 >> 0 === -8. Actual: ' + (-8 >> 0));
+}
+
+
+if (-16 >> 0 !== -16) {
+ $ERROR('#5: -16 >> 0 === -16. Actual: ' + (-16 >> 0));
+}
+
+
+if (-32 >> 0 !== -32) {
+ $ERROR('#6: -32 >> 0 === -32. Actual: ' + (-32 >> 0));
+}
+
+
+if (-64 >> 0 !== -64) {
+ $ERROR('#7: -64 >> 0 === -64. Actual: ' + (-64 >> 0));
+}
+
+
+if (-128 >> 0 !== -128) {
+ $ERROR('#8: -128 >> 0 === -128. Actual: ' + (-128 >> 0));
+}
+
+
+if (-256 >> 0 !== -256) {
+ $ERROR('#9: -256 >> 0 === -256. Actual: ' + (-256 >> 0));
+}
+
+
+if (-512 >> 0 !== -512) {
+ $ERROR('#10: -512 >> 0 === -512. Actual: ' + (-512 >> 0));
+}
+
+
+if (-1024 >> 0 !== -1024) {
+ $ERROR('#11: -1024 >> 0 === -1024. Actual: ' + (-1024 >> 0));
+}
+
+
+if (-2048 >> 0 !== -2048) {
+ $ERROR('#12: -2048 >> 0 === -2048. Actual: ' + (-2048 >> 0));
+}
+
+
+if (-4096 >> 0 !== -4096) {
+ $ERROR('#13: -4096 >> 0 === -4096. Actual: ' + (-4096 >> 0));
+}
+
+
+if (-8192 >> 0 !== -8192) {
+ $ERROR('#14: -8192 >> 0 === -8192. Actual: ' + (-8192 >> 0));
+}
+
+
+if (-16384 >> 0 !== -16384) {
+ $ERROR('#15: -16384 >> 0 === -16384. Actual: ' + (-16384 >> 0));
+}
+
+
+if (-32768 >> 0 !== -32768) {
+ $ERROR('#16: -32768 >> 0 === -32768. Actual: ' + (-32768 >> 0));
+}
+
+
+if (-65536 >> 0 !== -65536) {
+ $ERROR('#17: -65536 >> 0 === -65536. Actual: ' + (-65536 >> 0));
+}
+
+
+if (-131072 >> 0 !== -131072) {
+ $ERROR('#18: -131072 >> 0 === -131072. Actual: ' + (-131072 >> 0));
+}
+
+
+if (-262144 >> 0 !== -262144) {
+ $ERROR('#19: -262144 >> 0 === -262144. Actual: ' + (-262144 >> 0));
+}
+
+
+if (-524288 >> 0 !== -524288) {
+ $ERROR('#20: -524288 >> 0 === -524288. Actual: ' + (-524288 >> 0));
+}
+
+
+if (-1048576 >> 0 !== -1048576) {
+ $ERROR('#21: -1048576 >> 0 === -1048576. Actual: ' + (-1048576 >> 0));
+}
+
+
+if (-2097152 >> 0 !== -2097152) {
+ $ERROR('#22: -2097152 >> 0 === -2097152. Actual: ' + (-2097152 >> 0));
+}
+
+
+if (-4194304 >> 0 !== -4194304) {
+ $ERROR('#23: -4194304 >> 0 === -4194304. Actual: ' + (-4194304 >> 0));
+}
+
+
+if (-8388608 >> 0 !== -8388608) {
+ $ERROR('#24: -8388608 >> 0 === -8388608. Actual: ' + (-8388608 >> 0));
+}
+
+
+if (-16777216 >> 0 !== -16777216) {
+ $ERROR('#25: -16777216 >> 0 === -16777216. Actual: ' + (-16777216 >> 0));
+}
+
+
+if (-33554432 >> 0 !== -33554432) {
+ $ERROR('#26: -33554432 >> 0 === -33554432. Actual: ' + (-33554432 >> 0));
+}
+
+
+if (-67108864 >> 0 !== -67108864) {
+ $ERROR('#27: -67108864 >> 0 === -67108864. Actual: ' + (-67108864 >> 0));
+}
+
+
+if (-134217728 >> 0 !== -134217728) {
+ $ERROR('#28: -134217728 >> 0 === -134217728. Actual: ' + (-134217728 >> 0));
+}
+
+
+if (-268435456 >> 0 !== -268435456) {
+ $ERROR('#29: -268435456 >> 0 === -268435456. Actual: ' + (-268435456 >> 0));
+}
+
+
+if (-536870912 >> 0 !== -536870912) {
+ $ERROR('#30: -536870912 >> 0 === -536870912. Actual: ' + (-536870912 >> 0));
+}
+
+
+if (-1073741824 >> 0 !== -1073741824) {
+ $ERROR('#31: -1073741824 >> 0 === -1073741824. Actual: ' + (-1073741824 >> 0));
+}
+
+
+if (-2147483648 >> 0 !== -2147483648) {
+ $ERROR('#32: -2147483648 >> 0 === -2147483648. Actual: ' + (-2147483648 >> 0));
+}
+
+
+if (-1 >> 1 !== -1) {
+ $ERROR('#33: -1 >> 1 === -1. Actual: ' + (-1 >> 1));
+}
+
+
+if (-2 >> 1 !== -1) {
+ $ERROR('#34: -2 >> 1 === -1. Actual: ' + (-2 >> 1));
+}
+
+
+if (-4 >> 1 !== -2) {
+ $ERROR('#35: -4 >> 1 === -2. Actual: ' + (-4 >> 1));
+}
+
+
+if (-8 >> 1 !== -4) {
+ $ERROR('#36: -8 >> 1 === -4. Actual: ' + (-8 >> 1));
+}
+
+
+if (-16 >> 1 !== -8) {
+ $ERROR('#37: -16 >> 1 === -8. Actual: ' + (-16 >> 1));
+}
+
+
+if (-32 >> 1 !== -16) {
+ $ERROR('#38: -32 >> 1 === -16. Actual: ' + (-32 >> 1));
+}
+
+
+if (-64 >> 1 !== -32) {
+ $ERROR('#39: -64 >> 1 === -32. Actual: ' + (-64 >> 1));
+}
+
+
+if (-128 >> 1 !== -64) {
+ $ERROR('#40: -128 >> 1 === -64. Actual: ' + (-128 >> 1));
+}
+
+
+if (-256 >> 1 !== -128) {
+ $ERROR('#41: -256 >> 1 === -128. Actual: ' + (-256 >> 1));
+}
+
+
+if (-512 >> 1 !== -256) {
+ $ERROR('#42: -512 >> 1 === -256. Actual: ' + (-512 >> 1));
+}
+
+
+if (-1024 >> 1 !== -512) {
+ $ERROR('#43: -1024 >> 1 === -512. Actual: ' + (-1024 >> 1));
+}
+
+
+if (-2048 >> 1 !== -1024) {
+ $ERROR('#44: -2048 >> 1 === -1024. Actual: ' + (-2048 >> 1));
+}
+
+
+if (-4096 >> 1 !== -2048) {
+ $ERROR('#45: -4096 >> 1 === -2048. Actual: ' + (-4096 >> 1));
+}
+
+
+if (-8192 >> 1 !== -4096) {
+ $ERROR('#46: -8192 >> 1 === -4096. Actual: ' + (-8192 >> 1));
+}
+
+
+if (-16384 >> 1 !== -8192) {
+ $ERROR('#47: -16384 >> 1 === -8192. Actual: ' + (-16384 >> 1));
+}
+
+
+if (-32768 >> 1 !== -16384) {
+ $ERROR('#48: -32768 >> 1 === -16384. Actual: ' + (-32768 >> 1));
+}
+
+
+if (-65536 >> 1 !== -32768) {
+ $ERROR('#49: -65536 >> 1 === -32768. Actual: ' + (-65536 >> 1));
+}
+
+
+if (-131072 >> 1 !== -65536) {
+ $ERROR('#50: -131072 >> 1 === -65536. Actual: ' + (-131072 >> 1));
+}
+
+
+if (-262144 >> 1 !== -131072) {
+ $ERROR('#51: -262144 >> 1 === -131072. Actual: ' + (-262144 >> 1));
+}
+
+
+if (-524288 >> 1 !== -262144) {
+ $ERROR('#52: -524288 >> 1 === -262144. Actual: ' + (-524288 >> 1));
+}
+
+
+if (-1048576 >> 1 !== -524288) {
+ $ERROR('#53: -1048576 >> 1 === -524288. Actual: ' + (-1048576 >> 1));
+}
+
+
+if (-2097152 >> 1 !== -1048576) {
+ $ERROR('#54: -2097152 >> 1 === -1048576. Actual: ' + (-2097152 >> 1));
+}
+
+
+if (-4194304 >> 1 !== -2097152) {
+ $ERROR('#55: -4194304 >> 1 === -2097152. Actual: ' + (-4194304 >> 1));
+}
+
+
+if (-8388608 >> 1 !== -4194304) {
+ $ERROR('#56: -8388608 >> 1 === -4194304. Actual: ' + (-8388608 >> 1));
+}
+
+
+if (-16777216 >> 1 !== -8388608) {
+ $ERROR('#57: -16777216 >> 1 === -8388608. Actual: ' + (-16777216 >> 1));
+}
+
+
+if (-33554432 >> 1 !== -16777216) {
+ $ERROR('#58: -33554432 >> 1 === -16777216. Actual: ' + (-33554432 >> 1));
+}
+
+
+if (-67108864 >> 1 !== -33554432) {
+ $ERROR('#59: -67108864 >> 1 === -33554432. Actual: ' + (-67108864 >> 1));
+}
+
+
+if (-134217728 >> 1 !== -67108864) {
+ $ERROR('#60: -134217728 >> 1 === -67108864. Actual: ' + (-134217728 >> 1));
+}
+
+
+if (-268435456 >> 1 !== -134217728) {
+ $ERROR('#61: -268435456 >> 1 === -134217728. Actual: ' + (-268435456 >> 1));
+}
+
+
+if (-536870912 >> 1 !== -268435456) {
+ $ERROR('#62: -536870912 >> 1 === -268435456. Actual: ' + (-536870912 >> 1));
+}
+
+
+if (-1073741824 >> 1 !== -536870912) {
+ $ERROR('#63: -1073741824 >> 1 === -536870912. Actual: ' + (-1073741824 >> 1));
+}
+
+
+if (-2147483648 >> 1 !== -1073741824) {
+ $ERROR('#64: -2147483648 >> 1 === -1073741824. Actual: ' + (-2147483648 >> 1));
+}
+
+
+if (-1 >> 2 !== -1) {
+ $ERROR('#65: -1 >> 2 === -1. Actual: ' + (-1 >> 2));
+}
+
+
+if (-2 >> 2 !== -1) {
+ $ERROR('#66: -2 >> 2 === -1. Actual: ' + (-2 >> 2));
+}
+
+
+if (-4 >> 2 !== -1) {
+ $ERROR('#67: -4 >> 2 === -1. Actual: ' + (-4 >> 2));
+}
+
+
+if (-8 >> 2 !== -2) {
+ $ERROR('#68: -8 >> 2 === -2. Actual: ' + (-8 >> 2));
+}
+
+
+if (-16 >> 2 !== -4) {
+ $ERROR('#69: -16 >> 2 === -4. Actual: ' + (-16 >> 2));
+}
+
+
+if (-32 >> 2 !== -8) {
+ $ERROR('#70: -32 >> 2 === -8. Actual: ' + (-32 >> 2));
+}
+
+
+if (-64 >> 2 !== -16) {
+ $ERROR('#71: -64 >> 2 === -16. Actual: ' + (-64 >> 2));
+}
+
+
+if (-128 >> 2 !== -32) {
+ $ERROR('#72: -128 >> 2 === -32. Actual: ' + (-128 >> 2));
+}
+
+
+if (-256 >> 2 !== -64) {
+ $ERROR('#73: -256 >> 2 === -64. Actual: ' + (-256 >> 2));
+}
+
+
+if (-512 >> 2 !== -128) {
+ $ERROR('#74: -512 >> 2 === -128. Actual: ' + (-512 >> 2));
+}
+
+
+if (-1024 >> 2 !== -256) {
+ $ERROR('#75: -1024 >> 2 === -256. Actual: ' + (-1024 >> 2));
+}
+
+
+if (-2048 >> 2 !== -512) {
+ $ERROR('#76: -2048 >> 2 === -512. Actual: ' + (-2048 >> 2));
+}
+
+
+if (-4096 >> 2 !== -1024) {
+ $ERROR('#77: -4096 >> 2 === -1024. Actual: ' + (-4096 >> 2));
+}
+
+
+if (-8192 >> 2 !== -2048) {
+ $ERROR('#78: -8192 >> 2 === -2048. Actual: ' + (-8192 >> 2));
+}
+
+
+if (-16384 >> 2 !== -4096) {
+ $ERROR('#79: -16384 >> 2 === -4096. Actual: ' + (-16384 >> 2));
+}
+
+
+if (-32768 >> 2 !== -8192) {
+ $ERROR('#80: -32768 >> 2 === -8192. Actual: ' + (-32768 >> 2));
+}
+
+
+if (-65536 >> 2 !== -16384) {
+ $ERROR('#81: -65536 >> 2 === -16384. Actual: ' + (-65536 >> 2));
+}
+
+
+if (-131072 >> 2 !== -32768) {
+ $ERROR('#82: -131072 >> 2 === -32768. Actual: ' + (-131072 >> 2));
+}
+
+
+if (-262144 >> 2 !== -65536) {
+ $ERROR('#83: -262144 >> 2 === -65536. Actual: ' + (-262144 >> 2));
+}
+
+
+if (-524288 >> 2 !== -131072) {
+ $ERROR('#84: -524288 >> 2 === -131072. Actual: ' + (-524288 >> 2));
+}
+
+
+if (-1048576 >> 2 !== -262144) {
+ $ERROR('#85: -1048576 >> 2 === -262144. Actual: ' + (-1048576 >> 2));
+}
+
+
+if (-2097152 >> 2 !== -524288) {
+ $ERROR('#86: -2097152 >> 2 === -524288. Actual: ' + (-2097152 >> 2));
+}
+
+
+if (-4194304 >> 2 !== -1048576) {
+ $ERROR('#87: -4194304 >> 2 === -1048576. Actual: ' + (-4194304 >> 2));
+}
+
+
+if (-8388608 >> 2 !== -2097152) {
+ $ERROR('#88: -8388608 >> 2 === -2097152. Actual: ' + (-8388608 >> 2));
+}
+
+
+if (-16777216 >> 2 !== -4194304) {
+ $ERROR('#89: -16777216 >> 2 === -4194304. Actual: ' + (-16777216 >> 2));
+}
+
+
+if (-33554432 >> 2 !== -8388608) {
+ $ERROR('#90: -33554432 >> 2 === -8388608. Actual: ' + (-33554432 >> 2));
+}
+
+
+if (-67108864 >> 2 !== -16777216) {
+ $ERROR('#91: -67108864 >> 2 === -16777216. Actual: ' + (-67108864 >> 2));
+}
+
+
+if (-134217728 >> 2 !== -33554432) {
+ $ERROR('#92: -134217728 >> 2 === -33554432. Actual: ' + (-134217728 >> 2));
+}
+
+
+if (-268435456 >> 2 !== -67108864) {
+ $ERROR('#93: -268435456 >> 2 === -67108864. Actual: ' + (-268435456 >> 2));
+}
+
+
+if (-536870912 >> 2 !== -134217728) {
+ $ERROR('#94: -536870912 >> 2 === -134217728. Actual: ' + (-536870912 >> 2));
+}
+
+
+if (-1073741824 >> 2 !== -268435456) {
+ $ERROR('#95: -1073741824 >> 2 === -268435456. Actual: ' + (-1073741824 >> 2));
+}
+
+
+if (-2147483648 >> 2 !== -536870912) {
+ $ERROR('#96: -2147483648 >> 2 === -536870912. Actual: ' + (-2147483648 >> 2));
+}
+
+
+if (-1 >> 3 !== -1) {
+ $ERROR('#97: -1 >> 3 === -1. Actual: ' + (-1 >> 3));
+}
+
+
+if (-2 >> 3 !== -1) {
+ $ERROR('#98: -2 >> 3 === -1. Actual: ' + (-2 >> 3));
+}
+
+
+if (-4 >> 3 !== -1) {
+ $ERROR('#99: -4 >> 3 === -1. Actual: ' + (-4 >> 3));
+}
+
+
+if (-8 >> 3 !== -1) {
+ $ERROR('#100: -8 >> 3 === -1. Actual: ' + (-8 >> 3));
+}
+
+
+if (-16 >> 3 !== -2) {
+ $ERROR('#101: -16 >> 3 === -2. Actual: ' + (-16 >> 3));
+}
+
+
+if (-32 >> 3 !== -4) {
+ $ERROR('#102: -32 >> 3 === -4. Actual: ' + (-32 >> 3));
+}
+
+
+if (-64 >> 3 !== -8) {
+ $ERROR('#103: -64 >> 3 === -8. Actual: ' + (-64 >> 3));
+}
+
+
+if (-128 >> 3 !== -16) {
+ $ERROR('#104: -128 >> 3 === -16. Actual: ' + (-128 >> 3));
+}
+
+
+if (-256 >> 3 !== -32) {
+ $ERROR('#105: -256 >> 3 === -32. Actual: ' + (-256 >> 3));
+}
+
+
+if (-512 >> 3 !== -64) {
+ $ERROR('#106: -512 >> 3 === -64. Actual: ' + (-512 >> 3));
+}
+
+
+if (-1024 >> 3 !== -128) {
+ $ERROR('#107: -1024 >> 3 === -128. Actual: ' + (-1024 >> 3));
+}
+
+
+if (-2048 >> 3 !== -256) {
+ $ERROR('#108: -2048 >> 3 === -256. Actual: ' + (-2048 >> 3));
+}
+
+
+if (-4096 >> 3 !== -512) {
+ $ERROR('#109: -4096 >> 3 === -512. Actual: ' + (-4096 >> 3));
+}
+
+
+if (-8192 >> 3 !== -1024) {
+ $ERROR('#110: -8192 >> 3 === -1024. Actual: ' + (-8192 >> 3));
+}
+
+
+if (-16384 >> 3 !== -2048) {
+ $ERROR('#111: -16384 >> 3 === -2048. Actual: ' + (-16384 >> 3));
+}
+
+
+if (-32768 >> 3 !== -4096) {
+ $ERROR('#112: -32768 >> 3 === -4096. Actual: ' + (-32768 >> 3));
+}
+
+
+if (-65536 >> 3 !== -8192) {
+ $ERROR('#113: -65536 >> 3 === -8192. Actual: ' + (-65536 >> 3));
+}
+
+
+if (-131072 >> 3 !== -16384) {
+ $ERROR('#114: -131072 >> 3 === -16384. Actual: ' + (-131072 >> 3));
+}
+
+
+if (-262144 >> 3 !== -32768) {
+ $ERROR('#115: -262144 >> 3 === -32768. Actual: ' + (-262144 >> 3));
+}
+
+
+if (-524288 >> 3 !== -65536) {
+ $ERROR('#116: -524288 >> 3 === -65536. Actual: ' + (-524288 >> 3));
+}
+
+
+if (-1048576 >> 3 !== -131072) {
+ $ERROR('#117: -1048576 >> 3 === -131072. Actual: ' + (-1048576 >> 3));
+}
+
+
+if (-2097152 >> 3 !== -262144) {
+ $ERROR('#118: -2097152 >> 3 === -262144. Actual: ' + (-2097152 >> 3));
+}
+
+
+if (-4194304 >> 3 !== -524288) {
+ $ERROR('#119: -4194304 >> 3 === -524288. Actual: ' + (-4194304 >> 3));
+}
+
+
+if (-8388608 >> 3 !== -1048576) {
+ $ERROR('#120: -8388608 >> 3 === -1048576. Actual: ' + (-8388608 >> 3));
+}
+
+
+if (-16777216 >> 3 !== -2097152) {
+ $ERROR('#121: -16777216 >> 3 === -2097152. Actual: ' + (-16777216 >> 3));
+}
+
+
+if (-33554432 >> 3 !== -4194304) {
+ $ERROR('#122: -33554432 >> 3 === -4194304. Actual: ' + (-33554432 >> 3));
+}
+
+
+if (-67108864 >> 3 !== -8388608) {
+ $ERROR('#123: -67108864 >> 3 === -8388608. Actual: ' + (-67108864 >> 3));
+}
+
+
+if (-134217728 >> 3 !== -16777216) {
+ $ERROR('#124: -134217728 >> 3 === -16777216. Actual: ' + (-134217728 >> 3));
+}
+
+
+if (-268435456 >> 3 !== -33554432) {
+ $ERROR('#125: -268435456 >> 3 === -33554432. Actual: ' + (-268435456 >> 3));
+}
+
+
+if (-536870912 >> 3 !== -67108864) {
+ $ERROR('#126: -536870912 >> 3 === -67108864. Actual: ' + (-536870912 >> 3));
+}
+
+
+if (-1073741824 >> 3 !== -134217728) {
+ $ERROR('#127: -1073741824 >> 3 === -134217728. Actual: ' + (-1073741824 >> 3));
+}
+
+
+if (-2147483648 >> 3 !== -268435456) {
+ $ERROR('#128: -2147483648 >> 3 === -268435456. Actual: ' + (-2147483648 >> 3));
+}
+
+
+if (-1 >> 4 !== -1) {
+ $ERROR('#129: -1 >> 4 === -1. Actual: ' + (-1 >> 4));
+}
+
+
+if (-2 >> 4 !== -1) {
+ $ERROR('#130: -2 >> 4 === -1. Actual: ' + (-2 >> 4));
+}
+
+
+if (-4 >> 4 !== -1) {
+ $ERROR('#131: -4 >> 4 === -1. Actual: ' + (-4 >> 4));
+}
+
+
+if (-8 >> 4 !== -1) {
+ $ERROR('#132: -8 >> 4 === -1. Actual: ' + (-8 >> 4));
+}
+
+
+if (-16 >> 4 !== -1) {
+ $ERROR('#133: -16 >> 4 === -1. Actual: ' + (-16 >> 4));
+}
+
+
+if (-32 >> 4 !== -2) {
+ $ERROR('#134: -32 >> 4 === -2. Actual: ' + (-32 >> 4));
+}
+
+
+if (-64 >> 4 !== -4) {
+ $ERROR('#135: -64 >> 4 === -4. Actual: ' + (-64 >> 4));
+}
+
+
+if (-128 >> 4 !== -8) {
+ $ERROR('#136: -128 >> 4 === -8. Actual: ' + (-128 >> 4));
+}
+
+
+if (-256 >> 4 !== -16) {
+ $ERROR('#137: -256 >> 4 === -16. Actual: ' + (-256 >> 4));
+}
+
+
+if (-512 >> 4 !== -32) {
+ $ERROR('#138: -512 >> 4 === -32. Actual: ' + (-512 >> 4));
+}
+
+
+if (-1024 >> 4 !== -64) {
+ $ERROR('#139: -1024 >> 4 === -64. Actual: ' + (-1024 >> 4));
+}
+
+
+if (-2048 >> 4 !== -128) {
+ $ERROR('#140: -2048 >> 4 === -128. Actual: ' + (-2048 >> 4));
+}
+
+
+if (-4096 >> 4 !== -256) {
+ $ERROR('#141: -4096 >> 4 === -256. Actual: ' + (-4096 >> 4));
+}
+
+
+if (-8192 >> 4 !== -512) {
+ $ERROR('#142: -8192 >> 4 === -512. Actual: ' + (-8192 >> 4));
+}
+
+
+if (-16384 >> 4 !== -1024) {
+ $ERROR('#143: -16384 >> 4 === -1024. Actual: ' + (-16384 >> 4));
+}
+
+
+if (-32768 >> 4 !== -2048) {
+ $ERROR('#144: -32768 >> 4 === -2048. Actual: ' + (-32768 >> 4));
+}
+
+
+if (-65536 >> 4 !== -4096) {
+ $ERROR('#145: -65536 >> 4 === -4096. Actual: ' + (-65536 >> 4));
+}
+
+
+if (-131072 >> 4 !== -8192) {
+ $ERROR('#146: -131072 >> 4 === -8192. Actual: ' + (-131072 >> 4));
+}
+
+
+if (-262144 >> 4 !== -16384) {
+ $ERROR('#147: -262144 >> 4 === -16384. Actual: ' + (-262144 >> 4));
+}
+
+
+if (-524288 >> 4 !== -32768) {
+ $ERROR('#148: -524288 >> 4 === -32768. Actual: ' + (-524288 >> 4));
+}
+
+
+if (-1048576 >> 4 !== -65536) {
+ $ERROR('#149: -1048576 >> 4 === -65536. Actual: ' + (-1048576 >> 4));
+}
+
+
+if (-2097152 >> 4 !== -131072) {
+ $ERROR('#150: -2097152 >> 4 === -131072. Actual: ' + (-2097152 >> 4));
+}
+
+
+if (-4194304 >> 4 !== -262144) {
+ $ERROR('#151: -4194304 >> 4 === -262144. Actual: ' + (-4194304 >> 4));
+}
+
+
+if (-8388608 >> 4 !== -524288) {
+ $ERROR('#152: -8388608 >> 4 === -524288. Actual: ' + (-8388608 >> 4));
+}
+
+
+if (-16777216 >> 4 !== -1048576) {
+ $ERROR('#153: -16777216 >> 4 === -1048576. Actual: ' + (-16777216 >> 4));
+}
+
+
+if (-33554432 >> 4 !== -2097152) {
+ $ERROR('#154: -33554432 >> 4 === -2097152. Actual: ' + (-33554432 >> 4));
+}
+
+
+if (-67108864 >> 4 !== -4194304) {
+ $ERROR('#155: -67108864 >> 4 === -4194304. Actual: ' + (-67108864 >> 4));
+}
+
+
+if (-134217728 >> 4 !== -8388608) {
+ $ERROR('#156: -134217728 >> 4 === -8388608. Actual: ' + (-134217728 >> 4));
+}
+
+
+if (-268435456 >> 4 !== -16777216) {
+ $ERROR('#157: -268435456 >> 4 === -16777216. Actual: ' + (-268435456 >> 4));
+}
+
+
+if (-536870912 >> 4 !== -33554432) {
+ $ERROR('#158: -536870912 >> 4 === -33554432. Actual: ' + (-536870912 >> 4));
+}
+
+
+if (-1073741824 >> 4 !== -67108864) {
+ $ERROR('#159: -1073741824 >> 4 === -67108864. Actual: ' + (-1073741824 >> 4));
+}
+
+
+if (-2147483648 >> 4 !== -134217728) {
+ $ERROR('#160: -2147483648 >> 4 === -134217728. Actual: ' + (-2147483648 >> 4));
+}
+
+
+if (-1 >> 5 !== -1) {
+ $ERROR('#161: -1 >> 5 === -1. Actual: ' + (-1 >> 5));
+}
+
+
+if (-2 >> 5 !== -1) {
+ $ERROR('#162: -2 >> 5 === -1. Actual: ' + (-2 >> 5));
+}
+
+
+if (-4 >> 5 !== -1) {
+ $ERROR('#163: -4 >> 5 === -1. Actual: ' + (-4 >> 5));
+}
+
+
+if (-8 >> 5 !== -1) {
+ $ERROR('#164: -8 >> 5 === -1. Actual: ' + (-8 >> 5));
+}
+
+
+if (-16 >> 5 !== -1) {
+ $ERROR('#165: -16 >> 5 === -1. Actual: ' + (-16 >> 5));
+}
+
+
+if (-32 >> 5 !== -1) {
+ $ERROR('#166: -32 >> 5 === -1. Actual: ' + (-32 >> 5));
+}
+
+
+if (-64 >> 5 !== -2) {
+ $ERROR('#167: -64 >> 5 === -2. Actual: ' + (-64 >> 5));
+}
+
+
+if (-128 >> 5 !== -4) {
+ $ERROR('#168: -128 >> 5 === -4. Actual: ' + (-128 >> 5));
+}
+
+
+if (-256 >> 5 !== -8) {
+ $ERROR('#169: -256 >> 5 === -8. Actual: ' + (-256 >> 5));
+}
+
+
+if (-512 >> 5 !== -16) {
+ $ERROR('#170: -512 >> 5 === -16. Actual: ' + (-512 >> 5));
+}
+
+
+if (-1024 >> 5 !== -32) {
+ $ERROR('#171: -1024 >> 5 === -32. Actual: ' + (-1024 >> 5));
+}
+
+
+if (-2048 >> 5 !== -64) {
+ $ERROR('#172: -2048 >> 5 === -64. Actual: ' + (-2048 >> 5));
+}
+
+
+if (-4096 >> 5 !== -128) {
+ $ERROR('#173: -4096 >> 5 === -128. Actual: ' + (-4096 >> 5));
+}
+
+
+if (-8192 >> 5 !== -256) {
+ $ERROR('#174: -8192 >> 5 === -256. Actual: ' + (-8192 >> 5));
+}
+
+
+if (-16384 >> 5 !== -512) {
+ $ERROR('#175: -16384 >> 5 === -512. Actual: ' + (-16384 >> 5));
+}
+
+
+if (-32768 >> 5 !== -1024) {
+ $ERROR('#176: -32768 >> 5 === -1024. Actual: ' + (-32768 >> 5));
+}
+
+
+if (-65536 >> 5 !== -2048) {
+ $ERROR('#177: -65536 >> 5 === -2048. Actual: ' + (-65536 >> 5));
+}
+
+
+if (-131072 >> 5 !== -4096) {
+ $ERROR('#178: -131072 >> 5 === -4096. Actual: ' + (-131072 >> 5));
+}
+
+
+if (-262144 >> 5 !== -8192) {
+ $ERROR('#179: -262144 >> 5 === -8192. Actual: ' + (-262144 >> 5));
+}
+
+
+if (-524288 >> 5 !== -16384) {
+ $ERROR('#180: -524288 >> 5 === -16384. Actual: ' + (-524288 >> 5));
+}
+
+
+if (-1048576 >> 5 !== -32768) {
+ $ERROR('#181: -1048576 >> 5 === -32768. Actual: ' + (-1048576 >> 5));
+}
+
+
+if (-2097152 >> 5 !== -65536) {
+ $ERROR('#182: -2097152 >> 5 === -65536. Actual: ' + (-2097152 >> 5));
+}
+
+
+if (-4194304 >> 5 !== -131072) {
+ $ERROR('#183: -4194304 >> 5 === -131072. Actual: ' + (-4194304 >> 5));
+}
+
+
+if (-8388608 >> 5 !== -262144) {
+ $ERROR('#184: -8388608 >> 5 === -262144. Actual: ' + (-8388608 >> 5));
+}
+
+
+if (-16777216 >> 5 !== -524288) {
+ $ERROR('#185: -16777216 >> 5 === -524288. Actual: ' + (-16777216 >> 5));
+}
+
+
+if (-33554432 >> 5 !== -1048576) {
+ $ERROR('#186: -33554432 >> 5 === -1048576. Actual: ' + (-33554432 >> 5));
+}
+
+
+if (-67108864 >> 5 !== -2097152) {
+ $ERROR('#187: -67108864 >> 5 === -2097152. Actual: ' + (-67108864 >> 5));
+}
+
+
+if (-134217728 >> 5 !== -4194304) {
+ $ERROR('#188: -134217728 >> 5 === -4194304. Actual: ' + (-134217728 >> 5));
+}
+
+
+if (-268435456 >> 5 !== -8388608) {
+ $ERROR('#189: -268435456 >> 5 === -8388608. Actual: ' + (-268435456 >> 5));
+}
+
+
+if (-536870912 >> 5 !== -16777216) {
+ $ERROR('#190: -536870912 >> 5 === -16777216. Actual: ' + (-536870912 >> 5));
+}
+
+
+if (-1073741824 >> 5 !== -33554432) {
+ $ERROR('#191: -1073741824 >> 5 === -33554432. Actual: ' + (-1073741824 >> 5));
+}
+
+
+if (-2147483648 >> 5 !== -67108864) {
+ $ERROR('#192: -2147483648 >> 5 === -67108864. Actual: ' + (-2147483648 >> 5));
+}
+
+
+if (-1 >> 6 !== -1) {
+ $ERROR('#193: -1 >> 6 === -1. Actual: ' + (-1 >> 6));
+}
+
+
+if (-2 >> 6 !== -1) {
+ $ERROR('#194: -2 >> 6 === -1. Actual: ' + (-2 >> 6));
+}
+
+
+if (-4 >> 6 !== -1) {
+ $ERROR('#195: -4 >> 6 === -1. Actual: ' + (-4 >> 6));
+}
+
+
+if (-8 >> 6 !== -1) {
+ $ERROR('#196: -8 >> 6 === -1. Actual: ' + (-8 >> 6));
+}
+
+
+if (-16 >> 6 !== -1) {
+ $ERROR('#197: -16 >> 6 === -1. Actual: ' + (-16 >> 6));
+}
+
+
+if (-32 >> 6 !== -1) {
+ $ERROR('#198: -32 >> 6 === -1. Actual: ' + (-32 >> 6));
+}
+
+
+if (-64 >> 6 !== -1) {
+ $ERROR('#199: -64 >> 6 === -1. Actual: ' + (-64 >> 6));
+}
+
+
+if (-128 >> 6 !== -2) {
+ $ERROR('#200: -128 >> 6 === -2. Actual: ' + (-128 >> 6));
+}
+
+
+if (-256 >> 6 !== -4) {
+ $ERROR('#201: -256 >> 6 === -4. Actual: ' + (-256 >> 6));
+}
+
+
+if (-512 >> 6 !== -8) {
+ $ERROR('#202: -512 >> 6 === -8. Actual: ' + (-512 >> 6));
+}
+
+
+if (-1024 >> 6 !== -16) {
+ $ERROR('#203: -1024 >> 6 === -16. Actual: ' + (-1024 >> 6));
+}
+
+
+if (-2048 >> 6 !== -32) {
+ $ERROR('#204: -2048 >> 6 === -32. Actual: ' + (-2048 >> 6));
+}
+
+
+if (-4096 >> 6 !== -64) {
+ $ERROR('#205: -4096 >> 6 === -64. Actual: ' + (-4096 >> 6));
+}
+
+
+if (-8192 >> 6 !== -128) {
+ $ERROR('#206: -8192 >> 6 === -128. Actual: ' + (-8192 >> 6));
+}
+
+
+if (-16384 >> 6 !== -256) {
+ $ERROR('#207: -16384 >> 6 === -256. Actual: ' + (-16384 >> 6));
+}
+
+
+if (-32768 >> 6 !== -512) {
+ $ERROR('#208: -32768 >> 6 === -512. Actual: ' + (-32768 >> 6));
+}
+
+
+if (-65536 >> 6 !== -1024) {
+ $ERROR('#209: -65536 >> 6 === -1024. Actual: ' + (-65536 >> 6));
+}
+
+
+if (-131072 >> 6 !== -2048) {
+ $ERROR('#210: -131072 >> 6 === -2048. Actual: ' + (-131072 >> 6));
+}
+
+
+if (-262144 >> 6 !== -4096) {
+ $ERROR('#211: -262144 >> 6 === -4096. Actual: ' + (-262144 >> 6));
+}
+
+
+if (-524288 >> 6 !== -8192) {
+ $ERROR('#212: -524288 >> 6 === -8192. Actual: ' + (-524288 >> 6));
+}
+
+
+if (-1048576 >> 6 !== -16384) {
+ $ERROR('#213: -1048576 >> 6 === -16384. Actual: ' + (-1048576 >> 6));
+}
+
+
+if (-2097152 >> 6 !== -32768) {
+ $ERROR('#214: -2097152 >> 6 === -32768. Actual: ' + (-2097152 >> 6));
+}
+
+
+if (-4194304 >> 6 !== -65536) {
+ $ERROR('#215: -4194304 >> 6 === -65536. Actual: ' + (-4194304 >> 6));
+}
+
+
+if (-8388608 >> 6 !== -131072) {
+ $ERROR('#216: -8388608 >> 6 === -131072. Actual: ' + (-8388608 >> 6));
+}
+
+
+if (-16777216 >> 6 !== -262144) {
+ $ERROR('#217: -16777216 >> 6 === -262144. Actual: ' + (-16777216 >> 6));
+}
+
+
+if (-33554432 >> 6 !== -524288) {
+ $ERROR('#218: -33554432 >> 6 === -524288. Actual: ' + (-33554432 >> 6));
+}
+
+
+if (-67108864 >> 6 !== -1048576) {
+ $ERROR('#219: -67108864 >> 6 === -1048576. Actual: ' + (-67108864 >> 6));
+}
+
+
+if (-134217728 >> 6 !== -2097152) {
+ $ERROR('#220: -134217728 >> 6 === -2097152. Actual: ' + (-134217728 >> 6));
+}
+
+
+if (-268435456 >> 6 !== -4194304) {
+ $ERROR('#221: -268435456 >> 6 === -4194304. Actual: ' + (-268435456 >> 6));
+}
+
+
+if (-536870912 >> 6 !== -8388608) {
+ $ERROR('#222: -536870912 >> 6 === -8388608. Actual: ' + (-536870912 >> 6));
+}
+
+
+if (-1073741824 >> 6 !== -16777216) {
+ $ERROR('#223: -1073741824 >> 6 === -16777216. Actual: ' + (-1073741824 >> 6));
+}
+
+
+if (-2147483648 >> 6 !== -33554432) {
+ $ERROR('#224: -2147483648 >> 6 === -33554432. Actual: ' + (-2147483648 >> 6));
+}
+
+
+if (-1 >> 7 !== -1) {
+ $ERROR('#225: -1 >> 7 === -1. Actual: ' + (-1 >> 7));
+}
+
+
+if (-2 >> 7 !== -1) {
+ $ERROR('#226: -2 >> 7 === -1. Actual: ' + (-2 >> 7));
+}
+
+
+if (-4 >> 7 !== -1) {
+ $ERROR('#227: -4 >> 7 === -1. Actual: ' + (-4 >> 7));
+}
+
+
+if (-8 >> 7 !== -1) {
+ $ERROR('#228: -8 >> 7 === -1. Actual: ' + (-8 >> 7));
+}
+
+
+if (-16 >> 7 !== -1) {
+ $ERROR('#229: -16 >> 7 === -1. Actual: ' + (-16 >> 7));
+}
+
+
+if (-32 >> 7 !== -1) {
+ $ERROR('#230: -32 >> 7 === -1. Actual: ' + (-32 >> 7));
+}
+
+
+if (-64 >> 7 !== -1) {
+ $ERROR('#231: -64 >> 7 === -1. Actual: ' + (-64 >> 7));
+}
+
+
+if (-128 >> 7 !== -1) {
+ $ERROR('#232: -128 >> 7 === -1. Actual: ' + (-128 >> 7));
+}
+
+
+if (-256 >> 7 !== -2) {
+ $ERROR('#233: -256 >> 7 === -2. Actual: ' + (-256 >> 7));
+}
+
+
+if (-512 >> 7 !== -4) {
+ $ERROR('#234: -512 >> 7 === -4. Actual: ' + (-512 >> 7));
+}
+
+
+if (-1024 >> 7 !== -8) {
+ $ERROR('#235: -1024 >> 7 === -8. Actual: ' + (-1024 >> 7));
+}
+
+
+if (-2048 >> 7 !== -16) {
+ $ERROR('#236: -2048 >> 7 === -16. Actual: ' + (-2048 >> 7));
+}
+
+
+if (-4096 >> 7 !== -32) {
+ $ERROR('#237: -4096 >> 7 === -32. Actual: ' + (-4096 >> 7));
+}
+
+
+if (-8192 >> 7 !== -64) {
+ $ERROR('#238: -8192 >> 7 === -64. Actual: ' + (-8192 >> 7));
+}
+
+
+if (-16384 >> 7 !== -128) {
+ $ERROR('#239: -16384 >> 7 === -128. Actual: ' + (-16384 >> 7));
+}
+
+
+if (-32768 >> 7 !== -256) {
+ $ERROR('#240: -32768 >> 7 === -256. Actual: ' + (-32768 >> 7));
+}
+
+
+if (-65536 >> 7 !== -512) {
+ $ERROR('#241: -65536 >> 7 === -512. Actual: ' + (-65536 >> 7));
+}
+
+
+if (-131072 >> 7 !== -1024) {
+ $ERROR('#242: -131072 >> 7 === -1024. Actual: ' + (-131072 >> 7));
+}
+
+
+if (-262144 >> 7 !== -2048) {
+ $ERROR('#243: -262144 >> 7 === -2048. Actual: ' + (-262144 >> 7));
+}
+
+
+if (-524288 >> 7 !== -4096) {
+ $ERROR('#244: -524288 >> 7 === -4096. Actual: ' + (-524288 >> 7));
+}
+
+
+if (-1048576 >> 7 !== -8192) {
+ $ERROR('#245: -1048576 >> 7 === -8192. Actual: ' + (-1048576 >> 7));
+}
+
+
+if (-2097152 >> 7 !== -16384) {
+ $ERROR('#246: -2097152 >> 7 === -16384. Actual: ' + (-2097152 >> 7));
+}
+
+
+if (-4194304 >> 7 !== -32768) {
+ $ERROR('#247: -4194304 >> 7 === -32768. Actual: ' + (-4194304 >> 7));
+}
+
+
+if (-8388608 >> 7 !== -65536) {
+ $ERROR('#248: -8388608 >> 7 === -65536. Actual: ' + (-8388608 >> 7));
+}
+
+
+if (-16777216 >> 7 !== -131072) {
+ $ERROR('#249: -16777216 >> 7 === -131072. Actual: ' + (-16777216 >> 7));
+}
+
+
+if (-33554432 >> 7 !== -262144) {
+ $ERROR('#250: -33554432 >> 7 === -262144. Actual: ' + (-33554432 >> 7));
+}
+
+
+if (-67108864 >> 7 !== -524288) {
+ $ERROR('#251: -67108864 >> 7 === -524288. Actual: ' + (-67108864 >> 7));
+}
+
+
+if (-134217728 >> 7 !== -1048576) {
+ $ERROR('#252: -134217728 >> 7 === -1048576. Actual: ' + (-134217728 >> 7));
+}
+
+
+if (-268435456 >> 7 !== -2097152) {
+ $ERROR('#253: -268435456 >> 7 === -2097152. Actual: ' + (-268435456 >> 7));
+}
+
+
+if (-536870912 >> 7 !== -4194304) {
+ $ERROR('#254: -536870912 >> 7 === -4194304. Actual: ' + (-536870912 >> 7));
+}
+
+
+if (-1073741824 >> 7 !== -8388608) {
+ $ERROR('#255: -1073741824 >> 7 === -8388608. Actual: ' + (-1073741824 >> 7));
+}
+
+
+if (-2147483648 >> 7 !== -16777216) {
+ $ERROR('#256: -2147483648 >> 7 === -16777216. Actual: ' + (-2147483648 >> 7));
+}
+
+
+if (-1 >> 8 !== -1) {
+ $ERROR('#257: -1 >> 8 === -1. Actual: ' + (-1 >> 8));
+}
+
+
+if (-2 >> 8 !== -1) {
+ $ERROR('#258: -2 >> 8 === -1. Actual: ' + (-2 >> 8));
+}
+
+
+if (-4 >> 8 !== -1) {
+ $ERROR('#259: -4 >> 8 === -1. Actual: ' + (-4 >> 8));
+}
+
+
+if (-8 >> 8 !== -1) {
+ $ERROR('#260: -8 >> 8 === -1. Actual: ' + (-8 >> 8));
+}
+
+
+if (-16 >> 8 !== -1) {
+ $ERROR('#261: -16 >> 8 === -1. Actual: ' + (-16 >> 8));
+}
+
+
+if (-32 >> 8 !== -1) {
+ $ERROR('#262: -32 >> 8 === -1. Actual: ' + (-32 >> 8));
+}
+
+
+if (-64 >> 8 !== -1) {
+ $ERROR('#263: -64 >> 8 === -1. Actual: ' + (-64 >> 8));
+}
+
+
+if (-128 >> 8 !== -1) {
+ $ERROR('#264: -128 >> 8 === -1. Actual: ' + (-128 >> 8));
+}
+
+
+if (-256 >> 8 !== -1) {
+ $ERROR('#265: -256 >> 8 === -1. Actual: ' + (-256 >> 8));
+}
+
+
+if (-512 >> 8 !== -2) {
+ $ERROR('#266: -512 >> 8 === -2. Actual: ' + (-512 >> 8));
+}
+
+
+if (-1024 >> 8 !== -4) {
+ $ERROR('#267: -1024 >> 8 === -4. Actual: ' + (-1024 >> 8));
+}
+
+
+if (-2048 >> 8 !== -8) {
+ $ERROR('#268: -2048 >> 8 === -8. Actual: ' + (-2048 >> 8));
+}
+
+
+if (-4096 >> 8 !== -16) {
+ $ERROR('#269: -4096 >> 8 === -16. Actual: ' + (-4096 >> 8));
+}
+
+
+if (-8192 >> 8 !== -32) {
+ $ERROR('#270: -8192 >> 8 === -32. Actual: ' + (-8192 >> 8));
+}
+
+
+if (-16384 >> 8 !== -64) {
+ $ERROR('#271: -16384 >> 8 === -64. Actual: ' + (-16384 >> 8));
+}
+
+
+if (-32768 >> 8 !== -128) {
+ $ERROR('#272: -32768 >> 8 === -128. Actual: ' + (-32768 >> 8));
+}
+
+
+if (-65536 >> 8 !== -256) {
+ $ERROR('#273: -65536 >> 8 === -256. Actual: ' + (-65536 >> 8));
+}
+
+
+if (-131072 >> 8 !== -512) {
+ $ERROR('#274: -131072 >> 8 === -512. Actual: ' + (-131072 >> 8));
+}
+
+
+if (-262144 >> 8 !== -1024) {
+ $ERROR('#275: -262144 >> 8 === -1024. Actual: ' + (-262144 >> 8));
+}
+
+
+if (-524288 >> 8 !== -2048) {
+ $ERROR('#276: -524288 >> 8 === -2048. Actual: ' + (-524288 >> 8));
+}
+
+
+if (-1048576 >> 8 !== -4096) {
+ $ERROR('#277: -1048576 >> 8 === -4096. Actual: ' + (-1048576 >> 8));
+}
+
+
+if (-2097152 >> 8 !== -8192) {
+ $ERROR('#278: -2097152 >> 8 === -8192. Actual: ' + (-2097152 >> 8));
+}
+
+
+if (-4194304 >> 8 !== -16384) {
+ $ERROR('#279: -4194304 >> 8 === -16384. Actual: ' + (-4194304 >> 8));
+}
+
+
+if (-8388608 >> 8 !== -32768) {
+ $ERROR('#280: -8388608 >> 8 === -32768. Actual: ' + (-8388608 >> 8));
+}
+
+
+if (-16777216 >> 8 !== -65536) {
+ $ERROR('#281: -16777216 >> 8 === -65536. Actual: ' + (-16777216 >> 8));
+}
+
+
+if (-33554432 >> 8 !== -131072) {
+ $ERROR('#282: -33554432 >> 8 === -131072. Actual: ' + (-33554432 >> 8));
+}
+
+
+if (-67108864 >> 8 !== -262144) {
+ $ERROR('#283: -67108864 >> 8 === -262144. Actual: ' + (-67108864 >> 8));
+}
+
+
+if (-134217728 >> 8 !== -524288) {
+ $ERROR('#284: -134217728 >> 8 === -524288. Actual: ' + (-134217728 >> 8));
+}
+
+
+if (-268435456 >> 8 !== -1048576) {
+ $ERROR('#285: -268435456 >> 8 === -1048576. Actual: ' + (-268435456 >> 8));
+}
+
+
+if (-536870912 >> 8 !== -2097152) {
+ $ERROR('#286: -536870912 >> 8 === -2097152. Actual: ' + (-536870912 >> 8));
+}
+
+
+if (-1073741824 >> 8 !== -4194304) {
+ $ERROR('#287: -1073741824 >> 8 === -4194304. Actual: ' + (-1073741824 >> 8));
+}
+
+
+if (-2147483648 >> 8 !== -8388608) {
+ $ERROR('#288: -2147483648 >> 8 === -8388608. Actual: ' + (-2147483648 >> 8));
+}
+
+
+if (-1 >> 9 !== -1) {
+ $ERROR('#289: -1 >> 9 === -1. Actual: ' + (-1 >> 9));
+}
+
+
+if (-2 >> 9 !== -1) {
+ $ERROR('#290: -2 >> 9 === -1. Actual: ' + (-2 >> 9));
+}
+
+
+if (-4 >> 9 !== -1) {
+ $ERROR('#291: -4 >> 9 === -1. Actual: ' + (-4 >> 9));
+}
+
+
+if (-8 >> 9 !== -1) {
+ $ERROR('#292: -8 >> 9 === -1. Actual: ' + (-8 >> 9));
+}
+
+
+if (-16 >> 9 !== -1) {
+ $ERROR('#293: -16 >> 9 === -1. Actual: ' + (-16 >> 9));
+}
+
+
+if (-32 >> 9 !== -1) {
+ $ERROR('#294: -32 >> 9 === -1. Actual: ' + (-32 >> 9));
+}
+
+
+if (-64 >> 9 !== -1) {
+ $ERROR('#295: -64 >> 9 === -1. Actual: ' + (-64 >> 9));
+}
+
+
+if (-128 >> 9 !== -1) {
+ $ERROR('#296: -128 >> 9 === -1. Actual: ' + (-128 >> 9));
+}
+
+
+if (-256 >> 9 !== -1) {
+ $ERROR('#297: -256 >> 9 === -1. Actual: ' + (-256 >> 9));
+}
+
+
+if (-512 >> 9 !== -1) {
+ $ERROR('#298: -512 >> 9 === -1. Actual: ' + (-512 >> 9));
+}
+
+
+if (-1024 >> 9 !== -2) {
+ $ERROR('#299: -1024 >> 9 === -2. Actual: ' + (-1024 >> 9));
+}
+
+
+if (-2048 >> 9 !== -4) {
+ $ERROR('#300: -2048 >> 9 === -4. Actual: ' + (-2048 >> 9));
+}
+
+
+if (-4096 >> 9 !== -8) {
+ $ERROR('#301: -4096 >> 9 === -8. Actual: ' + (-4096 >> 9));
+}
+
+
+if (-8192 >> 9 !== -16) {
+ $ERROR('#302: -8192 >> 9 === -16. Actual: ' + (-8192 >> 9));
+}
+
+
+if (-16384 >> 9 !== -32) {
+ $ERROR('#303: -16384 >> 9 === -32. Actual: ' + (-16384 >> 9));
+}
+
+
+if (-32768 >> 9 !== -64) {
+ $ERROR('#304: -32768 >> 9 === -64. Actual: ' + (-32768 >> 9));
+}
+
+
+if (-65536 >> 9 !== -128) {
+ $ERROR('#305: -65536 >> 9 === -128. Actual: ' + (-65536 >> 9));
+}
+
+
+if (-131072 >> 9 !== -256) {
+ $ERROR('#306: -131072 >> 9 === -256. Actual: ' + (-131072 >> 9));
+}
+
+
+if (-262144 >> 9 !== -512) {
+ $ERROR('#307: -262144 >> 9 === -512. Actual: ' + (-262144 >> 9));
+}
+
+
+if (-524288 >> 9 !== -1024) {
+ $ERROR('#308: -524288 >> 9 === -1024. Actual: ' + (-524288 >> 9));
+}
+
+
+if (-1048576 >> 9 !== -2048) {
+ $ERROR('#309: -1048576 >> 9 === -2048. Actual: ' + (-1048576 >> 9));
+}
+
+
+if (-2097152 >> 9 !== -4096) {
+ $ERROR('#310: -2097152 >> 9 === -4096. Actual: ' + (-2097152 >> 9));
+}
+
+
+if (-4194304 >> 9 !== -8192) {
+ $ERROR('#311: -4194304 >> 9 === -8192. Actual: ' + (-4194304 >> 9));
+}
+
+
+if (-8388608 >> 9 !== -16384) {
+ $ERROR('#312: -8388608 >> 9 === -16384. Actual: ' + (-8388608 >> 9));
+}
+
+
+if (-16777216 >> 9 !== -32768) {
+ $ERROR('#313: -16777216 >> 9 === -32768. Actual: ' + (-16777216 >> 9));
+}
+
+
+if (-33554432 >> 9 !== -65536) {
+ $ERROR('#314: -33554432 >> 9 === -65536. Actual: ' + (-33554432 >> 9));
+}
+
+
+if (-67108864 >> 9 !== -131072) {
+ $ERROR('#315: -67108864 >> 9 === -131072. Actual: ' + (-67108864 >> 9));
+}
+
+
+if (-134217728 >> 9 !== -262144) {
+ $ERROR('#316: -134217728 >> 9 === -262144. Actual: ' + (-134217728 >> 9));
+}
+
+
+if (-268435456 >> 9 !== -524288) {
+ $ERROR('#317: -268435456 >> 9 === -524288. Actual: ' + (-268435456 >> 9));
+}
+
+
+if (-536870912 >> 9 !== -1048576) {
+ $ERROR('#318: -536870912 >> 9 === -1048576. Actual: ' + (-536870912 >> 9));
+}
+
+
+if (-1073741824 >> 9 !== -2097152) {
+ $ERROR('#319: -1073741824 >> 9 === -2097152. Actual: ' + (-1073741824 >> 9));
+}
+
+
+if (-2147483648 >> 9 !== -4194304) {
+ $ERROR('#320: -2147483648 >> 9 === -4194304. Actual: ' + (-2147483648 >> 9));
+}
+
+
+if (-1 >> 10 !== -1) {
+ $ERROR('#321: -1 >> 10 === -1. Actual: ' + (-1 >> 10));
+}
+
+
+if (-2 >> 10 !== -1) {
+ $ERROR('#322: -2 >> 10 === -1. Actual: ' + (-2 >> 10));
+}
+
+
+if (-4 >> 10 !== -1) {
+ $ERROR('#323: -4 >> 10 === -1. Actual: ' + (-4 >> 10));
+}
+
+
+if (-8 >> 10 !== -1) {
+ $ERROR('#324: -8 >> 10 === -1. Actual: ' + (-8 >> 10));
+}
+
+
+if (-16 >> 10 !== -1) {
+ $ERROR('#325: -16 >> 10 === -1. Actual: ' + (-16 >> 10));
+}
+
+
+if (-32 >> 10 !== -1) {
+ $ERROR('#326: -32 >> 10 === -1. Actual: ' + (-32 >> 10));
+}
+
+
+if (-64 >> 10 !== -1) {
+ $ERROR('#327: -64 >> 10 === -1. Actual: ' + (-64 >> 10));
+}
+
+
+if (-128 >> 10 !== -1) {
+ $ERROR('#328: -128 >> 10 === -1. Actual: ' + (-128 >> 10));
+}
+
+
+if (-256 >> 10 !== -1) {
+ $ERROR('#329: -256 >> 10 === -1. Actual: ' + (-256 >> 10));
+}
+
+
+if (-512 >> 10 !== -1) {
+ $ERROR('#330: -512 >> 10 === -1. Actual: ' + (-512 >> 10));
+}
+
+
+if (-1024 >> 10 !== -1) {
+ $ERROR('#331: -1024 >> 10 === -1. Actual: ' + (-1024 >> 10));
+}
+
+
+if (-2048 >> 10 !== -2) {
+ $ERROR('#332: -2048 >> 10 === -2. Actual: ' + (-2048 >> 10));
+}
+
+
+if (-4096 >> 10 !== -4) {
+ $ERROR('#333: -4096 >> 10 === -4. Actual: ' + (-4096 >> 10));
+}
+
+
+if (-8192 >> 10 !== -8) {
+ $ERROR('#334: -8192 >> 10 === -8. Actual: ' + (-8192 >> 10));
+}
+
+
+if (-16384 >> 10 !== -16) {
+ $ERROR('#335: -16384 >> 10 === -16. Actual: ' + (-16384 >> 10));
+}
+
+
+if (-32768 >> 10 !== -32) {
+ $ERROR('#336: -32768 >> 10 === -32. Actual: ' + (-32768 >> 10));
+}
+
+
+if (-65536 >> 10 !== -64) {
+ $ERROR('#337: -65536 >> 10 === -64. Actual: ' + (-65536 >> 10));
+}
+
+
+if (-131072 >> 10 !== -128) {
+ $ERROR('#338: -131072 >> 10 === -128. Actual: ' + (-131072 >> 10));
+}
+
+
+if (-262144 >> 10 !== -256) {
+ $ERROR('#339: -262144 >> 10 === -256. Actual: ' + (-262144 >> 10));
+}
+
+
+if (-524288 >> 10 !== -512) {
+ $ERROR('#340: -524288 >> 10 === -512. Actual: ' + (-524288 >> 10));
+}
+
+
+if (-1048576 >> 10 !== -1024) {
+ $ERROR('#341: -1048576 >> 10 === -1024. Actual: ' + (-1048576 >> 10));
+}
+
+
+if (-2097152 >> 10 !== -2048) {
+ $ERROR('#342: -2097152 >> 10 === -2048. Actual: ' + (-2097152 >> 10));
+}
+
+
+if (-4194304 >> 10 !== -4096) {
+ $ERROR('#343: -4194304 >> 10 === -4096. Actual: ' + (-4194304 >> 10));
+}
+
+
+if (-8388608 >> 10 !== -8192) {
+ $ERROR('#344: -8388608 >> 10 === -8192. Actual: ' + (-8388608 >> 10));
+}
+
+
+if (-16777216 >> 10 !== -16384) {
+ $ERROR('#345: -16777216 >> 10 === -16384. Actual: ' + (-16777216 >> 10));
+}
+
+
+if (-33554432 >> 10 !== -32768) {
+ $ERROR('#346: -33554432 >> 10 === -32768. Actual: ' + (-33554432 >> 10));
+}
+
+
+if (-67108864 >> 10 !== -65536) {
+ $ERROR('#347: -67108864 >> 10 === -65536. Actual: ' + (-67108864 >> 10));
+}
+
+
+if (-134217728 >> 10 !== -131072) {
+ $ERROR('#348: -134217728 >> 10 === -131072. Actual: ' + (-134217728 >> 10));
+}
+
+
+if (-268435456 >> 10 !== -262144) {
+ $ERROR('#349: -268435456 >> 10 === -262144. Actual: ' + (-268435456 >> 10));
+}
+
+
+if (-536870912 >> 10 !== -524288) {
+ $ERROR('#350: -536870912 >> 10 === -524288. Actual: ' + (-536870912 >> 10));
+}
+
+
+if (-1073741824 >> 10 !== -1048576) {
+ $ERROR('#351: -1073741824 >> 10 === -1048576. Actual: ' + (-1073741824 >> 10));
+}
+
+
+if (-2147483648 >> 10 !== -2097152) {
+ $ERROR('#352: -2147483648 >> 10 === -2097152. Actual: ' + (-2147483648 >> 10));
+}
+
+
+if (-1 >> 11 !== -1) {
+ $ERROR('#353: -1 >> 11 === -1. Actual: ' + (-1 >> 11));
+}
+
+
+if (-2 >> 11 !== -1) {
+ $ERROR('#354: -2 >> 11 === -1. Actual: ' + (-2 >> 11));
+}
+
+
+if (-4 >> 11 !== -1) {
+ $ERROR('#355: -4 >> 11 === -1. Actual: ' + (-4 >> 11));
+}
+
+
+if (-8 >> 11 !== -1) {
+ $ERROR('#356: -8 >> 11 === -1. Actual: ' + (-8 >> 11));
+}
+
+
+if (-16 >> 11 !== -1) {
+ $ERROR('#357: -16 >> 11 === -1. Actual: ' + (-16 >> 11));
+}
+
+
+if (-32 >> 11 !== -1) {
+ $ERROR('#358: -32 >> 11 === -1. Actual: ' + (-32 >> 11));
+}
+
+
+if (-64 >> 11 !== -1) {
+ $ERROR('#359: -64 >> 11 === -1. Actual: ' + (-64 >> 11));
+}
+
+
+if (-128 >> 11 !== -1) {
+ $ERROR('#360: -128 >> 11 === -1. Actual: ' + (-128 >> 11));
+}
+
+
+if (-256 >> 11 !== -1) {
+ $ERROR('#361: -256 >> 11 === -1. Actual: ' + (-256 >> 11));
+}
+
+
+if (-512 >> 11 !== -1) {
+ $ERROR('#362: -512 >> 11 === -1. Actual: ' + (-512 >> 11));
+}
+
+
+if (-1024 >> 11 !== -1) {
+ $ERROR('#363: -1024 >> 11 === -1. Actual: ' + (-1024 >> 11));
+}
+
+
+if (-2048 >> 11 !== -1) {
+ $ERROR('#364: -2048 >> 11 === -1. Actual: ' + (-2048 >> 11));
+}
+
+
+if (-4096 >> 11 !== -2) {
+ $ERROR('#365: -4096 >> 11 === -2. Actual: ' + (-4096 >> 11));
+}
+
+
+if (-8192 >> 11 !== -4) {
+ $ERROR('#366: -8192 >> 11 === -4. Actual: ' + (-8192 >> 11));
+}
+
+
+if (-16384 >> 11 !== -8) {
+ $ERROR('#367: -16384 >> 11 === -8. Actual: ' + (-16384 >> 11));
+}
+
+
+if (-32768 >> 11 !== -16) {
+ $ERROR('#368: -32768 >> 11 === -16. Actual: ' + (-32768 >> 11));
+}
+
+
+if (-65536 >> 11 !== -32) {
+ $ERROR('#369: -65536 >> 11 === -32. Actual: ' + (-65536 >> 11));
+}
+
+
+if (-131072 >> 11 !== -64) {
+ $ERROR('#370: -131072 >> 11 === -64. Actual: ' + (-131072 >> 11));
+}
+
+
+if (-262144 >> 11 !== -128) {
+ $ERROR('#371: -262144 >> 11 === -128. Actual: ' + (-262144 >> 11));
+}
+
+
+if (-524288 >> 11 !== -256) {
+ $ERROR('#372: -524288 >> 11 === -256. Actual: ' + (-524288 >> 11));
+}
+
+
+if (-1048576 >> 11 !== -512) {
+ $ERROR('#373: -1048576 >> 11 === -512. Actual: ' + (-1048576 >> 11));
+}
+
+
+if (-2097152 >> 11 !== -1024) {
+ $ERROR('#374: -2097152 >> 11 === -1024. Actual: ' + (-2097152 >> 11));
+}
+
+
+if (-4194304 >> 11 !== -2048) {
+ $ERROR('#375: -4194304 >> 11 === -2048. Actual: ' + (-4194304 >> 11));
+}
+
+
+if (-8388608 >> 11 !== -4096) {
+ $ERROR('#376: -8388608 >> 11 === -4096. Actual: ' + (-8388608 >> 11));
+}
+
+
+if (-16777216 >> 11 !== -8192) {
+ $ERROR('#377: -16777216 >> 11 === -8192. Actual: ' + (-16777216 >> 11));
+}
+
+
+if (-33554432 >> 11 !== -16384) {
+ $ERROR('#378: -33554432 >> 11 === -16384. Actual: ' + (-33554432 >> 11));
+}
+
+
+if (-67108864 >> 11 !== -32768) {
+ $ERROR('#379: -67108864 >> 11 === -32768. Actual: ' + (-67108864 >> 11));
+}
+
+
+if (-134217728 >> 11 !== -65536) {
+ $ERROR('#380: -134217728 >> 11 === -65536. Actual: ' + (-134217728 >> 11));
+}
+
+
+if (-268435456 >> 11 !== -131072) {
+ $ERROR('#381: -268435456 >> 11 === -131072. Actual: ' + (-268435456 >> 11));
+}
+
+
+if (-536870912 >> 11 !== -262144) {
+ $ERROR('#382: -536870912 >> 11 === -262144. Actual: ' + (-536870912 >> 11));
+}
+
+
+if (-1073741824 >> 11 !== -524288) {
+ $ERROR('#383: -1073741824 >> 11 === -524288. Actual: ' + (-1073741824 >> 11));
+}
+
+
+if (-2147483648 >> 11 !== -1048576) {
+ $ERROR('#384: -2147483648 >> 11 === -1048576. Actual: ' + (-2147483648 >> 11));
+}
+
+
+if (-1 >> 12 !== -1) {
+ $ERROR('#385: -1 >> 12 === -1. Actual: ' + (-1 >> 12));
+}
+
+
+if (-2 >> 12 !== -1) {
+ $ERROR('#386: -2 >> 12 === -1. Actual: ' + (-2 >> 12));
+}
+
+
+if (-4 >> 12 !== -1) {
+ $ERROR('#387: -4 >> 12 === -1. Actual: ' + (-4 >> 12));
+}
+
+
+if (-8 >> 12 !== -1) {
+ $ERROR('#388: -8 >> 12 === -1. Actual: ' + (-8 >> 12));
+}
+
+
+if (-16 >> 12 !== -1) {
+ $ERROR('#389: -16 >> 12 === -1. Actual: ' + (-16 >> 12));
+}
+
+
+if (-32 >> 12 !== -1) {
+ $ERROR('#390: -32 >> 12 === -1. Actual: ' + (-32 >> 12));
+}
+
+
+if (-64 >> 12 !== -1) {
+ $ERROR('#391: -64 >> 12 === -1. Actual: ' + (-64 >> 12));
+}
+
+
+if (-128 >> 12 !== -1) {
+ $ERROR('#392: -128 >> 12 === -1. Actual: ' + (-128 >> 12));
+}
+
+
+if (-256 >> 12 !== -1) {
+ $ERROR('#393: -256 >> 12 === -1. Actual: ' + (-256 >> 12));
+}
+
+
+if (-512 >> 12 !== -1) {
+ $ERROR('#394: -512 >> 12 === -1. Actual: ' + (-512 >> 12));
+}
+
+
+if (-1024 >> 12 !== -1) {
+ $ERROR('#395: -1024 >> 12 === -1. Actual: ' + (-1024 >> 12));
+}
+
+
+if (-2048 >> 12 !== -1) {
+ $ERROR('#396: -2048 >> 12 === -1. Actual: ' + (-2048 >> 12));
+}
+
+
+if (-4096 >> 12 !== -1) {
+ $ERROR('#397: -4096 >> 12 === -1. Actual: ' + (-4096 >> 12));
+}
+
+
+if (-8192 >> 12 !== -2) {
+ $ERROR('#398: -8192 >> 12 === -2. Actual: ' + (-8192 >> 12));
+}
+
+
+if (-16384 >> 12 !== -4) {
+ $ERROR('#399: -16384 >> 12 === -4. Actual: ' + (-16384 >> 12));
+}
+
+
+if (-32768 >> 12 !== -8) {
+ $ERROR('#400: -32768 >> 12 === -8. Actual: ' + (-32768 >> 12));
+}
+
+
+if (-65536 >> 12 !== -16) {
+ $ERROR('#401: -65536 >> 12 === -16. Actual: ' + (-65536 >> 12));
+}
+
+
+if (-131072 >> 12 !== -32) {
+ $ERROR('#402: -131072 >> 12 === -32. Actual: ' + (-131072 >> 12));
+}
+
+
+if (-262144 >> 12 !== -64) {
+ $ERROR('#403: -262144 >> 12 === -64. Actual: ' + (-262144 >> 12));
+}
+
+
+if (-524288 >> 12 !== -128) {
+ $ERROR('#404: -524288 >> 12 === -128. Actual: ' + (-524288 >> 12));
+}
+
+
+if (-1048576 >> 12 !== -256) {
+ $ERROR('#405: -1048576 >> 12 === -256. Actual: ' + (-1048576 >> 12));
+}
+
+
+if (-2097152 >> 12 !== -512) {
+ $ERROR('#406: -2097152 >> 12 === -512. Actual: ' + (-2097152 >> 12));
+}
+
+
+if (-4194304 >> 12 !== -1024) {
+ $ERROR('#407: -4194304 >> 12 === -1024. Actual: ' + (-4194304 >> 12));
+}
+
+
+if (-8388608 >> 12 !== -2048) {
+ $ERROR('#408: -8388608 >> 12 === -2048. Actual: ' + (-8388608 >> 12));
+}
+
+
+if (-16777216 >> 12 !== -4096) {
+ $ERROR('#409: -16777216 >> 12 === -4096. Actual: ' + (-16777216 >> 12));
+}
+
+
+if (-33554432 >> 12 !== -8192) {
+ $ERROR('#410: -33554432 >> 12 === -8192. Actual: ' + (-33554432 >> 12));
+}
+
+
+if (-67108864 >> 12 !== -16384) {
+ $ERROR('#411: -67108864 >> 12 === -16384. Actual: ' + (-67108864 >> 12));
+}
+
+
+if (-134217728 >> 12 !== -32768) {
+ $ERROR('#412: -134217728 >> 12 === -32768. Actual: ' + (-134217728 >> 12));
+}
+
+
+if (-268435456 >> 12 !== -65536) {
+ $ERROR('#413: -268435456 >> 12 === -65536. Actual: ' + (-268435456 >> 12));
+}
+
+
+if (-536870912 >> 12 !== -131072) {
+ $ERROR('#414: -536870912 >> 12 === -131072. Actual: ' + (-536870912 >> 12));
+}
+
+
+if (-1073741824 >> 12 !== -262144) {
+ $ERROR('#415: -1073741824 >> 12 === -262144. Actual: ' + (-1073741824 >> 12));
+}
+
+
+if (-2147483648 >> 12 !== -524288) {
+ $ERROR('#416: -2147483648 >> 12 === -524288. Actual: ' + (-2147483648 >> 12));
+}
+
+
+if (-1 >> 13 !== -1) {
+ $ERROR('#417: -1 >> 13 === -1. Actual: ' + (-1 >> 13));
+}
+
+
+if (-2 >> 13 !== -1) {
+ $ERROR('#418: -2 >> 13 === -1. Actual: ' + (-2 >> 13));
+}
+
+
+if (-4 >> 13 !== -1) {
+ $ERROR('#419: -4 >> 13 === -1. Actual: ' + (-4 >> 13));
+}
+
+
+if (-8 >> 13 !== -1) {
+ $ERROR('#420: -8 >> 13 === -1. Actual: ' + (-8 >> 13));
+}
+
+
+if (-16 >> 13 !== -1) {
+ $ERROR('#421: -16 >> 13 === -1. Actual: ' + (-16 >> 13));
+}
+
+
+if (-32 >> 13 !== -1) {
+ $ERROR('#422: -32 >> 13 === -1. Actual: ' + (-32 >> 13));
+}
+
+
+if (-64 >> 13 !== -1) {
+ $ERROR('#423: -64 >> 13 === -1. Actual: ' + (-64 >> 13));
+}
+
+
+if (-128 >> 13 !== -1) {
+ $ERROR('#424: -128 >> 13 === -1. Actual: ' + (-128 >> 13));
+}
+
+
+if (-256 >> 13 !== -1) {
+ $ERROR('#425: -256 >> 13 === -1. Actual: ' + (-256 >> 13));
+}
+
+
+if (-512 >> 13 !== -1) {
+ $ERROR('#426: -512 >> 13 === -1. Actual: ' + (-512 >> 13));
+}
+
+
+if (-1024 >> 13 !== -1) {
+ $ERROR('#427: -1024 >> 13 === -1. Actual: ' + (-1024 >> 13));
+}
+
+
+if (-2048 >> 13 !== -1) {
+ $ERROR('#428: -2048 >> 13 === -1. Actual: ' + (-2048 >> 13));
+}
+
+
+if (-4096 >> 13 !== -1) {
+ $ERROR('#429: -4096 >> 13 === -1. Actual: ' + (-4096 >> 13));
+}
+
+
+if (-8192 >> 13 !== -1) {
+ $ERROR('#430: -8192 >> 13 === -1. Actual: ' + (-8192 >> 13));
+}
+
+
+if (-16384 >> 13 !== -2) {
+ $ERROR('#431: -16384 >> 13 === -2. Actual: ' + (-16384 >> 13));
+}
+
+
+if (-32768 >> 13 !== -4) {
+ $ERROR('#432: -32768 >> 13 === -4. Actual: ' + (-32768 >> 13));
+}
+
+
+if (-65536 >> 13 !== -8) {
+ $ERROR('#433: -65536 >> 13 === -8. Actual: ' + (-65536 >> 13));
+}
+
+
+if (-131072 >> 13 !== -16) {
+ $ERROR('#434: -131072 >> 13 === -16. Actual: ' + (-131072 >> 13));
+}
+
+
+if (-262144 >> 13 !== -32) {
+ $ERROR('#435: -262144 >> 13 === -32. Actual: ' + (-262144 >> 13));
+}
+
+
+if (-524288 >> 13 !== -64) {
+ $ERROR('#436: -524288 >> 13 === -64. Actual: ' + (-524288 >> 13));
+}
+
+
+if (-1048576 >> 13 !== -128) {
+ $ERROR('#437: -1048576 >> 13 === -128. Actual: ' + (-1048576 >> 13));
+}
+
+
+if (-2097152 >> 13 !== -256) {
+ $ERROR('#438: -2097152 >> 13 === -256. Actual: ' + (-2097152 >> 13));
+}
+
+
+if (-4194304 >> 13 !== -512) {
+ $ERROR('#439: -4194304 >> 13 === -512. Actual: ' + (-4194304 >> 13));
+}
+
+
+if (-8388608 >> 13 !== -1024) {
+ $ERROR('#440: -8388608 >> 13 === -1024. Actual: ' + (-8388608 >> 13));
+}
+
+
+if (-16777216 >> 13 !== -2048) {
+ $ERROR('#441: -16777216 >> 13 === -2048. Actual: ' + (-16777216 >> 13));
+}
+
+
+if (-33554432 >> 13 !== -4096) {
+ $ERROR('#442: -33554432 >> 13 === -4096. Actual: ' + (-33554432 >> 13));
+}
+
+
+if (-67108864 >> 13 !== -8192) {
+ $ERROR('#443: -67108864 >> 13 === -8192. Actual: ' + (-67108864 >> 13));
+}
+
+
+if (-134217728 >> 13 !== -16384) {
+ $ERROR('#444: -134217728 >> 13 === -16384. Actual: ' + (-134217728 >> 13));
+}
+
+
+if (-268435456 >> 13 !== -32768) {
+ $ERROR('#445: -268435456 >> 13 === -32768. Actual: ' + (-268435456 >> 13));
+}
+
+
+if (-536870912 >> 13 !== -65536) {
+ $ERROR('#446: -536870912 >> 13 === -65536. Actual: ' + (-536870912 >> 13));
+}
+
+
+if (-1073741824 >> 13 !== -131072) {
+ $ERROR('#447: -1073741824 >> 13 === -131072. Actual: ' + (-1073741824 >> 13));
+}
+
+
+if (-2147483648 >> 13 !== -262144) {
+ $ERROR('#448: -2147483648 >> 13 === -262144. Actual: ' + (-2147483648 >> 13));
+}
+
+
+if (-1 >> 14 !== -1) {
+ $ERROR('#449: -1 >> 14 === -1. Actual: ' + (-1 >> 14));
+}
+
+
+if (-2 >> 14 !== -1) {
+ $ERROR('#450: -2 >> 14 === -1. Actual: ' + (-2 >> 14));
+}
+
+
+if (-4 >> 14 !== -1) {
+ $ERROR('#451: -4 >> 14 === -1. Actual: ' + (-4 >> 14));
+}
+
+
+if (-8 >> 14 !== -1) {
+ $ERROR('#452: -8 >> 14 === -1. Actual: ' + (-8 >> 14));
+}
+
+
+if (-16 >> 14 !== -1) {
+ $ERROR('#453: -16 >> 14 === -1. Actual: ' + (-16 >> 14));
+}
+
+
+if (-32 >> 14 !== -1) {
+ $ERROR('#454: -32 >> 14 === -1. Actual: ' + (-32 >> 14));
+}
+
+
+if (-64 >> 14 !== -1) {
+ $ERROR('#455: -64 >> 14 === -1. Actual: ' + (-64 >> 14));
+}
+
+
+if (-128 >> 14 !== -1) {
+ $ERROR('#456: -128 >> 14 === -1. Actual: ' + (-128 >> 14));
+}
+
+
+if (-256 >> 14 !== -1) {
+ $ERROR('#457: -256 >> 14 === -1. Actual: ' + (-256 >> 14));
+}
+
+
+if (-512 >> 14 !== -1) {
+ $ERROR('#458: -512 >> 14 === -1. Actual: ' + (-512 >> 14));
+}
+
+
+if (-1024 >> 14 !== -1) {
+ $ERROR('#459: -1024 >> 14 === -1. Actual: ' + (-1024 >> 14));
+}
+
+
+if (-2048 >> 14 !== -1) {
+ $ERROR('#460: -2048 >> 14 === -1. Actual: ' + (-2048 >> 14));
+}
+
+
+if (-4096 >> 14 !== -1) {
+ $ERROR('#461: -4096 >> 14 === -1. Actual: ' + (-4096 >> 14));
+}
+
+
+if (-8192 >> 14 !== -1) {
+ $ERROR('#462: -8192 >> 14 === -1. Actual: ' + (-8192 >> 14));
+}
+
+
+if (-16384 >> 14 !== -1) {
+ $ERROR('#463: -16384 >> 14 === -1. Actual: ' + (-16384 >> 14));
+}
+
+
+if (-32768 >> 14 !== -2) {
+ $ERROR('#464: -32768 >> 14 === -2. Actual: ' + (-32768 >> 14));
+}
+
+
+if (-65536 >> 14 !== -4) {
+ $ERROR('#465: -65536 >> 14 === -4. Actual: ' + (-65536 >> 14));
+}
+
+
+if (-131072 >> 14 !== -8) {
+ $ERROR('#466: -131072 >> 14 === -8. Actual: ' + (-131072 >> 14));
+}
+
+
+if (-262144 >> 14 !== -16) {
+ $ERROR('#467: -262144 >> 14 === -16. Actual: ' + (-262144 >> 14));
+}
+
+
+if (-524288 >> 14 !== -32) {
+ $ERROR('#468: -524288 >> 14 === -32. Actual: ' + (-524288 >> 14));
+}
+
+
+if (-1048576 >> 14 !== -64) {
+ $ERROR('#469: -1048576 >> 14 === -64. Actual: ' + (-1048576 >> 14));
+}
+
+
+if (-2097152 >> 14 !== -128) {
+ $ERROR('#470: -2097152 >> 14 === -128. Actual: ' + (-2097152 >> 14));
+}
+
+
+if (-4194304 >> 14 !== -256) {
+ $ERROR('#471: -4194304 >> 14 === -256. Actual: ' + (-4194304 >> 14));
+}
+
+
+if (-8388608 >> 14 !== -512) {
+ $ERROR('#472: -8388608 >> 14 === -512. Actual: ' + (-8388608 >> 14));
+}
+
+
+if (-16777216 >> 14 !== -1024) {
+ $ERROR('#473: -16777216 >> 14 === -1024. Actual: ' + (-16777216 >> 14));
+}
+
+
+if (-33554432 >> 14 !== -2048) {
+ $ERROR('#474: -33554432 >> 14 === -2048. Actual: ' + (-33554432 >> 14));
+}
+
+
+if (-67108864 >> 14 !== -4096) {
+ $ERROR('#475: -67108864 >> 14 === -4096. Actual: ' + (-67108864 >> 14));
+}
+
+
+if (-134217728 >> 14 !== -8192) {
+ $ERROR('#476: -134217728 >> 14 === -8192. Actual: ' + (-134217728 >> 14));
+}
+
+
+if (-268435456 >> 14 !== -16384) {
+ $ERROR('#477: -268435456 >> 14 === -16384. Actual: ' + (-268435456 >> 14));
+}
+
+
+if (-536870912 >> 14 !== -32768) {
+ $ERROR('#478: -536870912 >> 14 === -32768. Actual: ' + (-536870912 >> 14));
+}
+
+
+if (-1073741824 >> 14 !== -65536) {
+ $ERROR('#479: -1073741824 >> 14 === -65536. Actual: ' + (-1073741824 >> 14));
+}
+
+
+if (-2147483648 >> 14 !== -131072) {
+ $ERROR('#480: -2147483648 >> 14 === -131072. Actual: ' + (-2147483648 >> 14));
+}
+
+
+if (-1 >> 15 !== -1) {
+ $ERROR('#481: -1 >> 15 === -1. Actual: ' + (-1 >> 15));
+}
+
+
+if (-2 >> 15 !== -1) {
+ $ERROR('#482: -2 >> 15 === -1. Actual: ' + (-2 >> 15));
+}
+
+
+if (-4 >> 15 !== -1) {
+ $ERROR('#483: -4 >> 15 === -1. Actual: ' + (-4 >> 15));
+}
+
+
+if (-8 >> 15 !== -1) {
+ $ERROR('#484: -8 >> 15 === -1. Actual: ' + (-8 >> 15));
+}
+
+
+if (-16 >> 15 !== -1) {
+ $ERROR('#485: -16 >> 15 === -1. Actual: ' + (-16 >> 15));
+}
+
+
+if (-32 >> 15 !== -1) {
+ $ERROR('#486: -32 >> 15 === -1. Actual: ' + (-32 >> 15));
+}
+
+
+if (-64 >> 15 !== -1) {
+ $ERROR('#487: -64 >> 15 === -1. Actual: ' + (-64 >> 15));
+}
+
+
+if (-128 >> 15 !== -1) {
+ $ERROR('#488: -128 >> 15 === -1. Actual: ' + (-128 >> 15));
+}
+
+
+if (-256 >> 15 !== -1) {
+ $ERROR('#489: -256 >> 15 === -1. Actual: ' + (-256 >> 15));
+}
+
+
+if (-512 >> 15 !== -1) {
+ $ERROR('#490: -512 >> 15 === -1. Actual: ' + (-512 >> 15));
+}
+
+
+if (-1024 >> 15 !== -1) {
+ $ERROR('#491: -1024 >> 15 === -1. Actual: ' + (-1024 >> 15));
+}
+
+
+if (-2048 >> 15 !== -1) {
+ $ERROR('#492: -2048 >> 15 === -1. Actual: ' + (-2048 >> 15));
+}
+
+
+if (-4096 >> 15 !== -1) {
+ $ERROR('#493: -4096 >> 15 === -1. Actual: ' + (-4096 >> 15));
+}
+
+
+if (-8192 >> 15 !== -1) {
+ $ERROR('#494: -8192 >> 15 === -1. Actual: ' + (-8192 >> 15));
+}
+
+
+if (-16384 >> 15 !== -1) {
+ $ERROR('#495: -16384 >> 15 === -1. Actual: ' + (-16384 >> 15));
+}
+
+
+if (-32768 >> 15 !== -1) {
+ $ERROR('#496: -32768 >> 15 === -1. Actual: ' + (-32768 >> 15));
+}
+
+
+if (-65536 >> 15 !== -2) {
+ $ERROR('#497: -65536 >> 15 === -2. Actual: ' + (-65536 >> 15));
+}
+
+
+if (-131072 >> 15 !== -4) {
+ $ERROR('#498: -131072 >> 15 === -4. Actual: ' + (-131072 >> 15));
+}
+
+
+if (-262144 >> 15 !== -8) {
+ $ERROR('#499: -262144 >> 15 === -8. Actual: ' + (-262144 >> 15));
+}
+
+
+if (-524288 >> 15 !== -16) {
+ $ERROR('#500: -524288 >> 15 === -16. Actual: ' + (-524288 >> 15));
+}
+
+
+if (-1048576 >> 15 !== -32) {
+ $ERROR('#501: -1048576 >> 15 === -32. Actual: ' + (-1048576 >> 15));
+}
+
+
+if (-2097152 >> 15 !== -64) {
+ $ERROR('#502: -2097152 >> 15 === -64. Actual: ' + (-2097152 >> 15));
+}
+
+
+if (-4194304 >> 15 !== -128) {
+ $ERROR('#503: -4194304 >> 15 === -128. Actual: ' + (-4194304 >> 15));
+}
+
+
+if (-8388608 >> 15 !== -256) {
+ $ERROR('#504: -8388608 >> 15 === -256. Actual: ' + (-8388608 >> 15));
+}
+
+
+if (-16777216 >> 15 !== -512) {
+ $ERROR('#505: -16777216 >> 15 === -512. Actual: ' + (-16777216 >> 15));
+}
+
+
+if (-33554432 >> 15 !== -1024) {
+ $ERROR('#506: -33554432 >> 15 === -1024. Actual: ' + (-33554432 >> 15));
+}
+
+
+if (-67108864 >> 15 !== -2048) {
+ $ERROR('#507: -67108864 >> 15 === -2048. Actual: ' + (-67108864 >> 15));
+}
+
+
+if (-134217728 >> 15 !== -4096) {
+ $ERROR('#508: -134217728 >> 15 === -4096. Actual: ' + (-134217728 >> 15));
+}
+
+
+if (-268435456 >> 15 !== -8192) {
+ $ERROR('#509: -268435456 >> 15 === -8192. Actual: ' + (-268435456 >> 15));
+}
+
+
+if (-536870912 >> 15 !== -16384) {
+ $ERROR('#510: -536870912 >> 15 === -16384. Actual: ' + (-536870912 >> 15));
+}
+
+
+if (-1073741824 >> 15 !== -32768) {
+ $ERROR('#511: -1073741824 >> 15 === -32768. Actual: ' + (-1073741824 >> 15));
+}
+
+
+if (-2147483648 >> 15 !== -65536) {
+ $ERROR('#512: -2147483648 >> 15 === -65536. Actual: ' + (-2147483648 >> 15));
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A4_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A4_T2.js
new file mode 100644
index 000000000..77fbfb2c8
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A4_T2.js
@@ -0,0 +1,2570 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A4_T2;
+ * @section: 11.7.2;
+ * @assertion: Check x >> y operator in distinct points;
+ * @description: ShiftExpression = 2^n - 1, n = 16...31;
+ */
+
+//CHECK
+
+if (-1 >> 16 !== -1) {
+ $ERROR('#513: -1 >> 16 === -1. Actual: ' + (-1 >> 16));
+}
+
+
+if (-2 >> 16 !== -1) {
+ $ERROR('#514: -2 >> 16 === -1. Actual: ' + (-2 >> 16));
+}
+
+
+if (-4 >> 16 !== -1) {
+ $ERROR('#515: -4 >> 16 === -1. Actual: ' + (-4 >> 16));
+}
+
+
+if (-8 >> 16 !== -1) {
+ $ERROR('#516: -8 >> 16 === -1. Actual: ' + (-8 >> 16));
+}
+
+
+if (-16 >> 16 !== -1) {
+ $ERROR('#517: -16 >> 16 === -1. Actual: ' + (-16 >> 16));
+}
+
+
+if (-32 >> 16 !== -1) {
+ $ERROR('#518: -32 >> 16 === -1. Actual: ' + (-32 >> 16));
+}
+
+
+if (-64 >> 16 !== -1) {
+ $ERROR('#519: -64 >> 16 === -1. Actual: ' + (-64 >> 16));
+}
+
+
+if (-128 >> 16 !== -1) {
+ $ERROR('#520: -128 >> 16 === -1. Actual: ' + (-128 >> 16));
+}
+
+
+if (-256 >> 16 !== -1) {
+ $ERROR('#521: -256 >> 16 === -1. Actual: ' + (-256 >> 16));
+}
+
+
+if (-512 >> 16 !== -1) {
+ $ERROR('#522: -512 >> 16 === -1. Actual: ' + (-512 >> 16));
+}
+
+
+if (-1024 >> 16 !== -1) {
+ $ERROR('#523: -1024 >> 16 === -1. Actual: ' + (-1024 >> 16));
+}
+
+
+if (-2048 >> 16 !== -1) {
+ $ERROR('#524: -2048 >> 16 === -1. Actual: ' + (-2048 >> 16));
+}
+
+
+if (-4096 >> 16 !== -1) {
+ $ERROR('#525: -4096 >> 16 === -1. Actual: ' + (-4096 >> 16));
+}
+
+
+if (-8192 >> 16 !== -1) {
+ $ERROR('#526: -8192 >> 16 === -1. Actual: ' + (-8192 >> 16));
+}
+
+
+if (-16384 >> 16 !== -1) {
+ $ERROR('#527: -16384 >> 16 === -1. Actual: ' + (-16384 >> 16));
+}
+
+
+if (-32768 >> 16 !== -1) {
+ $ERROR('#528: -32768 >> 16 === -1. Actual: ' + (-32768 >> 16));
+}
+
+
+if (-65536 >> 16 !== -1) {
+ $ERROR('#529: -65536 >> 16 === -1. Actual: ' + (-65536 >> 16));
+}
+
+
+if (-131072 >> 16 !== -2) {
+ $ERROR('#530: -131072 >> 16 === -2. Actual: ' + (-131072 >> 16));
+}
+
+
+if (-262144 >> 16 !== -4) {
+ $ERROR('#531: -262144 >> 16 === -4. Actual: ' + (-262144 >> 16));
+}
+
+
+if (-524288 >> 16 !== -8) {
+ $ERROR('#532: -524288 >> 16 === -8. Actual: ' + (-524288 >> 16));
+}
+
+
+if (-1048576 >> 16 !== -16) {
+ $ERROR('#533: -1048576 >> 16 === -16. Actual: ' + (-1048576 >> 16));
+}
+
+
+if (-2097152 >> 16 !== -32) {
+ $ERROR('#534: -2097152 >> 16 === -32. Actual: ' + (-2097152 >> 16));
+}
+
+
+if (-4194304 >> 16 !== -64) {
+ $ERROR('#535: -4194304 >> 16 === -64. Actual: ' + (-4194304 >> 16));
+}
+
+
+if (-8388608 >> 16 !== -128) {
+ $ERROR('#536: -8388608 >> 16 === -128. Actual: ' + (-8388608 >> 16));
+}
+
+
+if (-16777216 >> 16 !== -256) {
+ $ERROR('#537: -16777216 >> 16 === -256. Actual: ' + (-16777216 >> 16));
+}
+
+
+if (-33554432 >> 16 !== -512) {
+ $ERROR('#538: -33554432 >> 16 === -512. Actual: ' + (-33554432 >> 16));
+}
+
+
+if (-67108864 >> 16 !== -1024) {
+ $ERROR('#539: -67108864 >> 16 === -1024. Actual: ' + (-67108864 >> 16));
+}
+
+
+if (-134217728 >> 16 !== -2048) {
+ $ERROR('#540: -134217728 >> 16 === -2048. Actual: ' + (-134217728 >> 16));
+}
+
+
+if (-268435456 >> 16 !== -4096) {
+ $ERROR('#541: -268435456 >> 16 === -4096. Actual: ' + (-268435456 >> 16));
+}
+
+
+if (-536870912 >> 16 !== -8192) {
+ $ERROR('#542: -536870912 >> 16 === -8192. Actual: ' + (-536870912 >> 16));
+}
+
+
+if (-1073741824 >> 16 !== -16384) {
+ $ERROR('#543: -1073741824 >> 16 === -16384. Actual: ' + (-1073741824 >> 16));
+}
+
+
+if (-2147483648 >> 16 !== -32768) {
+ $ERROR('#544: -2147483648 >> 16 === -32768. Actual: ' + (-2147483648 >> 16));
+}
+
+
+if (-1 >> 17 !== -1) {
+ $ERROR('#545: -1 >> 17 === -1. Actual: ' + (-1 >> 17));
+}
+
+
+if (-2 >> 17 !== -1) {
+ $ERROR('#546: -2 >> 17 === -1. Actual: ' + (-2 >> 17));
+}
+
+
+if (-4 >> 17 !== -1) {
+ $ERROR('#547: -4 >> 17 === -1. Actual: ' + (-4 >> 17));
+}
+
+
+if (-8 >> 17 !== -1) {
+ $ERROR('#548: -8 >> 17 === -1. Actual: ' + (-8 >> 17));
+}
+
+
+if (-16 >> 17 !== -1) {
+ $ERROR('#549: -16 >> 17 === -1. Actual: ' + (-16 >> 17));
+}
+
+
+if (-32 >> 17 !== -1) {
+ $ERROR('#550: -32 >> 17 === -1. Actual: ' + (-32 >> 17));
+}
+
+
+if (-64 >> 17 !== -1) {
+ $ERROR('#551: -64 >> 17 === -1. Actual: ' + (-64 >> 17));
+}
+
+
+if (-128 >> 17 !== -1) {
+ $ERROR('#552: -128 >> 17 === -1. Actual: ' + (-128 >> 17));
+}
+
+
+if (-256 >> 17 !== -1) {
+ $ERROR('#553: -256 >> 17 === -1. Actual: ' + (-256 >> 17));
+}
+
+
+if (-512 >> 17 !== -1) {
+ $ERROR('#554: -512 >> 17 === -1. Actual: ' + (-512 >> 17));
+}
+
+
+if (-1024 >> 17 !== -1) {
+ $ERROR('#555: -1024 >> 17 === -1. Actual: ' + (-1024 >> 17));
+}
+
+
+if (-2048 >> 17 !== -1) {
+ $ERROR('#556: -2048 >> 17 === -1. Actual: ' + (-2048 >> 17));
+}
+
+
+if (-4096 >> 17 !== -1) {
+ $ERROR('#557: -4096 >> 17 === -1. Actual: ' + (-4096 >> 17));
+}
+
+
+if (-8192 >> 17 !== -1) {
+ $ERROR('#558: -8192 >> 17 === -1. Actual: ' + (-8192 >> 17));
+}
+
+
+if (-16384 >> 17 !== -1) {
+ $ERROR('#559: -16384 >> 17 === -1. Actual: ' + (-16384 >> 17));
+}
+
+
+if (-32768 >> 17 !== -1) {
+ $ERROR('#560: -32768 >> 17 === -1. Actual: ' + (-32768 >> 17));
+}
+
+
+if (-65536 >> 17 !== -1) {
+ $ERROR('#561: -65536 >> 17 === -1. Actual: ' + (-65536 >> 17));
+}
+
+
+if (-131072 >> 17 !== -1) {
+ $ERROR('#562: -131072 >> 17 === -1. Actual: ' + (-131072 >> 17));
+}
+
+
+if (-262144 >> 17 !== -2) {
+ $ERROR('#563: -262144 >> 17 === -2. Actual: ' + (-262144 >> 17));
+}
+
+
+if (-524288 >> 17 !== -4) {
+ $ERROR('#564: -524288 >> 17 === -4. Actual: ' + (-524288 >> 17));
+}
+
+
+if (-1048576 >> 17 !== -8) {
+ $ERROR('#565: -1048576 >> 17 === -8. Actual: ' + (-1048576 >> 17));
+}
+
+
+if (-2097152 >> 17 !== -16) {
+ $ERROR('#566: -2097152 >> 17 === -16. Actual: ' + (-2097152 >> 17));
+}
+
+
+if (-4194304 >> 17 !== -32) {
+ $ERROR('#567: -4194304 >> 17 === -32. Actual: ' + (-4194304 >> 17));
+}
+
+
+if (-8388608 >> 17 !== -64) {
+ $ERROR('#568: -8388608 >> 17 === -64. Actual: ' + (-8388608 >> 17));
+}
+
+
+if (-16777216 >> 17 !== -128) {
+ $ERROR('#569: -16777216 >> 17 === -128. Actual: ' + (-16777216 >> 17));
+}
+
+
+if (-33554432 >> 17 !== -256) {
+ $ERROR('#570: -33554432 >> 17 === -256. Actual: ' + (-33554432 >> 17));
+}
+
+
+if (-67108864 >> 17 !== -512) {
+ $ERROR('#571: -67108864 >> 17 === -512. Actual: ' + (-67108864 >> 17));
+}
+
+
+if (-134217728 >> 17 !== -1024) {
+ $ERROR('#572: -134217728 >> 17 === -1024. Actual: ' + (-134217728 >> 17));
+}
+
+
+if (-268435456 >> 17 !== -2048) {
+ $ERROR('#573: -268435456 >> 17 === -2048. Actual: ' + (-268435456 >> 17));
+}
+
+
+if (-536870912 >> 17 !== -4096) {
+ $ERROR('#574: -536870912 >> 17 === -4096. Actual: ' + (-536870912 >> 17));
+}
+
+
+if (-1073741824 >> 17 !== -8192) {
+ $ERROR('#575: -1073741824 >> 17 === -8192. Actual: ' + (-1073741824 >> 17));
+}
+
+
+if (-2147483648 >> 17 !== -16384) {
+ $ERROR('#576: -2147483648 >> 17 === -16384. Actual: ' + (-2147483648 >> 17));
+}
+
+
+if (-1 >> 18 !== -1) {
+ $ERROR('#577: -1 >> 18 === -1. Actual: ' + (-1 >> 18));
+}
+
+
+if (-2 >> 18 !== -1) {
+ $ERROR('#578: -2 >> 18 === -1. Actual: ' + (-2 >> 18));
+}
+
+
+if (-4 >> 18 !== -1) {
+ $ERROR('#579: -4 >> 18 === -1. Actual: ' + (-4 >> 18));
+}
+
+
+if (-8 >> 18 !== -1) {
+ $ERROR('#580: -8 >> 18 === -1. Actual: ' + (-8 >> 18));
+}
+
+
+if (-16 >> 18 !== -1) {
+ $ERROR('#581: -16 >> 18 === -1. Actual: ' + (-16 >> 18));
+}
+
+
+if (-32 >> 18 !== -1) {
+ $ERROR('#582: -32 >> 18 === -1. Actual: ' + (-32 >> 18));
+}
+
+
+if (-64 >> 18 !== -1) {
+ $ERROR('#583: -64 >> 18 === -1. Actual: ' + (-64 >> 18));
+}
+
+
+if (-128 >> 18 !== -1) {
+ $ERROR('#584: -128 >> 18 === -1. Actual: ' + (-128 >> 18));
+}
+
+
+if (-256 >> 18 !== -1) {
+ $ERROR('#585: -256 >> 18 === -1. Actual: ' + (-256 >> 18));
+}
+
+
+if (-512 >> 18 !== -1) {
+ $ERROR('#586: -512 >> 18 === -1. Actual: ' + (-512 >> 18));
+}
+
+
+if (-1024 >> 18 !== -1) {
+ $ERROR('#587: -1024 >> 18 === -1. Actual: ' + (-1024 >> 18));
+}
+
+
+if (-2048 >> 18 !== -1) {
+ $ERROR('#588: -2048 >> 18 === -1. Actual: ' + (-2048 >> 18));
+}
+
+
+if (-4096 >> 18 !== -1) {
+ $ERROR('#589: -4096 >> 18 === -1. Actual: ' + (-4096 >> 18));
+}
+
+
+if (-8192 >> 18 !== -1) {
+ $ERROR('#590: -8192 >> 18 === -1. Actual: ' + (-8192 >> 18));
+}
+
+
+if (-16384 >> 18 !== -1) {
+ $ERROR('#591: -16384 >> 18 === -1. Actual: ' + (-16384 >> 18));
+}
+
+
+if (-32768 >> 18 !== -1) {
+ $ERROR('#592: -32768 >> 18 === -1. Actual: ' + (-32768 >> 18));
+}
+
+
+if (-65536 >> 18 !== -1) {
+ $ERROR('#593: -65536 >> 18 === -1. Actual: ' + (-65536 >> 18));
+}
+
+
+if (-131072 >> 18 !== -1) {
+ $ERROR('#594: -131072 >> 18 === -1. Actual: ' + (-131072 >> 18));
+}
+
+
+if (-262144 >> 18 !== -1) {
+ $ERROR('#595: -262144 >> 18 === -1. Actual: ' + (-262144 >> 18));
+}
+
+
+if (-524288 >> 18 !== -2) {
+ $ERROR('#596: -524288 >> 18 === -2. Actual: ' + (-524288 >> 18));
+}
+
+
+if (-1048576 >> 18 !== -4) {
+ $ERROR('#597: -1048576 >> 18 === -4. Actual: ' + (-1048576 >> 18));
+}
+
+
+if (-2097152 >> 18 !== -8) {
+ $ERROR('#598: -2097152 >> 18 === -8. Actual: ' + (-2097152 >> 18));
+}
+
+
+if (-4194304 >> 18 !== -16) {
+ $ERROR('#599: -4194304 >> 18 === -16. Actual: ' + (-4194304 >> 18));
+}
+
+
+if (-8388608 >> 18 !== -32) {
+ $ERROR('#600: -8388608 >> 18 === -32. Actual: ' + (-8388608 >> 18));
+}
+
+
+if (-16777216 >> 18 !== -64) {
+ $ERROR('#601: -16777216 >> 18 === -64. Actual: ' + (-16777216 >> 18));
+}
+
+
+if (-33554432 >> 18 !== -128) {
+ $ERROR('#602: -33554432 >> 18 === -128. Actual: ' + (-33554432 >> 18));
+}
+
+
+if (-67108864 >> 18 !== -256) {
+ $ERROR('#603: -67108864 >> 18 === -256. Actual: ' + (-67108864 >> 18));
+}
+
+
+if (-134217728 >> 18 !== -512) {
+ $ERROR('#604: -134217728 >> 18 === -512. Actual: ' + (-134217728 >> 18));
+}
+
+
+if (-268435456 >> 18 !== -1024) {
+ $ERROR('#605: -268435456 >> 18 === -1024. Actual: ' + (-268435456 >> 18));
+}
+
+
+if (-536870912 >> 18 !== -2048) {
+ $ERROR('#606: -536870912 >> 18 === -2048. Actual: ' + (-536870912 >> 18));
+}
+
+
+if (-1073741824 >> 18 !== -4096) {
+ $ERROR('#607: -1073741824 >> 18 === -4096. Actual: ' + (-1073741824 >> 18));
+}
+
+
+if (-2147483648 >> 18 !== -8192) {
+ $ERROR('#608: -2147483648 >> 18 === -8192. Actual: ' + (-2147483648 >> 18));
+}
+
+
+if (-1 >> 19 !== -1) {
+ $ERROR('#609: -1 >> 19 === -1. Actual: ' + (-1 >> 19));
+}
+
+
+if (-2 >> 19 !== -1) {
+ $ERROR('#610: -2 >> 19 === -1. Actual: ' + (-2 >> 19));
+}
+
+
+if (-4 >> 19 !== -1) {
+ $ERROR('#611: -4 >> 19 === -1. Actual: ' + (-4 >> 19));
+}
+
+
+if (-8 >> 19 !== -1) {
+ $ERROR('#612: -8 >> 19 === -1. Actual: ' + (-8 >> 19));
+}
+
+
+if (-16 >> 19 !== -1) {
+ $ERROR('#613: -16 >> 19 === -1. Actual: ' + (-16 >> 19));
+}
+
+
+if (-32 >> 19 !== -1) {
+ $ERROR('#614: -32 >> 19 === -1. Actual: ' + (-32 >> 19));
+}
+
+
+if (-64 >> 19 !== -1) {
+ $ERROR('#615: -64 >> 19 === -1. Actual: ' + (-64 >> 19));
+}
+
+
+if (-128 >> 19 !== -1) {
+ $ERROR('#616: -128 >> 19 === -1. Actual: ' + (-128 >> 19));
+}
+
+
+if (-256 >> 19 !== -1) {
+ $ERROR('#617: -256 >> 19 === -1. Actual: ' + (-256 >> 19));
+}
+
+
+if (-512 >> 19 !== -1) {
+ $ERROR('#618: -512 >> 19 === -1. Actual: ' + (-512 >> 19));
+}
+
+
+if (-1024 >> 19 !== -1) {
+ $ERROR('#619: -1024 >> 19 === -1. Actual: ' + (-1024 >> 19));
+}
+
+
+if (-2048 >> 19 !== -1) {
+ $ERROR('#620: -2048 >> 19 === -1. Actual: ' + (-2048 >> 19));
+}
+
+
+if (-4096 >> 19 !== -1) {
+ $ERROR('#621: -4096 >> 19 === -1. Actual: ' + (-4096 >> 19));
+}
+
+
+if (-8192 >> 19 !== -1) {
+ $ERROR('#622: -8192 >> 19 === -1. Actual: ' + (-8192 >> 19));
+}
+
+
+if (-16384 >> 19 !== -1) {
+ $ERROR('#623: -16384 >> 19 === -1. Actual: ' + (-16384 >> 19));
+}
+
+
+if (-32768 >> 19 !== -1) {
+ $ERROR('#624: -32768 >> 19 === -1. Actual: ' + (-32768 >> 19));
+}
+
+
+if (-65536 >> 19 !== -1) {
+ $ERROR('#625: -65536 >> 19 === -1. Actual: ' + (-65536 >> 19));
+}
+
+
+if (-131072 >> 19 !== -1) {
+ $ERROR('#626: -131072 >> 19 === -1. Actual: ' + (-131072 >> 19));
+}
+
+
+if (-262144 >> 19 !== -1) {
+ $ERROR('#627: -262144 >> 19 === -1. Actual: ' + (-262144 >> 19));
+}
+
+
+if (-524288 >> 19 !== -1) {
+ $ERROR('#628: -524288 >> 19 === -1. Actual: ' + (-524288 >> 19));
+}
+
+
+if (-1048576 >> 19 !== -2) {
+ $ERROR('#629: -1048576 >> 19 === -2. Actual: ' + (-1048576 >> 19));
+}
+
+
+if (-2097152 >> 19 !== -4) {
+ $ERROR('#630: -2097152 >> 19 === -4. Actual: ' + (-2097152 >> 19));
+}
+
+
+if (-4194304 >> 19 !== -8) {
+ $ERROR('#631: -4194304 >> 19 === -8. Actual: ' + (-4194304 >> 19));
+}
+
+
+if (-8388608 >> 19 !== -16) {
+ $ERROR('#632: -8388608 >> 19 === -16. Actual: ' + (-8388608 >> 19));
+}
+
+
+if (-16777216 >> 19 !== -32) {
+ $ERROR('#633: -16777216 >> 19 === -32. Actual: ' + (-16777216 >> 19));
+}
+
+
+if (-33554432 >> 19 !== -64) {
+ $ERROR('#634: -33554432 >> 19 === -64. Actual: ' + (-33554432 >> 19));
+}
+
+
+if (-67108864 >> 19 !== -128) {
+ $ERROR('#635: -67108864 >> 19 === -128. Actual: ' + (-67108864 >> 19));
+}
+
+
+if (-134217728 >> 19 !== -256) {
+ $ERROR('#636: -134217728 >> 19 === -256. Actual: ' + (-134217728 >> 19));
+}
+
+
+if (-268435456 >> 19 !== -512) {
+ $ERROR('#637: -268435456 >> 19 === -512. Actual: ' + (-268435456 >> 19));
+}
+
+
+if (-536870912 >> 19 !== -1024) {
+ $ERROR('#638: -536870912 >> 19 === -1024. Actual: ' + (-536870912 >> 19));
+}
+
+
+if (-1073741824 >> 19 !== -2048) {
+ $ERROR('#639: -1073741824 >> 19 === -2048. Actual: ' + (-1073741824 >> 19));
+}
+
+
+if (-2147483648 >> 19 !== -4096) {
+ $ERROR('#640: -2147483648 >> 19 === -4096. Actual: ' + (-2147483648 >> 19));
+}
+
+
+if (-1 >> 20 !== -1) {
+ $ERROR('#641: -1 >> 20 === -1. Actual: ' + (-1 >> 20));
+}
+
+
+if (-2 >> 20 !== -1) {
+ $ERROR('#642: -2 >> 20 === -1. Actual: ' + (-2 >> 20));
+}
+
+
+if (-4 >> 20 !== -1) {
+ $ERROR('#643: -4 >> 20 === -1. Actual: ' + (-4 >> 20));
+}
+
+
+if (-8 >> 20 !== -1) {
+ $ERROR('#644: -8 >> 20 === -1. Actual: ' + (-8 >> 20));
+}
+
+
+if (-16 >> 20 !== -1) {
+ $ERROR('#645: -16 >> 20 === -1. Actual: ' + (-16 >> 20));
+}
+
+
+if (-32 >> 20 !== -1) {
+ $ERROR('#646: -32 >> 20 === -1. Actual: ' + (-32 >> 20));
+}
+
+
+if (-64 >> 20 !== -1) {
+ $ERROR('#647: -64 >> 20 === -1. Actual: ' + (-64 >> 20));
+}
+
+
+if (-128 >> 20 !== -1) {
+ $ERROR('#648: -128 >> 20 === -1. Actual: ' + (-128 >> 20));
+}
+
+
+if (-256 >> 20 !== -1) {
+ $ERROR('#649: -256 >> 20 === -1. Actual: ' + (-256 >> 20));
+}
+
+
+if (-512 >> 20 !== -1) {
+ $ERROR('#650: -512 >> 20 === -1. Actual: ' + (-512 >> 20));
+}
+
+
+if (-1024 >> 20 !== -1) {
+ $ERROR('#651: -1024 >> 20 === -1. Actual: ' + (-1024 >> 20));
+}
+
+
+if (-2048 >> 20 !== -1) {
+ $ERROR('#652: -2048 >> 20 === -1. Actual: ' + (-2048 >> 20));
+}
+
+
+if (-4096 >> 20 !== -1) {
+ $ERROR('#653: -4096 >> 20 === -1. Actual: ' + (-4096 >> 20));
+}
+
+
+if (-8192 >> 20 !== -1) {
+ $ERROR('#654: -8192 >> 20 === -1. Actual: ' + (-8192 >> 20));
+}
+
+
+if (-16384 >> 20 !== -1) {
+ $ERROR('#655: -16384 >> 20 === -1. Actual: ' + (-16384 >> 20));
+}
+
+
+if (-32768 >> 20 !== -1) {
+ $ERROR('#656: -32768 >> 20 === -1. Actual: ' + (-32768 >> 20));
+}
+
+
+if (-65536 >> 20 !== -1) {
+ $ERROR('#657: -65536 >> 20 === -1. Actual: ' + (-65536 >> 20));
+}
+
+
+if (-131072 >> 20 !== -1) {
+ $ERROR('#658: -131072 >> 20 === -1. Actual: ' + (-131072 >> 20));
+}
+
+
+if (-262144 >> 20 !== -1) {
+ $ERROR('#659: -262144 >> 20 === -1. Actual: ' + (-262144 >> 20));
+}
+
+
+if (-524288 >> 20 !== -1) {
+ $ERROR('#660: -524288 >> 20 === -1. Actual: ' + (-524288 >> 20));
+}
+
+
+if (-1048576 >> 20 !== -1) {
+ $ERROR('#661: -1048576 >> 20 === -1. Actual: ' + (-1048576 >> 20));
+}
+
+
+if (-2097152 >> 20 !== -2) {
+ $ERROR('#662: -2097152 >> 20 === -2. Actual: ' + (-2097152 >> 20));
+}
+
+
+if (-4194304 >> 20 !== -4) {
+ $ERROR('#663: -4194304 >> 20 === -4. Actual: ' + (-4194304 >> 20));
+}
+
+
+if (-8388608 >> 20 !== -8) {
+ $ERROR('#664: -8388608 >> 20 === -8. Actual: ' + (-8388608 >> 20));
+}
+
+
+if (-16777216 >> 20 !== -16) {
+ $ERROR('#665: -16777216 >> 20 === -16. Actual: ' + (-16777216 >> 20));
+}
+
+
+if (-33554432 >> 20 !== -32) {
+ $ERROR('#666: -33554432 >> 20 === -32. Actual: ' + (-33554432 >> 20));
+}
+
+
+if (-67108864 >> 20 !== -64) {
+ $ERROR('#667: -67108864 >> 20 === -64. Actual: ' + (-67108864 >> 20));
+}
+
+
+if (-134217728 >> 20 !== -128) {
+ $ERROR('#668: -134217728 >> 20 === -128. Actual: ' + (-134217728 >> 20));
+}
+
+
+if (-268435456 >> 20 !== -256) {
+ $ERROR('#669: -268435456 >> 20 === -256. Actual: ' + (-268435456 >> 20));
+}
+
+
+if (-536870912 >> 20 !== -512) {
+ $ERROR('#670: -536870912 >> 20 === -512. Actual: ' + (-536870912 >> 20));
+}
+
+
+if (-1073741824 >> 20 !== -1024) {
+ $ERROR('#671: -1073741824 >> 20 === -1024. Actual: ' + (-1073741824 >> 20));
+}
+
+
+if (-2147483648 >> 20 !== -2048) {
+ $ERROR('#672: -2147483648 >> 20 === -2048. Actual: ' + (-2147483648 >> 20));
+}
+
+
+if (-1 >> 21 !== -1) {
+ $ERROR('#673: -1 >> 21 === -1. Actual: ' + (-1 >> 21));
+}
+
+
+if (-2 >> 21 !== -1) {
+ $ERROR('#674: -2 >> 21 === -1. Actual: ' + (-2 >> 21));
+}
+
+
+if (-4 >> 21 !== -1) {
+ $ERROR('#675: -4 >> 21 === -1. Actual: ' + (-4 >> 21));
+}
+
+
+if (-8 >> 21 !== -1) {
+ $ERROR('#676: -8 >> 21 === -1. Actual: ' + (-8 >> 21));
+}
+
+
+if (-16 >> 21 !== -1) {
+ $ERROR('#677: -16 >> 21 === -1. Actual: ' + (-16 >> 21));
+}
+
+
+if (-32 >> 21 !== -1) {
+ $ERROR('#678: -32 >> 21 === -1. Actual: ' + (-32 >> 21));
+}
+
+
+if (-64 >> 21 !== -1) {
+ $ERROR('#679: -64 >> 21 === -1. Actual: ' + (-64 >> 21));
+}
+
+
+if (-128 >> 21 !== -1) {
+ $ERROR('#680: -128 >> 21 === -1. Actual: ' + (-128 >> 21));
+}
+
+
+if (-256 >> 21 !== -1) {
+ $ERROR('#681: -256 >> 21 === -1. Actual: ' + (-256 >> 21));
+}
+
+
+if (-512 >> 21 !== -1) {
+ $ERROR('#682: -512 >> 21 === -1. Actual: ' + (-512 >> 21));
+}
+
+
+if (-1024 >> 21 !== -1) {
+ $ERROR('#683: -1024 >> 21 === -1. Actual: ' + (-1024 >> 21));
+}
+
+
+if (-2048 >> 21 !== -1) {
+ $ERROR('#684: -2048 >> 21 === -1. Actual: ' + (-2048 >> 21));
+}
+
+
+if (-4096 >> 21 !== -1) {
+ $ERROR('#685: -4096 >> 21 === -1. Actual: ' + (-4096 >> 21));
+}
+
+
+if (-8192 >> 21 !== -1) {
+ $ERROR('#686: -8192 >> 21 === -1. Actual: ' + (-8192 >> 21));
+}
+
+
+if (-16384 >> 21 !== -1) {
+ $ERROR('#687: -16384 >> 21 === -1. Actual: ' + (-16384 >> 21));
+}
+
+
+if (-32768 >> 21 !== -1) {
+ $ERROR('#688: -32768 >> 21 === -1. Actual: ' + (-32768 >> 21));
+}
+
+
+if (-65536 >> 21 !== -1) {
+ $ERROR('#689: -65536 >> 21 === -1. Actual: ' + (-65536 >> 21));
+}
+
+
+if (-131072 >> 21 !== -1) {
+ $ERROR('#690: -131072 >> 21 === -1. Actual: ' + (-131072 >> 21));
+}
+
+
+if (-262144 >> 21 !== -1) {
+ $ERROR('#691: -262144 >> 21 === -1. Actual: ' + (-262144 >> 21));
+}
+
+
+if (-524288 >> 21 !== -1) {
+ $ERROR('#692: -524288 >> 21 === -1. Actual: ' + (-524288 >> 21));
+}
+
+
+if (-1048576 >> 21 !== -1) {
+ $ERROR('#693: -1048576 >> 21 === -1. Actual: ' + (-1048576 >> 21));
+}
+
+
+if (-2097152 >> 21 !== -1) {
+ $ERROR('#694: -2097152 >> 21 === -1. Actual: ' + (-2097152 >> 21));
+}
+
+
+if (-4194304 >> 21 !== -2) {
+ $ERROR('#695: -4194304 >> 21 === -2. Actual: ' + (-4194304 >> 21));
+}
+
+
+if (-8388608 >> 21 !== -4) {
+ $ERROR('#696: -8388608 >> 21 === -4. Actual: ' + (-8388608 >> 21));
+}
+
+
+if (-16777216 >> 21 !== -8) {
+ $ERROR('#697: -16777216 >> 21 === -8. Actual: ' + (-16777216 >> 21));
+}
+
+
+if (-33554432 >> 21 !== -16) {
+ $ERROR('#698: -33554432 >> 21 === -16. Actual: ' + (-33554432 >> 21));
+}
+
+
+if (-67108864 >> 21 !== -32) {
+ $ERROR('#699: -67108864 >> 21 === -32. Actual: ' + (-67108864 >> 21));
+}
+
+
+if (-134217728 >> 21 !== -64) {
+ $ERROR('#700: -134217728 >> 21 === -64. Actual: ' + (-134217728 >> 21));
+}
+
+
+if (-268435456 >> 21 !== -128) {
+ $ERROR('#701: -268435456 >> 21 === -128. Actual: ' + (-268435456 >> 21));
+}
+
+
+if (-536870912 >> 21 !== -256) {
+ $ERROR('#702: -536870912 >> 21 === -256. Actual: ' + (-536870912 >> 21));
+}
+
+
+if (-1073741824 >> 21 !== -512) {
+ $ERROR('#703: -1073741824 >> 21 === -512. Actual: ' + (-1073741824 >> 21));
+}
+
+
+if (-2147483648 >> 21 !== -1024) {
+ $ERROR('#704: -2147483648 >> 21 === -1024. Actual: ' + (-2147483648 >> 21));
+}
+
+
+if (-1 >> 22 !== -1) {
+ $ERROR('#705: -1 >> 22 === -1. Actual: ' + (-1 >> 22));
+}
+
+
+if (-2 >> 22 !== -1) {
+ $ERROR('#706: -2 >> 22 === -1. Actual: ' + (-2 >> 22));
+}
+
+
+if (-4 >> 22 !== -1) {
+ $ERROR('#707: -4 >> 22 === -1. Actual: ' + (-4 >> 22));
+}
+
+
+if (-8 >> 22 !== -1) {
+ $ERROR('#708: -8 >> 22 === -1. Actual: ' + (-8 >> 22));
+}
+
+
+if (-16 >> 22 !== -1) {
+ $ERROR('#709: -16 >> 22 === -1. Actual: ' + (-16 >> 22));
+}
+
+
+if (-32 >> 22 !== -1) {
+ $ERROR('#710: -32 >> 22 === -1. Actual: ' + (-32 >> 22));
+}
+
+
+if (-64 >> 22 !== -1) {
+ $ERROR('#711: -64 >> 22 === -1. Actual: ' + (-64 >> 22));
+}
+
+
+if (-128 >> 22 !== -1) {
+ $ERROR('#712: -128 >> 22 === -1. Actual: ' + (-128 >> 22));
+}
+
+
+if (-256 >> 22 !== -1) {
+ $ERROR('#713: -256 >> 22 === -1. Actual: ' + (-256 >> 22));
+}
+
+
+if (-512 >> 22 !== -1) {
+ $ERROR('#714: -512 >> 22 === -1. Actual: ' + (-512 >> 22));
+}
+
+
+if (-1024 >> 22 !== -1) {
+ $ERROR('#715: -1024 >> 22 === -1. Actual: ' + (-1024 >> 22));
+}
+
+
+if (-2048 >> 22 !== -1) {
+ $ERROR('#716: -2048 >> 22 === -1. Actual: ' + (-2048 >> 22));
+}
+
+
+if (-4096 >> 22 !== -1) {
+ $ERROR('#717: -4096 >> 22 === -1. Actual: ' + (-4096 >> 22));
+}
+
+
+if (-8192 >> 22 !== -1) {
+ $ERROR('#718: -8192 >> 22 === -1. Actual: ' + (-8192 >> 22));
+}
+
+
+if (-16384 >> 22 !== -1) {
+ $ERROR('#719: -16384 >> 22 === -1. Actual: ' + (-16384 >> 22));
+}
+
+
+if (-32768 >> 22 !== -1) {
+ $ERROR('#720: -32768 >> 22 === -1. Actual: ' + (-32768 >> 22));
+}
+
+
+if (-65536 >> 22 !== -1) {
+ $ERROR('#721: -65536 >> 22 === -1. Actual: ' + (-65536 >> 22));
+}
+
+
+if (-131072 >> 22 !== -1) {
+ $ERROR('#722: -131072 >> 22 === -1. Actual: ' + (-131072 >> 22));
+}
+
+
+if (-262144 >> 22 !== -1) {
+ $ERROR('#723: -262144 >> 22 === -1. Actual: ' + (-262144 >> 22));
+}
+
+
+if (-524288 >> 22 !== -1) {
+ $ERROR('#724: -524288 >> 22 === -1. Actual: ' + (-524288 >> 22));
+}
+
+
+if (-1048576 >> 22 !== -1) {
+ $ERROR('#725: -1048576 >> 22 === -1. Actual: ' + (-1048576 >> 22));
+}
+
+
+if (-2097152 >> 22 !== -1) {
+ $ERROR('#726: -2097152 >> 22 === -1. Actual: ' + (-2097152 >> 22));
+}
+
+
+if (-4194304 >> 22 !== -1) {
+ $ERROR('#727: -4194304 >> 22 === -1. Actual: ' + (-4194304 >> 22));
+}
+
+
+if (-8388608 >> 22 !== -2) {
+ $ERROR('#728: -8388608 >> 22 === -2. Actual: ' + (-8388608 >> 22));
+}
+
+
+if (-16777216 >> 22 !== -4) {
+ $ERROR('#729: -16777216 >> 22 === -4. Actual: ' + (-16777216 >> 22));
+}
+
+
+if (-33554432 >> 22 !== -8) {
+ $ERROR('#730: -33554432 >> 22 === -8. Actual: ' + (-33554432 >> 22));
+}
+
+
+if (-67108864 >> 22 !== -16) {
+ $ERROR('#731: -67108864 >> 22 === -16. Actual: ' + (-67108864 >> 22));
+}
+
+
+if (-134217728 >> 22 !== -32) {
+ $ERROR('#732: -134217728 >> 22 === -32. Actual: ' + (-134217728 >> 22));
+}
+
+
+if (-268435456 >> 22 !== -64) {
+ $ERROR('#733: -268435456 >> 22 === -64. Actual: ' + (-268435456 >> 22));
+}
+
+
+if (-536870912 >> 22 !== -128) {
+ $ERROR('#734: -536870912 >> 22 === -128. Actual: ' + (-536870912 >> 22));
+}
+
+
+if (-1073741824 >> 22 !== -256) {
+ $ERROR('#735: -1073741824 >> 22 === -256. Actual: ' + (-1073741824 >> 22));
+}
+
+
+if (-2147483648 >> 22 !== -512) {
+ $ERROR('#736: -2147483648 >> 22 === -512. Actual: ' + (-2147483648 >> 22));
+}
+
+
+if (-1 >> 23 !== -1) {
+ $ERROR('#737: -1 >> 23 === -1. Actual: ' + (-1 >> 23));
+}
+
+
+if (-2 >> 23 !== -1) {
+ $ERROR('#738: -2 >> 23 === -1. Actual: ' + (-2 >> 23));
+}
+
+
+if (-4 >> 23 !== -1) {
+ $ERROR('#739: -4 >> 23 === -1. Actual: ' + (-4 >> 23));
+}
+
+
+if (-8 >> 23 !== -1) {
+ $ERROR('#740: -8 >> 23 === -1. Actual: ' + (-8 >> 23));
+}
+
+
+if (-16 >> 23 !== -1) {
+ $ERROR('#741: -16 >> 23 === -1. Actual: ' + (-16 >> 23));
+}
+
+
+if (-32 >> 23 !== -1) {
+ $ERROR('#742: -32 >> 23 === -1. Actual: ' + (-32 >> 23));
+}
+
+
+if (-64 >> 23 !== -1) {
+ $ERROR('#743: -64 >> 23 === -1. Actual: ' + (-64 >> 23));
+}
+
+
+if (-128 >> 23 !== -1) {
+ $ERROR('#744: -128 >> 23 === -1. Actual: ' + (-128 >> 23));
+}
+
+
+if (-256 >> 23 !== -1) {
+ $ERROR('#745: -256 >> 23 === -1. Actual: ' + (-256 >> 23));
+}
+
+
+if (-512 >> 23 !== -1) {
+ $ERROR('#746: -512 >> 23 === -1. Actual: ' + (-512 >> 23));
+}
+
+
+if (-1024 >> 23 !== -1) {
+ $ERROR('#747: -1024 >> 23 === -1. Actual: ' + (-1024 >> 23));
+}
+
+
+if (-2048 >> 23 !== -1) {
+ $ERROR('#748: -2048 >> 23 === -1. Actual: ' + (-2048 >> 23));
+}
+
+
+if (-4096 >> 23 !== -1) {
+ $ERROR('#749: -4096 >> 23 === -1. Actual: ' + (-4096 >> 23));
+}
+
+
+if (-8192 >> 23 !== -1) {
+ $ERROR('#750: -8192 >> 23 === -1. Actual: ' + (-8192 >> 23));
+}
+
+
+if (-16384 >> 23 !== -1) {
+ $ERROR('#751: -16384 >> 23 === -1. Actual: ' + (-16384 >> 23));
+}
+
+
+if (-32768 >> 23 !== -1) {
+ $ERROR('#752: -32768 >> 23 === -1. Actual: ' + (-32768 >> 23));
+}
+
+
+if (-65536 >> 23 !== -1) {
+ $ERROR('#753: -65536 >> 23 === -1. Actual: ' + (-65536 >> 23));
+}
+
+
+if (-131072 >> 23 !== -1) {
+ $ERROR('#754: -131072 >> 23 === -1. Actual: ' + (-131072 >> 23));
+}
+
+
+if (-262144 >> 23 !== -1) {
+ $ERROR('#755: -262144 >> 23 === -1. Actual: ' + (-262144 >> 23));
+}
+
+
+if (-524288 >> 23 !== -1) {
+ $ERROR('#756: -524288 >> 23 === -1. Actual: ' + (-524288 >> 23));
+}
+
+
+if (-1048576 >> 23 !== -1) {
+ $ERROR('#757: -1048576 >> 23 === -1. Actual: ' + (-1048576 >> 23));
+}
+
+
+if (-2097152 >> 23 !== -1) {
+ $ERROR('#758: -2097152 >> 23 === -1. Actual: ' + (-2097152 >> 23));
+}
+
+
+if (-4194304 >> 23 !== -1) {
+ $ERROR('#759: -4194304 >> 23 === -1. Actual: ' + (-4194304 >> 23));
+}
+
+
+if (-8388608 >> 23 !== -1) {
+ $ERROR('#760: -8388608 >> 23 === -1. Actual: ' + (-8388608 >> 23));
+}
+
+
+if (-16777216 >> 23 !== -2) {
+ $ERROR('#761: -16777216 >> 23 === -2. Actual: ' + (-16777216 >> 23));
+}
+
+
+if (-33554432 >> 23 !== -4) {
+ $ERROR('#762: -33554432 >> 23 === -4. Actual: ' + (-33554432 >> 23));
+}
+
+
+if (-67108864 >> 23 !== -8) {
+ $ERROR('#763: -67108864 >> 23 === -8. Actual: ' + (-67108864 >> 23));
+}
+
+
+if (-134217728 >> 23 !== -16) {
+ $ERROR('#764: -134217728 >> 23 === -16. Actual: ' + (-134217728 >> 23));
+}
+
+
+if (-268435456 >> 23 !== -32) {
+ $ERROR('#765: -268435456 >> 23 === -32. Actual: ' + (-268435456 >> 23));
+}
+
+
+if (-536870912 >> 23 !== -64) {
+ $ERROR('#766: -536870912 >> 23 === -64. Actual: ' + (-536870912 >> 23));
+}
+
+
+if (-1073741824 >> 23 !== -128) {
+ $ERROR('#767: -1073741824 >> 23 === -128. Actual: ' + (-1073741824 >> 23));
+}
+
+
+if (-2147483648 >> 23 !== -256) {
+ $ERROR('#768: -2147483648 >> 23 === -256. Actual: ' + (-2147483648 >> 23));
+}
+
+
+if (-1 >> 24 !== -1) {
+ $ERROR('#769: -1 >> 24 === -1. Actual: ' + (-1 >> 24));
+}
+
+
+if (-2 >> 24 !== -1) {
+ $ERROR('#770: -2 >> 24 === -1. Actual: ' + (-2 >> 24));
+}
+
+
+if (-4 >> 24 !== -1) {
+ $ERROR('#771: -4 >> 24 === -1. Actual: ' + (-4 >> 24));
+}
+
+
+if (-8 >> 24 !== -1) {
+ $ERROR('#772: -8 >> 24 === -1. Actual: ' + (-8 >> 24));
+}
+
+
+if (-16 >> 24 !== -1) {
+ $ERROR('#773: -16 >> 24 === -1. Actual: ' + (-16 >> 24));
+}
+
+
+if (-32 >> 24 !== -1) {
+ $ERROR('#774: -32 >> 24 === -1. Actual: ' + (-32 >> 24));
+}
+
+
+if (-64 >> 24 !== -1) {
+ $ERROR('#775: -64 >> 24 === -1. Actual: ' + (-64 >> 24));
+}
+
+
+if (-128 >> 24 !== -1) {
+ $ERROR('#776: -128 >> 24 === -1. Actual: ' + (-128 >> 24));
+}
+
+
+if (-256 >> 24 !== -1) {
+ $ERROR('#777: -256 >> 24 === -1. Actual: ' + (-256 >> 24));
+}
+
+
+if (-512 >> 24 !== -1) {
+ $ERROR('#778: -512 >> 24 === -1. Actual: ' + (-512 >> 24));
+}
+
+
+if (-1024 >> 24 !== -1) {
+ $ERROR('#779: -1024 >> 24 === -1. Actual: ' + (-1024 >> 24));
+}
+
+
+if (-2048 >> 24 !== -1) {
+ $ERROR('#780: -2048 >> 24 === -1. Actual: ' + (-2048 >> 24));
+}
+
+
+if (-4096 >> 24 !== -1) {
+ $ERROR('#781: -4096 >> 24 === -1. Actual: ' + (-4096 >> 24));
+}
+
+
+if (-8192 >> 24 !== -1) {
+ $ERROR('#782: -8192 >> 24 === -1. Actual: ' + (-8192 >> 24));
+}
+
+
+if (-16384 >> 24 !== -1) {
+ $ERROR('#783: -16384 >> 24 === -1. Actual: ' + (-16384 >> 24));
+}
+
+
+if (-32768 >> 24 !== -1) {
+ $ERROR('#784: -32768 >> 24 === -1. Actual: ' + (-32768 >> 24));
+}
+
+
+if (-65536 >> 24 !== -1) {
+ $ERROR('#785: -65536 >> 24 === -1. Actual: ' + (-65536 >> 24));
+}
+
+
+if (-131072 >> 24 !== -1) {
+ $ERROR('#786: -131072 >> 24 === -1. Actual: ' + (-131072 >> 24));
+}
+
+
+if (-262144 >> 24 !== -1) {
+ $ERROR('#787: -262144 >> 24 === -1. Actual: ' + (-262144 >> 24));
+}
+
+
+if (-524288 >> 24 !== -1) {
+ $ERROR('#788: -524288 >> 24 === -1. Actual: ' + (-524288 >> 24));
+}
+
+
+if (-1048576 >> 24 !== -1) {
+ $ERROR('#789: -1048576 >> 24 === -1. Actual: ' + (-1048576 >> 24));
+}
+
+
+if (-2097152 >> 24 !== -1) {
+ $ERROR('#790: -2097152 >> 24 === -1. Actual: ' + (-2097152 >> 24));
+}
+
+
+if (-4194304 >> 24 !== -1) {
+ $ERROR('#791: -4194304 >> 24 === -1. Actual: ' + (-4194304 >> 24));
+}
+
+
+if (-8388608 >> 24 !== -1) {
+ $ERROR('#792: -8388608 >> 24 === -1. Actual: ' + (-8388608 >> 24));
+}
+
+
+if (-16777216 >> 24 !== -1) {
+ $ERROR('#793: -16777216 >> 24 === -1. Actual: ' + (-16777216 >> 24));
+}
+
+
+if (-33554432 >> 24 !== -2) {
+ $ERROR('#794: -33554432 >> 24 === -2. Actual: ' + (-33554432 >> 24));
+}
+
+
+if (-67108864 >> 24 !== -4) {
+ $ERROR('#795: -67108864 >> 24 === -4. Actual: ' + (-67108864 >> 24));
+}
+
+
+if (-134217728 >> 24 !== -8) {
+ $ERROR('#796: -134217728 >> 24 === -8. Actual: ' + (-134217728 >> 24));
+}
+
+
+if (-268435456 >> 24 !== -16) {
+ $ERROR('#797: -268435456 >> 24 === -16. Actual: ' + (-268435456 >> 24));
+}
+
+
+if (-536870912 >> 24 !== -32) {
+ $ERROR('#798: -536870912 >> 24 === -32. Actual: ' + (-536870912 >> 24));
+}
+
+
+if (-1073741824 >> 24 !== -64) {
+ $ERROR('#799: -1073741824 >> 24 === -64. Actual: ' + (-1073741824 >> 24));
+}
+
+
+if (-2147483648 >> 24 !== -128) {
+ $ERROR('#800: -2147483648 >> 24 === -128. Actual: ' + (-2147483648 >> 24));
+}
+
+
+if (-1 >> 25 !== -1) {
+ $ERROR('#801: -1 >> 25 === -1. Actual: ' + (-1 >> 25));
+}
+
+
+if (-2 >> 25 !== -1) {
+ $ERROR('#802: -2 >> 25 === -1. Actual: ' + (-2 >> 25));
+}
+
+
+if (-4 >> 25 !== -1) {
+ $ERROR('#803: -4 >> 25 === -1. Actual: ' + (-4 >> 25));
+}
+
+
+if (-8 >> 25 !== -1) {
+ $ERROR('#804: -8 >> 25 === -1. Actual: ' + (-8 >> 25));
+}
+
+
+if (-16 >> 25 !== -1) {
+ $ERROR('#805: -16 >> 25 === -1. Actual: ' + (-16 >> 25));
+}
+
+
+if (-32 >> 25 !== -1) {
+ $ERROR('#806: -32 >> 25 === -1. Actual: ' + (-32 >> 25));
+}
+
+
+if (-64 >> 25 !== -1) {
+ $ERROR('#807: -64 >> 25 === -1. Actual: ' + (-64 >> 25));
+}
+
+
+if (-128 >> 25 !== -1) {
+ $ERROR('#808: -128 >> 25 === -1. Actual: ' + (-128 >> 25));
+}
+
+
+if (-256 >> 25 !== -1) {
+ $ERROR('#809: -256 >> 25 === -1. Actual: ' + (-256 >> 25));
+}
+
+
+if (-512 >> 25 !== -1) {
+ $ERROR('#810: -512 >> 25 === -1. Actual: ' + (-512 >> 25));
+}
+
+
+if (-1024 >> 25 !== -1) {
+ $ERROR('#811: -1024 >> 25 === -1. Actual: ' + (-1024 >> 25));
+}
+
+
+if (-2048 >> 25 !== -1) {
+ $ERROR('#812: -2048 >> 25 === -1. Actual: ' + (-2048 >> 25));
+}
+
+
+if (-4096 >> 25 !== -1) {
+ $ERROR('#813: -4096 >> 25 === -1. Actual: ' + (-4096 >> 25));
+}
+
+
+if (-8192 >> 25 !== -1) {
+ $ERROR('#814: -8192 >> 25 === -1. Actual: ' + (-8192 >> 25));
+}
+
+
+if (-16384 >> 25 !== -1) {
+ $ERROR('#815: -16384 >> 25 === -1. Actual: ' + (-16384 >> 25));
+}
+
+
+if (-32768 >> 25 !== -1) {
+ $ERROR('#816: -32768 >> 25 === -1. Actual: ' + (-32768 >> 25));
+}
+
+
+if (-65536 >> 25 !== -1) {
+ $ERROR('#817: -65536 >> 25 === -1. Actual: ' + (-65536 >> 25));
+}
+
+
+if (-131072 >> 25 !== -1) {
+ $ERROR('#818: -131072 >> 25 === -1. Actual: ' + (-131072 >> 25));
+}
+
+
+if (-262144 >> 25 !== -1) {
+ $ERROR('#819: -262144 >> 25 === -1. Actual: ' + (-262144 >> 25));
+}
+
+
+if (-524288 >> 25 !== -1) {
+ $ERROR('#820: -524288 >> 25 === -1. Actual: ' + (-524288 >> 25));
+}
+
+
+if (-1048576 >> 25 !== -1) {
+ $ERROR('#821: -1048576 >> 25 === -1. Actual: ' + (-1048576 >> 25));
+}
+
+
+if (-2097152 >> 25 !== -1) {
+ $ERROR('#822: -2097152 >> 25 === -1. Actual: ' + (-2097152 >> 25));
+}
+
+
+if (-4194304 >> 25 !== -1) {
+ $ERROR('#823: -4194304 >> 25 === -1. Actual: ' + (-4194304 >> 25));
+}
+
+
+if (-8388608 >> 25 !== -1) {
+ $ERROR('#824: -8388608 >> 25 === -1. Actual: ' + (-8388608 >> 25));
+}
+
+
+if (-16777216 >> 25 !== -1) {
+ $ERROR('#825: -16777216 >> 25 === -1. Actual: ' + (-16777216 >> 25));
+}
+
+
+if (-33554432 >> 25 !== -1) {
+ $ERROR('#826: -33554432 >> 25 === -1. Actual: ' + (-33554432 >> 25));
+}
+
+
+if (-67108864 >> 25 !== -2) {
+ $ERROR('#827: -67108864 >> 25 === -2. Actual: ' + (-67108864 >> 25));
+}
+
+
+if (-134217728 >> 25 !== -4) {
+ $ERROR('#828: -134217728 >> 25 === -4. Actual: ' + (-134217728 >> 25));
+}
+
+
+if (-268435456 >> 25 !== -8) {
+ $ERROR('#829: -268435456 >> 25 === -8. Actual: ' + (-268435456 >> 25));
+}
+
+
+if (-536870912 >> 25 !== -16) {
+ $ERROR('#830: -536870912 >> 25 === -16. Actual: ' + (-536870912 >> 25));
+}
+
+
+if (-1073741824 >> 25 !== -32) {
+ $ERROR('#831: -1073741824 >> 25 === -32. Actual: ' + (-1073741824 >> 25));
+}
+
+
+if (-2147483648 >> 25 !== -64) {
+ $ERROR('#832: -2147483648 >> 25 === -64. Actual: ' + (-2147483648 >> 25));
+}
+
+
+if (-1 >> 26 !== -1) {
+ $ERROR('#833: -1 >> 26 === -1. Actual: ' + (-1 >> 26));
+}
+
+
+if (-2 >> 26 !== -1) {
+ $ERROR('#834: -2 >> 26 === -1. Actual: ' + (-2 >> 26));
+}
+
+
+if (-4 >> 26 !== -1) {
+ $ERROR('#835: -4 >> 26 === -1. Actual: ' + (-4 >> 26));
+}
+
+
+if (-8 >> 26 !== -1) {
+ $ERROR('#836: -8 >> 26 === -1. Actual: ' + (-8 >> 26));
+}
+
+
+if (-16 >> 26 !== -1) {
+ $ERROR('#837: -16 >> 26 === -1. Actual: ' + (-16 >> 26));
+}
+
+
+if (-32 >> 26 !== -1) {
+ $ERROR('#838: -32 >> 26 === -1. Actual: ' + (-32 >> 26));
+}
+
+
+if (-64 >> 26 !== -1) {
+ $ERROR('#839: -64 >> 26 === -1. Actual: ' + (-64 >> 26));
+}
+
+
+if (-128 >> 26 !== -1) {
+ $ERROR('#840: -128 >> 26 === -1. Actual: ' + (-128 >> 26));
+}
+
+
+if (-256 >> 26 !== -1) {
+ $ERROR('#841: -256 >> 26 === -1. Actual: ' + (-256 >> 26));
+}
+
+
+if (-512 >> 26 !== -1) {
+ $ERROR('#842: -512 >> 26 === -1. Actual: ' + (-512 >> 26));
+}
+
+
+if (-1024 >> 26 !== -1) {
+ $ERROR('#843: -1024 >> 26 === -1. Actual: ' + (-1024 >> 26));
+}
+
+
+if (-2048 >> 26 !== -1) {
+ $ERROR('#844: -2048 >> 26 === -1. Actual: ' + (-2048 >> 26));
+}
+
+
+if (-4096 >> 26 !== -1) {
+ $ERROR('#845: -4096 >> 26 === -1. Actual: ' + (-4096 >> 26));
+}
+
+
+if (-8192 >> 26 !== -1) {
+ $ERROR('#846: -8192 >> 26 === -1. Actual: ' + (-8192 >> 26));
+}
+
+
+if (-16384 >> 26 !== -1) {
+ $ERROR('#847: -16384 >> 26 === -1. Actual: ' + (-16384 >> 26));
+}
+
+
+if (-32768 >> 26 !== -1) {
+ $ERROR('#848: -32768 >> 26 === -1. Actual: ' + (-32768 >> 26));
+}
+
+
+if (-65536 >> 26 !== -1) {
+ $ERROR('#849: -65536 >> 26 === -1. Actual: ' + (-65536 >> 26));
+}
+
+
+if (-131072 >> 26 !== -1) {
+ $ERROR('#850: -131072 >> 26 === -1. Actual: ' + (-131072 >> 26));
+}
+
+
+if (-262144 >> 26 !== -1) {
+ $ERROR('#851: -262144 >> 26 === -1. Actual: ' + (-262144 >> 26));
+}
+
+
+if (-524288 >> 26 !== -1) {
+ $ERROR('#852: -524288 >> 26 === -1. Actual: ' + (-524288 >> 26));
+}
+
+
+if (-1048576 >> 26 !== -1) {
+ $ERROR('#853: -1048576 >> 26 === -1. Actual: ' + (-1048576 >> 26));
+}
+
+
+if (-2097152 >> 26 !== -1) {
+ $ERROR('#854: -2097152 >> 26 === -1. Actual: ' + (-2097152 >> 26));
+}
+
+
+if (-4194304 >> 26 !== -1) {
+ $ERROR('#855: -4194304 >> 26 === -1. Actual: ' + (-4194304 >> 26));
+}
+
+
+if (-8388608 >> 26 !== -1) {
+ $ERROR('#856: -8388608 >> 26 === -1. Actual: ' + (-8388608 >> 26));
+}
+
+
+if (-16777216 >> 26 !== -1) {
+ $ERROR('#857: -16777216 >> 26 === -1. Actual: ' + (-16777216 >> 26));
+}
+
+
+if (-33554432 >> 26 !== -1) {
+ $ERROR('#858: -33554432 >> 26 === -1. Actual: ' + (-33554432 >> 26));
+}
+
+
+if (-67108864 >> 26 !== -1) {
+ $ERROR('#859: -67108864 >> 26 === -1. Actual: ' + (-67108864 >> 26));
+}
+
+
+if (-134217728 >> 26 !== -2) {
+ $ERROR('#860: -134217728 >> 26 === -2. Actual: ' + (-134217728 >> 26));
+}
+
+
+if (-268435456 >> 26 !== -4) {
+ $ERROR('#861: -268435456 >> 26 === -4. Actual: ' + (-268435456 >> 26));
+}
+
+
+if (-536870912 >> 26 !== -8) {
+ $ERROR('#862: -536870912 >> 26 === -8. Actual: ' + (-536870912 >> 26));
+}
+
+
+if (-1073741824 >> 26 !== -16) {
+ $ERROR('#863: -1073741824 >> 26 === -16. Actual: ' + (-1073741824 >> 26));
+}
+
+
+if (-2147483648 >> 26 !== -32) {
+ $ERROR('#864: -2147483648 >> 26 === -32. Actual: ' + (-2147483648 >> 26));
+}
+
+
+if (-1 >> 27 !== -1) {
+ $ERROR('#865: -1 >> 27 === -1. Actual: ' + (-1 >> 27));
+}
+
+
+if (-2 >> 27 !== -1) {
+ $ERROR('#866: -2 >> 27 === -1. Actual: ' + (-2 >> 27));
+}
+
+
+if (-4 >> 27 !== -1) {
+ $ERROR('#867: -4 >> 27 === -1. Actual: ' + (-4 >> 27));
+}
+
+
+if (-8 >> 27 !== -1) {
+ $ERROR('#868: -8 >> 27 === -1. Actual: ' + (-8 >> 27));
+}
+
+
+if (-16 >> 27 !== -1) {
+ $ERROR('#869: -16 >> 27 === -1. Actual: ' + (-16 >> 27));
+}
+
+
+if (-32 >> 27 !== -1) {
+ $ERROR('#870: -32 >> 27 === -1. Actual: ' + (-32 >> 27));
+}
+
+
+if (-64 >> 27 !== -1) {
+ $ERROR('#871: -64 >> 27 === -1. Actual: ' + (-64 >> 27));
+}
+
+
+if (-128 >> 27 !== -1) {
+ $ERROR('#872: -128 >> 27 === -1. Actual: ' + (-128 >> 27));
+}
+
+
+if (-256 >> 27 !== -1) {
+ $ERROR('#873: -256 >> 27 === -1. Actual: ' + (-256 >> 27));
+}
+
+
+if (-512 >> 27 !== -1) {
+ $ERROR('#874: -512 >> 27 === -1. Actual: ' + (-512 >> 27));
+}
+
+
+if (-1024 >> 27 !== -1) {
+ $ERROR('#875: -1024 >> 27 === -1. Actual: ' + (-1024 >> 27));
+}
+
+
+if (-2048 >> 27 !== -1) {
+ $ERROR('#876: -2048 >> 27 === -1. Actual: ' + (-2048 >> 27));
+}
+
+
+if (-4096 >> 27 !== -1) {
+ $ERROR('#877: -4096 >> 27 === -1. Actual: ' + (-4096 >> 27));
+}
+
+
+if (-8192 >> 27 !== -1) {
+ $ERROR('#878: -8192 >> 27 === -1. Actual: ' + (-8192 >> 27));
+}
+
+
+if (-16384 >> 27 !== -1) {
+ $ERROR('#879: -16384 >> 27 === -1. Actual: ' + (-16384 >> 27));
+}
+
+
+if (-32768 >> 27 !== -1) {
+ $ERROR('#880: -32768 >> 27 === -1. Actual: ' + (-32768 >> 27));
+}
+
+
+if (-65536 >> 27 !== -1) {
+ $ERROR('#881: -65536 >> 27 === -1. Actual: ' + (-65536 >> 27));
+}
+
+
+if (-131072 >> 27 !== -1) {
+ $ERROR('#882: -131072 >> 27 === -1. Actual: ' + (-131072 >> 27));
+}
+
+
+if (-262144 >> 27 !== -1) {
+ $ERROR('#883: -262144 >> 27 === -1. Actual: ' + (-262144 >> 27));
+}
+
+
+if (-524288 >> 27 !== -1) {
+ $ERROR('#884: -524288 >> 27 === -1. Actual: ' + (-524288 >> 27));
+}
+
+
+if (-1048576 >> 27 !== -1) {
+ $ERROR('#885: -1048576 >> 27 === -1. Actual: ' + (-1048576 >> 27));
+}
+
+
+if (-2097152 >> 27 !== -1) {
+ $ERROR('#886: -2097152 >> 27 === -1. Actual: ' + (-2097152 >> 27));
+}
+
+
+if (-4194304 >> 27 !== -1) {
+ $ERROR('#887: -4194304 >> 27 === -1. Actual: ' + (-4194304 >> 27));
+}
+
+
+if (-8388608 >> 27 !== -1) {
+ $ERROR('#888: -8388608 >> 27 === -1. Actual: ' + (-8388608 >> 27));
+}
+
+
+if (-16777216 >> 27 !== -1) {
+ $ERROR('#889: -16777216 >> 27 === -1. Actual: ' + (-16777216 >> 27));
+}
+
+
+if (-33554432 >> 27 !== -1) {
+ $ERROR('#890: -33554432 >> 27 === -1. Actual: ' + (-33554432 >> 27));
+}
+
+
+if (-67108864 >> 27 !== -1) {
+ $ERROR('#891: -67108864 >> 27 === -1. Actual: ' + (-67108864 >> 27));
+}
+
+
+if (-134217728 >> 27 !== -1) {
+ $ERROR('#892: -134217728 >> 27 === -1. Actual: ' + (-134217728 >> 27));
+}
+
+
+if (-268435456 >> 27 !== -2) {
+ $ERROR('#893: -268435456 >> 27 === -2. Actual: ' + (-268435456 >> 27));
+}
+
+
+if (-536870912 >> 27 !== -4) {
+ $ERROR('#894: -536870912 >> 27 === -4. Actual: ' + (-536870912 >> 27));
+}
+
+
+if (-1073741824 >> 27 !== -8) {
+ $ERROR('#895: -1073741824 >> 27 === -8. Actual: ' + (-1073741824 >> 27));
+}
+
+
+if (-2147483648 >> 27 !== -16) {
+ $ERROR('#896: -2147483648 >> 27 === -16. Actual: ' + (-2147483648 >> 27));
+}
+
+
+if (-1 >> 28 !== -1) {
+ $ERROR('#897: -1 >> 28 === -1. Actual: ' + (-1 >> 28));
+}
+
+
+if (-2 >> 28 !== -1) {
+ $ERROR('#898: -2 >> 28 === -1. Actual: ' + (-2 >> 28));
+}
+
+
+if (-4 >> 28 !== -1) {
+ $ERROR('#899: -4 >> 28 === -1. Actual: ' + (-4 >> 28));
+}
+
+
+if (-8 >> 28 !== -1) {
+ $ERROR('#900: -8 >> 28 === -1. Actual: ' + (-8 >> 28));
+}
+
+
+if (-16 >> 28 !== -1) {
+ $ERROR('#901: -16 >> 28 === -1. Actual: ' + (-16 >> 28));
+}
+
+
+if (-32 >> 28 !== -1) {
+ $ERROR('#902: -32 >> 28 === -1. Actual: ' + (-32 >> 28));
+}
+
+
+if (-64 >> 28 !== -1) {
+ $ERROR('#903: -64 >> 28 === -1. Actual: ' + (-64 >> 28));
+}
+
+
+if (-128 >> 28 !== -1) {
+ $ERROR('#904: -128 >> 28 === -1. Actual: ' + (-128 >> 28));
+}
+
+
+if (-256 >> 28 !== -1) {
+ $ERROR('#905: -256 >> 28 === -1. Actual: ' + (-256 >> 28));
+}
+
+
+if (-512 >> 28 !== -1) {
+ $ERROR('#906: -512 >> 28 === -1. Actual: ' + (-512 >> 28));
+}
+
+
+if (-1024 >> 28 !== -1) {
+ $ERROR('#907: -1024 >> 28 === -1. Actual: ' + (-1024 >> 28));
+}
+
+
+if (-2048 >> 28 !== -1) {
+ $ERROR('#908: -2048 >> 28 === -1. Actual: ' + (-2048 >> 28));
+}
+
+
+if (-4096 >> 28 !== -1) {
+ $ERROR('#909: -4096 >> 28 === -1. Actual: ' + (-4096 >> 28));
+}
+
+
+if (-8192 >> 28 !== -1) {
+ $ERROR('#910: -8192 >> 28 === -1. Actual: ' + (-8192 >> 28));
+}
+
+
+if (-16384 >> 28 !== -1) {
+ $ERROR('#911: -16384 >> 28 === -1. Actual: ' + (-16384 >> 28));
+}
+
+
+if (-32768 >> 28 !== -1) {
+ $ERROR('#912: -32768 >> 28 === -1. Actual: ' + (-32768 >> 28));
+}
+
+
+if (-65536 >> 28 !== -1) {
+ $ERROR('#913: -65536 >> 28 === -1. Actual: ' + (-65536 >> 28));
+}
+
+
+if (-131072 >> 28 !== -1) {
+ $ERROR('#914: -131072 >> 28 === -1. Actual: ' + (-131072 >> 28));
+}
+
+
+if (-262144 >> 28 !== -1) {
+ $ERROR('#915: -262144 >> 28 === -1. Actual: ' + (-262144 >> 28));
+}
+
+
+if (-524288 >> 28 !== -1) {
+ $ERROR('#916: -524288 >> 28 === -1. Actual: ' + (-524288 >> 28));
+}
+
+
+if (-1048576 >> 28 !== -1) {
+ $ERROR('#917: -1048576 >> 28 === -1. Actual: ' + (-1048576 >> 28));
+}
+
+
+if (-2097152 >> 28 !== -1) {
+ $ERROR('#918: -2097152 >> 28 === -1. Actual: ' + (-2097152 >> 28));
+}
+
+
+if (-4194304 >> 28 !== -1) {
+ $ERROR('#919: -4194304 >> 28 === -1. Actual: ' + (-4194304 >> 28));
+}
+
+
+if (-8388608 >> 28 !== -1) {
+ $ERROR('#920: -8388608 >> 28 === -1. Actual: ' + (-8388608 >> 28));
+}
+
+
+if (-16777216 >> 28 !== -1) {
+ $ERROR('#921: -16777216 >> 28 === -1. Actual: ' + (-16777216 >> 28));
+}
+
+
+if (-33554432 >> 28 !== -1) {
+ $ERROR('#922: -33554432 >> 28 === -1. Actual: ' + (-33554432 >> 28));
+}
+
+
+if (-67108864 >> 28 !== -1) {
+ $ERROR('#923: -67108864 >> 28 === -1. Actual: ' + (-67108864 >> 28));
+}
+
+
+if (-134217728 >> 28 !== -1) {
+ $ERROR('#924: -134217728 >> 28 === -1. Actual: ' + (-134217728 >> 28));
+}
+
+
+if (-268435456 >> 28 !== -1) {
+ $ERROR('#925: -268435456 >> 28 === -1. Actual: ' + (-268435456 >> 28));
+}
+
+
+if (-536870912 >> 28 !== -2) {
+ $ERROR('#926: -536870912 >> 28 === -2. Actual: ' + (-536870912 >> 28));
+}
+
+
+if (-1073741824 >> 28 !== -4) {
+ $ERROR('#927: -1073741824 >> 28 === -4. Actual: ' + (-1073741824 >> 28));
+}
+
+
+if (-2147483648 >> 28 !== -8) {
+ $ERROR('#928: -2147483648 >> 28 === -8. Actual: ' + (-2147483648 >> 28));
+}
+
+
+if (-1 >> 29 !== -1) {
+ $ERROR('#929: -1 >> 29 === -1. Actual: ' + (-1 >> 29));
+}
+
+
+if (-2 >> 29 !== -1) {
+ $ERROR('#930: -2 >> 29 === -1. Actual: ' + (-2 >> 29));
+}
+
+
+if (-4 >> 29 !== -1) {
+ $ERROR('#931: -4 >> 29 === -1. Actual: ' + (-4 >> 29));
+}
+
+
+if (-8 >> 29 !== -1) {
+ $ERROR('#932: -8 >> 29 === -1. Actual: ' + (-8 >> 29));
+}
+
+
+if (-16 >> 29 !== -1) {
+ $ERROR('#933: -16 >> 29 === -1. Actual: ' + (-16 >> 29));
+}
+
+
+if (-32 >> 29 !== -1) {
+ $ERROR('#934: -32 >> 29 === -1. Actual: ' + (-32 >> 29));
+}
+
+
+if (-64 >> 29 !== -1) {
+ $ERROR('#935: -64 >> 29 === -1. Actual: ' + (-64 >> 29));
+}
+
+
+if (-128 >> 29 !== -1) {
+ $ERROR('#936: -128 >> 29 === -1. Actual: ' + (-128 >> 29));
+}
+
+
+if (-256 >> 29 !== -1) {
+ $ERROR('#937: -256 >> 29 === -1. Actual: ' + (-256 >> 29));
+}
+
+
+if (-512 >> 29 !== -1) {
+ $ERROR('#938: -512 >> 29 === -1. Actual: ' + (-512 >> 29));
+}
+
+
+if (-1024 >> 29 !== -1) {
+ $ERROR('#939: -1024 >> 29 === -1. Actual: ' + (-1024 >> 29));
+}
+
+
+if (-2048 >> 29 !== -1) {
+ $ERROR('#940: -2048 >> 29 === -1. Actual: ' + (-2048 >> 29));
+}
+
+
+if (-4096 >> 29 !== -1) {
+ $ERROR('#941: -4096 >> 29 === -1. Actual: ' + (-4096 >> 29));
+}
+
+
+if (-8192 >> 29 !== -1) {
+ $ERROR('#942: -8192 >> 29 === -1. Actual: ' + (-8192 >> 29));
+}
+
+
+if (-16384 >> 29 !== -1) {
+ $ERROR('#943: -16384 >> 29 === -1. Actual: ' + (-16384 >> 29));
+}
+
+
+if (-32768 >> 29 !== -1) {
+ $ERROR('#944: -32768 >> 29 === -1. Actual: ' + (-32768 >> 29));
+}
+
+
+if (-65536 >> 29 !== -1) {
+ $ERROR('#945: -65536 >> 29 === -1. Actual: ' + (-65536 >> 29));
+}
+
+
+if (-131072 >> 29 !== -1) {
+ $ERROR('#946: -131072 >> 29 === -1. Actual: ' + (-131072 >> 29));
+}
+
+
+if (-262144 >> 29 !== -1) {
+ $ERROR('#947: -262144 >> 29 === -1. Actual: ' + (-262144 >> 29));
+}
+
+
+if (-524288 >> 29 !== -1) {
+ $ERROR('#948: -524288 >> 29 === -1. Actual: ' + (-524288 >> 29));
+}
+
+
+if (-1048576 >> 29 !== -1) {
+ $ERROR('#949: -1048576 >> 29 === -1. Actual: ' + (-1048576 >> 29));
+}
+
+
+if (-2097152 >> 29 !== -1) {
+ $ERROR('#950: -2097152 >> 29 === -1. Actual: ' + (-2097152 >> 29));
+}
+
+
+if (-4194304 >> 29 !== -1) {
+ $ERROR('#951: -4194304 >> 29 === -1. Actual: ' + (-4194304 >> 29));
+}
+
+
+if (-8388608 >> 29 !== -1) {
+ $ERROR('#952: -8388608 >> 29 === -1. Actual: ' + (-8388608 >> 29));
+}
+
+
+if (-16777216 >> 29 !== -1) {
+ $ERROR('#953: -16777216 >> 29 === -1. Actual: ' + (-16777216 >> 29));
+}
+
+
+if (-33554432 >> 29 !== -1) {
+ $ERROR('#954: -33554432 >> 29 === -1. Actual: ' + (-33554432 >> 29));
+}
+
+
+if (-67108864 >> 29 !== -1) {
+ $ERROR('#955: -67108864 >> 29 === -1. Actual: ' + (-67108864 >> 29));
+}
+
+
+if (-134217728 >> 29 !== -1) {
+ $ERROR('#956: -134217728 >> 29 === -1. Actual: ' + (-134217728 >> 29));
+}
+
+
+if (-268435456 >> 29 !== -1) {
+ $ERROR('#957: -268435456 >> 29 === -1. Actual: ' + (-268435456 >> 29));
+}
+
+
+if (-536870912 >> 29 !== -1) {
+ $ERROR('#958: -536870912 >> 29 === -1. Actual: ' + (-536870912 >> 29));
+}
+
+
+if (-1073741824 >> 29 !== -2) {
+ $ERROR('#959: -1073741824 >> 29 === -2. Actual: ' + (-1073741824 >> 29));
+}
+
+
+if (-2147483648 >> 29 !== -4) {
+ $ERROR('#960: -2147483648 >> 29 === -4. Actual: ' + (-2147483648 >> 29));
+}
+
+
+if (-1 >> 30 !== -1) {
+ $ERROR('#961: -1 >> 30 === -1. Actual: ' + (-1 >> 30));
+}
+
+
+if (-2 >> 30 !== -1) {
+ $ERROR('#962: -2 >> 30 === -1. Actual: ' + (-2 >> 30));
+}
+
+
+if (-4 >> 30 !== -1) {
+ $ERROR('#963: -4 >> 30 === -1. Actual: ' + (-4 >> 30));
+}
+
+
+if (-8 >> 30 !== -1) {
+ $ERROR('#964: -8 >> 30 === -1. Actual: ' + (-8 >> 30));
+}
+
+
+if (-16 >> 30 !== -1) {
+ $ERROR('#965: -16 >> 30 === -1. Actual: ' + (-16 >> 30));
+}
+
+
+if (-32 >> 30 !== -1) {
+ $ERROR('#966: -32 >> 30 === -1. Actual: ' + (-32 >> 30));
+}
+
+
+if (-64 >> 30 !== -1) {
+ $ERROR('#967: -64 >> 30 === -1. Actual: ' + (-64 >> 30));
+}
+
+
+if (-128 >> 30 !== -1) {
+ $ERROR('#968: -128 >> 30 === -1. Actual: ' + (-128 >> 30));
+}
+
+
+if (-256 >> 30 !== -1) {
+ $ERROR('#969: -256 >> 30 === -1. Actual: ' + (-256 >> 30));
+}
+
+
+if (-512 >> 30 !== -1) {
+ $ERROR('#970: -512 >> 30 === -1. Actual: ' + (-512 >> 30));
+}
+
+
+if (-1024 >> 30 !== -1) {
+ $ERROR('#971: -1024 >> 30 === -1. Actual: ' + (-1024 >> 30));
+}
+
+
+if (-2048 >> 30 !== -1) {
+ $ERROR('#972: -2048 >> 30 === -1. Actual: ' + (-2048 >> 30));
+}
+
+
+if (-4096 >> 30 !== -1) {
+ $ERROR('#973: -4096 >> 30 === -1. Actual: ' + (-4096 >> 30));
+}
+
+
+if (-8192 >> 30 !== -1) {
+ $ERROR('#974: -8192 >> 30 === -1. Actual: ' + (-8192 >> 30));
+}
+
+
+if (-16384 >> 30 !== -1) {
+ $ERROR('#975: -16384 >> 30 === -1. Actual: ' + (-16384 >> 30));
+}
+
+
+if (-32768 >> 30 !== -1) {
+ $ERROR('#976: -32768 >> 30 === -1. Actual: ' + (-32768 >> 30));
+}
+
+
+if (-65536 >> 30 !== -1) {
+ $ERROR('#977: -65536 >> 30 === -1. Actual: ' + (-65536 >> 30));
+}
+
+
+if (-131072 >> 30 !== -1) {
+ $ERROR('#978: -131072 >> 30 === -1. Actual: ' + (-131072 >> 30));
+}
+
+
+if (-262144 >> 30 !== -1) {
+ $ERROR('#979: -262144 >> 30 === -1. Actual: ' + (-262144 >> 30));
+}
+
+
+if (-524288 >> 30 !== -1) {
+ $ERROR('#980: -524288 >> 30 === -1. Actual: ' + (-524288 >> 30));
+}
+
+
+if (-1048576 >> 30 !== -1) {
+ $ERROR('#981: -1048576 >> 30 === -1. Actual: ' + (-1048576 >> 30));
+}
+
+
+if (-2097152 >> 30 !== -1) {
+ $ERROR('#982: -2097152 >> 30 === -1. Actual: ' + (-2097152 >> 30));
+}
+
+
+if (-4194304 >> 30 !== -1) {
+ $ERROR('#983: -4194304 >> 30 === -1. Actual: ' + (-4194304 >> 30));
+}
+
+
+if (-8388608 >> 30 !== -1) {
+ $ERROR('#984: -8388608 >> 30 === -1. Actual: ' + (-8388608 >> 30));
+}
+
+
+if (-16777216 >> 30 !== -1) {
+ $ERROR('#985: -16777216 >> 30 === -1. Actual: ' + (-16777216 >> 30));
+}
+
+
+if (-33554432 >> 30 !== -1) {
+ $ERROR('#986: -33554432 >> 30 === -1. Actual: ' + (-33554432 >> 30));
+}
+
+
+if (-67108864 >> 30 !== -1) {
+ $ERROR('#987: -67108864 >> 30 === -1. Actual: ' + (-67108864 >> 30));
+}
+
+
+if (-134217728 >> 30 !== -1) {
+ $ERROR('#988: -134217728 >> 30 === -1. Actual: ' + (-134217728 >> 30));
+}
+
+
+if (-268435456 >> 30 !== -1) {
+ $ERROR('#989: -268435456 >> 30 === -1. Actual: ' + (-268435456 >> 30));
+}
+
+
+if (-536870912 >> 30 !== -1) {
+ $ERROR('#990: -536870912 >> 30 === -1. Actual: ' + (-536870912 >> 30));
+}
+
+
+if (-1073741824 >> 30 !== -1) {
+ $ERROR('#991: -1073741824 >> 30 === -1. Actual: ' + (-1073741824 >> 30));
+}
+
+
+if (-2147483648 >> 30 !== -2) {
+ $ERROR('#992: -2147483648 >> 30 === -2. Actual: ' + (-2147483648 >> 30));
+}
+
+
+if (-1 >> 31 !== -1) {
+ $ERROR('#993: -1 >> 31 === -1. Actual: ' + (-1 >> 31));
+}
+
+
+if (-2 >> 31 !== -1) {
+ $ERROR('#994: -2 >> 31 === -1. Actual: ' + (-2 >> 31));
+}
+
+
+if (-4 >> 31 !== -1) {
+ $ERROR('#995: -4 >> 31 === -1. Actual: ' + (-4 >> 31));
+}
+
+
+if (-8 >> 31 !== -1) {
+ $ERROR('#996: -8 >> 31 === -1. Actual: ' + (-8 >> 31));
+}
+
+
+if (-16 >> 31 !== -1) {
+ $ERROR('#997: -16 >> 31 === -1. Actual: ' + (-16 >> 31));
+}
+
+
+if (-32 >> 31 !== -1) {
+ $ERROR('#998: -32 >> 31 === -1. Actual: ' + (-32 >> 31));
+}
+
+
+if (-64 >> 31 !== -1) {
+ $ERROR('#999: -64 >> 31 === -1. Actual: ' + (-64 >> 31));
+}
+
+
+if (-128 >> 31 !== -1) {
+ $ERROR('#1000: -128 >> 31 === -1. Actual: ' + (-128 >> 31));
+}
+
+
+if (-256 >> 31 !== -1) {
+ $ERROR('#1001: -256 >> 31 === -1. Actual: ' + (-256 >> 31));
+}
+
+
+if (-512 >> 31 !== -1) {
+ $ERROR('#1002: -512 >> 31 === -1. Actual: ' + (-512 >> 31));
+}
+
+
+if (-1024 >> 31 !== -1) {
+ $ERROR('#1003: -1024 >> 31 === -1. Actual: ' + (-1024 >> 31));
+}
+
+
+if (-2048 >> 31 !== -1) {
+ $ERROR('#1004: -2048 >> 31 === -1. Actual: ' + (-2048 >> 31));
+}
+
+
+if (-4096 >> 31 !== -1) {
+ $ERROR('#1005: -4096 >> 31 === -1. Actual: ' + (-4096 >> 31));
+}
+
+
+if (-8192 >> 31 !== -1) {
+ $ERROR('#1006: -8192 >> 31 === -1. Actual: ' + (-8192 >> 31));
+}
+
+
+if (-16384 >> 31 !== -1) {
+ $ERROR('#1007: -16384 >> 31 === -1. Actual: ' + (-16384 >> 31));
+}
+
+
+if (-32768 >> 31 !== -1) {
+ $ERROR('#1008: -32768 >> 31 === -1. Actual: ' + (-32768 >> 31));
+}
+
+
+if (-65536 >> 31 !== -1) {
+ $ERROR('#1009: -65536 >> 31 === -1. Actual: ' + (-65536 >> 31));
+}
+
+
+if (-131072 >> 31 !== -1) {
+ $ERROR('#1010: -131072 >> 31 === -1. Actual: ' + (-131072 >> 31));
+}
+
+
+if (-262144 >> 31 !== -1) {
+ $ERROR('#1011: -262144 >> 31 === -1. Actual: ' + (-262144 >> 31));
+}
+
+
+if (-524288 >> 31 !== -1) {
+ $ERROR('#1012: -524288 >> 31 === -1. Actual: ' + (-524288 >> 31));
+}
+
+
+if (-1048576 >> 31 !== -1) {
+ $ERROR('#1013: -1048576 >> 31 === -1. Actual: ' + (-1048576 >> 31));
+}
+
+
+if (-2097152 >> 31 !== -1) {
+ $ERROR('#1014: -2097152 >> 31 === -1. Actual: ' + (-2097152 >> 31));
+}
+
+
+if (-4194304 >> 31 !== -1) {
+ $ERROR('#1015: -4194304 >> 31 === -1. Actual: ' + (-4194304 >> 31));
+}
+
+
+if (-8388608 >> 31 !== -1) {
+ $ERROR('#1016: -8388608 >> 31 === -1. Actual: ' + (-8388608 >> 31));
+}
+
+
+if (-16777216 >> 31 !== -1) {
+ $ERROR('#1017: -16777216 >> 31 === -1. Actual: ' + (-16777216 >> 31));
+}
+
+
+if (-33554432 >> 31 !== -1) {
+ $ERROR('#1018: -33554432 >> 31 === -1. Actual: ' + (-33554432 >> 31));
+}
+
+
+if (-67108864 >> 31 !== -1) {
+ $ERROR('#1019: -67108864 >> 31 === -1. Actual: ' + (-67108864 >> 31));
+}
+
+
+if (-134217728 >> 31 !== -1) {
+ $ERROR('#1020: -134217728 >> 31 === -1. Actual: ' + (-134217728 >> 31));
+}
+
+
+if (-268435456 >> 31 !== -1) {
+ $ERROR('#1021: -268435456 >> 31 === -1. Actual: ' + (-268435456 >> 31));
+}
+
+
+if (-536870912 >> 31 !== -1) {
+ $ERROR('#1022: -536870912 >> 31 === -1. Actual: ' + (-536870912 >> 31));
+}
+
+
+if (-1073741824 >> 31 !== -1) {
+ $ERROR('#1023: -1073741824 >> 31 === -1. Actual: ' + (-1073741824 >> 31));
+}
+
+
+if (-2147483648 >> 31 !== -1) {
+ $ERROR('#1024: -2147483648 >> 31 === -1. Actual: ' + (-2147483648 >> 31));
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A4_T3.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A4_T3.js
new file mode 100644
index 000000000..a64be3de7
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A4_T3.js
@@ -0,0 +1,2570 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A4_T3;
+ * @section: 11.7.2;
+ * @assertion: Check x >> y operator in distinct points;
+ * @description: ShiftExpression = 2^n - 1, n = 0...15;
+ */
+
+//CHECK
+
+if (0 >> 0 !== 0) {
+ $ERROR('#1: 0 >> 0 === 0. Actual: ' + (0 >> 0));
+}
+
+
+if (1 >> 0 !== 1) {
+ $ERROR('#2: 1 >> 0 === 1. Actual: ' + (1 >> 0));
+}
+
+
+if (3 >> 0 !== 3) {
+ $ERROR('#3: 3 >> 0 === 3. Actual: ' + (3 >> 0));
+}
+
+
+if (7 >> 0 !== 7) {
+ $ERROR('#4: 7 >> 0 === 7. Actual: ' + (7 >> 0));
+}
+
+
+if (15 >> 0 !== 15) {
+ $ERROR('#5: 15 >> 0 === 15. Actual: ' + (15 >> 0));
+}
+
+
+if (31 >> 0 !== 31) {
+ $ERROR('#6: 31 >> 0 === 31. Actual: ' + (31 >> 0));
+}
+
+
+if (63 >> 0 !== 63) {
+ $ERROR('#7: 63 >> 0 === 63. Actual: ' + (63 >> 0));
+}
+
+
+if (127 >> 0 !== 127) {
+ $ERROR('#8: 127 >> 0 === 127. Actual: ' + (127 >> 0));
+}
+
+
+if (255 >> 0 !== 255) {
+ $ERROR('#9: 255 >> 0 === 255. Actual: ' + (255 >> 0));
+}
+
+
+if (511 >> 0 !== 511) {
+ $ERROR('#10: 511 >> 0 === 511. Actual: ' + (511 >> 0));
+}
+
+
+if (1023 >> 0 !== 1023) {
+ $ERROR('#11: 1023 >> 0 === 1023. Actual: ' + (1023 >> 0));
+}
+
+
+if (2047 >> 0 !== 2047) {
+ $ERROR('#12: 2047 >> 0 === 2047. Actual: ' + (2047 >> 0));
+}
+
+
+if (4095 >> 0 !== 4095) {
+ $ERROR('#13: 4095 >> 0 === 4095. Actual: ' + (4095 >> 0));
+}
+
+
+if (8191 >> 0 !== 8191) {
+ $ERROR('#14: 8191 >> 0 === 8191. Actual: ' + (8191 >> 0));
+}
+
+
+if (16383 >> 0 !== 16383) {
+ $ERROR('#15: 16383 >> 0 === 16383. Actual: ' + (16383 >> 0));
+}
+
+
+if (32767 >> 0 !== 32767) {
+ $ERROR('#16: 32767 >> 0 === 32767. Actual: ' + (32767 >> 0));
+}
+
+
+if (65535 >> 0 !== 65535) {
+ $ERROR('#17: 65535 >> 0 === 65535. Actual: ' + (65535 >> 0));
+}
+
+
+if (131071 >> 0 !== 131071) {
+ $ERROR('#18: 131071 >> 0 === 131071. Actual: ' + (131071 >> 0));
+}
+
+
+if (262143 >> 0 !== 262143) {
+ $ERROR('#19: 262143 >> 0 === 262143. Actual: ' + (262143 >> 0));
+}
+
+
+if (524287 >> 0 !== 524287) {
+ $ERROR('#20: 524287 >> 0 === 524287. Actual: ' + (524287 >> 0));
+}
+
+
+if (1048575 >> 0 !== 1048575) {
+ $ERROR('#21: 1048575 >> 0 === 1048575. Actual: ' + (1048575 >> 0));
+}
+
+
+if (2097151 >> 0 !== 2097151) {
+ $ERROR('#22: 2097151 >> 0 === 2097151. Actual: ' + (2097151 >> 0));
+}
+
+
+if (4194303 >> 0 !== 4194303) {
+ $ERROR('#23: 4194303 >> 0 === 4194303. Actual: ' + (4194303 >> 0));
+}
+
+
+if (8388607 >> 0 !== 8388607) {
+ $ERROR('#24: 8388607 >> 0 === 8388607. Actual: ' + (8388607 >> 0));
+}
+
+
+if (16777215 >> 0 !== 16777215) {
+ $ERROR('#25: 16777215 >> 0 === 16777215. Actual: ' + (16777215 >> 0));
+}
+
+
+if (33554431 >> 0 !== 33554431) {
+ $ERROR('#26: 33554431 >> 0 === 33554431. Actual: ' + (33554431 >> 0));
+}
+
+
+if (67108863 >> 0 !== 67108863) {
+ $ERROR('#27: 67108863 >> 0 === 67108863. Actual: ' + (67108863 >> 0));
+}
+
+
+if (134217727 >> 0 !== 134217727) {
+ $ERROR('#28: 134217727 >> 0 === 134217727. Actual: ' + (134217727 >> 0));
+}
+
+
+if (268435455 >> 0 !== 268435455) {
+ $ERROR('#29: 268435455 >> 0 === 268435455. Actual: ' + (268435455 >> 0));
+}
+
+
+if (536870911 >> 0 !== 536870911) {
+ $ERROR('#30: 536870911 >> 0 === 536870911. Actual: ' + (536870911 >> 0));
+}
+
+
+if (1073741823 >> 0 !== 1073741823) {
+ $ERROR('#31: 1073741823 >> 0 === 1073741823. Actual: ' + (1073741823 >> 0));
+}
+
+
+if (2147483647 >> 0 !== 2147483647) {
+ $ERROR('#32: 2147483647 >> 0 === 2147483647. Actual: ' + (2147483647 >> 0));
+}
+
+
+if (0 >> 1 !== 0) {
+ $ERROR('#33: 0 >> 1 === 0. Actual: ' + (0 >> 1));
+}
+
+
+if (1 >> 1 !== 0) {
+ $ERROR('#34: 1 >> 1 === 0. Actual: ' + (1 >> 1));
+}
+
+
+if (3 >> 1 !== 1) {
+ $ERROR('#35: 3 >> 1 === 1. Actual: ' + (3 >> 1));
+}
+
+
+if (7 >> 1 !== 3) {
+ $ERROR('#36: 7 >> 1 === 3. Actual: ' + (7 >> 1));
+}
+
+
+if (15 >> 1 !== 7) {
+ $ERROR('#37: 15 >> 1 === 7. Actual: ' + (15 >> 1));
+}
+
+
+if (31 >> 1 !== 15) {
+ $ERROR('#38: 31 >> 1 === 15. Actual: ' + (31 >> 1));
+}
+
+
+if (63 >> 1 !== 31) {
+ $ERROR('#39: 63 >> 1 === 31. Actual: ' + (63 >> 1));
+}
+
+
+if (127 >> 1 !== 63) {
+ $ERROR('#40: 127 >> 1 === 63. Actual: ' + (127 >> 1));
+}
+
+
+if (255 >> 1 !== 127) {
+ $ERROR('#41: 255 >> 1 === 127. Actual: ' + (255 >> 1));
+}
+
+
+if (511 >> 1 !== 255) {
+ $ERROR('#42: 511 >> 1 === 255. Actual: ' + (511 >> 1));
+}
+
+
+if (1023 >> 1 !== 511) {
+ $ERROR('#43: 1023 >> 1 === 511. Actual: ' + (1023 >> 1));
+}
+
+
+if (2047 >> 1 !== 1023) {
+ $ERROR('#44: 2047 >> 1 === 1023. Actual: ' + (2047 >> 1));
+}
+
+
+if (4095 >> 1 !== 2047) {
+ $ERROR('#45: 4095 >> 1 === 2047. Actual: ' + (4095 >> 1));
+}
+
+
+if (8191 >> 1 !== 4095) {
+ $ERROR('#46: 8191 >> 1 === 4095. Actual: ' + (8191 >> 1));
+}
+
+
+if (16383 >> 1 !== 8191) {
+ $ERROR('#47: 16383 >> 1 === 8191. Actual: ' + (16383 >> 1));
+}
+
+
+if (32767 >> 1 !== 16383) {
+ $ERROR('#48: 32767 >> 1 === 16383. Actual: ' + (32767 >> 1));
+}
+
+
+if (65535 >> 1 !== 32767) {
+ $ERROR('#49: 65535 >> 1 === 32767. Actual: ' + (65535 >> 1));
+}
+
+
+if (131071 >> 1 !== 65535) {
+ $ERROR('#50: 131071 >> 1 === 65535. Actual: ' + (131071 >> 1));
+}
+
+
+if (262143 >> 1 !== 131071) {
+ $ERROR('#51: 262143 >> 1 === 131071. Actual: ' + (262143 >> 1));
+}
+
+
+if (524287 >> 1 !== 262143) {
+ $ERROR('#52: 524287 >> 1 === 262143. Actual: ' + (524287 >> 1));
+}
+
+
+if (1048575 >> 1 !== 524287) {
+ $ERROR('#53: 1048575 >> 1 === 524287. Actual: ' + (1048575 >> 1));
+}
+
+
+if (2097151 >> 1 !== 1048575) {
+ $ERROR('#54: 2097151 >> 1 === 1048575. Actual: ' + (2097151 >> 1));
+}
+
+
+if (4194303 >> 1 !== 2097151) {
+ $ERROR('#55: 4194303 >> 1 === 2097151. Actual: ' + (4194303 >> 1));
+}
+
+
+if (8388607 >> 1 !== 4194303) {
+ $ERROR('#56: 8388607 >> 1 === 4194303. Actual: ' + (8388607 >> 1));
+}
+
+
+if (16777215 >> 1 !== 8388607) {
+ $ERROR('#57: 16777215 >> 1 === 8388607. Actual: ' + (16777215 >> 1));
+}
+
+
+if (33554431 >> 1 !== 16777215) {
+ $ERROR('#58: 33554431 >> 1 === 16777215. Actual: ' + (33554431 >> 1));
+}
+
+
+if (67108863 >> 1 !== 33554431) {
+ $ERROR('#59: 67108863 >> 1 === 33554431. Actual: ' + (67108863 >> 1));
+}
+
+
+if (134217727 >> 1 !== 67108863) {
+ $ERROR('#60: 134217727 >> 1 === 67108863. Actual: ' + (134217727 >> 1));
+}
+
+
+if (268435455 >> 1 !== 134217727) {
+ $ERROR('#61: 268435455 >> 1 === 134217727. Actual: ' + (268435455 >> 1));
+}
+
+
+if (536870911 >> 1 !== 268435455) {
+ $ERROR('#62: 536870911 >> 1 === 268435455. Actual: ' + (536870911 >> 1));
+}
+
+
+if (1073741823 >> 1 !== 536870911) {
+ $ERROR('#63: 1073741823 >> 1 === 536870911. Actual: ' + (1073741823 >> 1));
+}
+
+
+if (2147483647 >> 1 !== 1073741823) {
+ $ERROR('#64: 2147483647 >> 1 === 1073741823. Actual: ' + (2147483647 >> 1));
+}
+
+
+if (0 >> 2 !== 0) {
+ $ERROR('#65: 0 >> 2 === 0. Actual: ' + (0 >> 2));
+}
+
+
+if (1 >> 2 !== 0) {
+ $ERROR('#66: 1 >> 2 === 0. Actual: ' + (1 >> 2));
+}
+
+
+if (3 >> 2 !== 0) {
+ $ERROR('#67: 3 >> 2 === 0. Actual: ' + (3 >> 2));
+}
+
+
+if (7 >> 2 !== 1) {
+ $ERROR('#68: 7 >> 2 === 1. Actual: ' + (7 >> 2));
+}
+
+
+if (15 >> 2 !== 3) {
+ $ERROR('#69: 15 >> 2 === 3. Actual: ' + (15 >> 2));
+}
+
+
+if (31 >> 2 !== 7) {
+ $ERROR('#70: 31 >> 2 === 7. Actual: ' + (31 >> 2));
+}
+
+
+if (63 >> 2 !== 15) {
+ $ERROR('#71: 63 >> 2 === 15. Actual: ' + (63 >> 2));
+}
+
+
+if (127 >> 2 !== 31) {
+ $ERROR('#72: 127 >> 2 === 31. Actual: ' + (127 >> 2));
+}
+
+
+if (255 >> 2 !== 63) {
+ $ERROR('#73: 255 >> 2 === 63. Actual: ' + (255 >> 2));
+}
+
+
+if (511 >> 2 !== 127) {
+ $ERROR('#74: 511 >> 2 === 127. Actual: ' + (511 >> 2));
+}
+
+
+if (1023 >> 2 !== 255) {
+ $ERROR('#75: 1023 >> 2 === 255. Actual: ' + (1023 >> 2));
+}
+
+
+if (2047 >> 2 !== 511) {
+ $ERROR('#76: 2047 >> 2 === 511. Actual: ' + (2047 >> 2));
+}
+
+
+if (4095 >> 2 !== 1023) {
+ $ERROR('#77: 4095 >> 2 === 1023. Actual: ' + (4095 >> 2));
+}
+
+
+if (8191 >> 2 !== 2047) {
+ $ERROR('#78: 8191 >> 2 === 2047. Actual: ' + (8191 >> 2));
+}
+
+
+if (16383 >> 2 !== 4095) {
+ $ERROR('#79: 16383 >> 2 === 4095. Actual: ' + (16383 >> 2));
+}
+
+
+if (32767 >> 2 !== 8191) {
+ $ERROR('#80: 32767 >> 2 === 8191. Actual: ' + (32767 >> 2));
+}
+
+
+if (65535 >> 2 !== 16383) {
+ $ERROR('#81: 65535 >> 2 === 16383. Actual: ' + (65535 >> 2));
+}
+
+
+if (131071 >> 2 !== 32767) {
+ $ERROR('#82: 131071 >> 2 === 32767. Actual: ' + (131071 >> 2));
+}
+
+
+if (262143 >> 2 !== 65535) {
+ $ERROR('#83: 262143 >> 2 === 65535. Actual: ' + (262143 >> 2));
+}
+
+
+if (524287 >> 2 !== 131071) {
+ $ERROR('#84: 524287 >> 2 === 131071. Actual: ' + (524287 >> 2));
+}
+
+
+if (1048575 >> 2 !== 262143) {
+ $ERROR('#85: 1048575 >> 2 === 262143. Actual: ' + (1048575 >> 2));
+}
+
+
+if (2097151 >> 2 !== 524287) {
+ $ERROR('#86: 2097151 >> 2 === 524287. Actual: ' + (2097151 >> 2));
+}
+
+
+if (4194303 >> 2 !== 1048575) {
+ $ERROR('#87: 4194303 >> 2 === 1048575. Actual: ' + (4194303 >> 2));
+}
+
+
+if (8388607 >> 2 !== 2097151) {
+ $ERROR('#88: 8388607 >> 2 === 2097151. Actual: ' + (8388607 >> 2));
+}
+
+
+if (16777215 >> 2 !== 4194303) {
+ $ERROR('#89: 16777215 >> 2 === 4194303. Actual: ' + (16777215 >> 2));
+}
+
+
+if (33554431 >> 2 !== 8388607) {
+ $ERROR('#90: 33554431 >> 2 === 8388607. Actual: ' + (33554431 >> 2));
+}
+
+
+if (67108863 >> 2 !== 16777215) {
+ $ERROR('#91: 67108863 >> 2 === 16777215. Actual: ' + (67108863 >> 2));
+}
+
+
+if (134217727 >> 2 !== 33554431) {
+ $ERROR('#92: 134217727 >> 2 === 33554431. Actual: ' + (134217727 >> 2));
+}
+
+
+if (268435455 >> 2 !== 67108863) {
+ $ERROR('#93: 268435455 >> 2 === 67108863. Actual: ' + (268435455 >> 2));
+}
+
+
+if (536870911 >> 2 !== 134217727) {
+ $ERROR('#94: 536870911 >> 2 === 134217727. Actual: ' + (536870911 >> 2));
+}
+
+
+if (1073741823 >> 2 !== 268435455) {
+ $ERROR('#95: 1073741823 >> 2 === 268435455. Actual: ' + (1073741823 >> 2));
+}
+
+
+if (2147483647 >> 2 !== 536870911) {
+ $ERROR('#96: 2147483647 >> 2 === 536870911. Actual: ' + (2147483647 >> 2));
+}
+
+
+if (0 >> 3 !== 0) {
+ $ERROR('#97: 0 >> 3 === 0. Actual: ' + (0 >> 3));
+}
+
+
+if (1 >> 3 !== 0) {
+ $ERROR('#98: 1 >> 3 === 0. Actual: ' + (1 >> 3));
+}
+
+
+if (3 >> 3 !== 0) {
+ $ERROR('#99: 3 >> 3 === 0. Actual: ' + (3 >> 3));
+}
+
+
+if (7 >> 3 !== 0) {
+ $ERROR('#100: 7 >> 3 === 0. Actual: ' + (7 >> 3));
+}
+
+
+if (15 >> 3 !== 1) {
+ $ERROR('#101: 15 >> 3 === 1. Actual: ' + (15 >> 3));
+}
+
+
+if (31 >> 3 !== 3) {
+ $ERROR('#102: 31 >> 3 === 3. Actual: ' + (31 >> 3));
+}
+
+
+if (63 >> 3 !== 7) {
+ $ERROR('#103: 63 >> 3 === 7. Actual: ' + (63 >> 3));
+}
+
+
+if (127 >> 3 !== 15) {
+ $ERROR('#104: 127 >> 3 === 15. Actual: ' + (127 >> 3));
+}
+
+
+if (255 >> 3 !== 31) {
+ $ERROR('#105: 255 >> 3 === 31. Actual: ' + (255 >> 3));
+}
+
+
+if (511 >> 3 !== 63) {
+ $ERROR('#106: 511 >> 3 === 63. Actual: ' + (511 >> 3));
+}
+
+
+if (1023 >> 3 !== 127) {
+ $ERROR('#107: 1023 >> 3 === 127. Actual: ' + (1023 >> 3));
+}
+
+
+if (2047 >> 3 !== 255) {
+ $ERROR('#108: 2047 >> 3 === 255. Actual: ' + (2047 >> 3));
+}
+
+
+if (4095 >> 3 !== 511) {
+ $ERROR('#109: 4095 >> 3 === 511. Actual: ' + (4095 >> 3));
+}
+
+
+if (8191 >> 3 !== 1023) {
+ $ERROR('#110: 8191 >> 3 === 1023. Actual: ' + (8191 >> 3));
+}
+
+
+if (16383 >> 3 !== 2047) {
+ $ERROR('#111: 16383 >> 3 === 2047. Actual: ' + (16383 >> 3));
+}
+
+
+if (32767 >> 3 !== 4095) {
+ $ERROR('#112: 32767 >> 3 === 4095. Actual: ' + (32767 >> 3));
+}
+
+
+if (65535 >> 3 !== 8191) {
+ $ERROR('#113: 65535 >> 3 === 8191. Actual: ' + (65535 >> 3));
+}
+
+
+if (131071 >> 3 !== 16383) {
+ $ERROR('#114: 131071 >> 3 === 16383. Actual: ' + (131071 >> 3));
+}
+
+
+if (262143 >> 3 !== 32767) {
+ $ERROR('#115: 262143 >> 3 === 32767. Actual: ' + (262143 >> 3));
+}
+
+
+if (524287 >> 3 !== 65535) {
+ $ERROR('#116: 524287 >> 3 === 65535. Actual: ' + (524287 >> 3));
+}
+
+
+if (1048575 >> 3 !== 131071) {
+ $ERROR('#117: 1048575 >> 3 === 131071. Actual: ' + (1048575 >> 3));
+}
+
+
+if (2097151 >> 3 !== 262143) {
+ $ERROR('#118: 2097151 >> 3 === 262143. Actual: ' + (2097151 >> 3));
+}
+
+
+if (4194303 >> 3 !== 524287) {
+ $ERROR('#119: 4194303 >> 3 === 524287. Actual: ' + (4194303 >> 3));
+}
+
+
+if (8388607 >> 3 !== 1048575) {
+ $ERROR('#120: 8388607 >> 3 === 1048575. Actual: ' + (8388607 >> 3));
+}
+
+
+if (16777215 >> 3 !== 2097151) {
+ $ERROR('#121: 16777215 >> 3 === 2097151. Actual: ' + (16777215 >> 3));
+}
+
+
+if (33554431 >> 3 !== 4194303) {
+ $ERROR('#122: 33554431 >> 3 === 4194303. Actual: ' + (33554431 >> 3));
+}
+
+
+if (67108863 >> 3 !== 8388607) {
+ $ERROR('#123: 67108863 >> 3 === 8388607. Actual: ' + (67108863 >> 3));
+}
+
+
+if (134217727 >> 3 !== 16777215) {
+ $ERROR('#124: 134217727 >> 3 === 16777215. Actual: ' + (134217727 >> 3));
+}
+
+
+if (268435455 >> 3 !== 33554431) {
+ $ERROR('#125: 268435455 >> 3 === 33554431. Actual: ' + (268435455 >> 3));
+}
+
+
+if (536870911 >> 3 !== 67108863) {
+ $ERROR('#126: 536870911 >> 3 === 67108863. Actual: ' + (536870911 >> 3));
+}
+
+
+if (1073741823 >> 3 !== 134217727) {
+ $ERROR('#127: 1073741823 >> 3 === 134217727. Actual: ' + (1073741823 >> 3));
+}
+
+
+if (2147483647 >> 3 !== 268435455) {
+ $ERROR('#128: 2147483647 >> 3 === 268435455. Actual: ' + (2147483647 >> 3));
+}
+
+
+if (0 >> 4 !== 0) {
+ $ERROR('#129: 0 >> 4 === 0. Actual: ' + (0 >> 4));
+}
+
+
+if (1 >> 4 !== 0) {
+ $ERROR('#130: 1 >> 4 === 0. Actual: ' + (1 >> 4));
+}
+
+
+if (3 >> 4 !== 0) {
+ $ERROR('#131: 3 >> 4 === 0. Actual: ' + (3 >> 4));
+}
+
+
+if (7 >> 4 !== 0) {
+ $ERROR('#132: 7 >> 4 === 0. Actual: ' + (7 >> 4));
+}
+
+
+if (15 >> 4 !== 0) {
+ $ERROR('#133: 15 >> 4 === 0. Actual: ' + (15 >> 4));
+}
+
+
+if (31 >> 4 !== 1) {
+ $ERROR('#134: 31 >> 4 === 1. Actual: ' + (31 >> 4));
+}
+
+
+if (63 >> 4 !== 3) {
+ $ERROR('#135: 63 >> 4 === 3. Actual: ' + (63 >> 4));
+}
+
+
+if (127 >> 4 !== 7) {
+ $ERROR('#136: 127 >> 4 === 7. Actual: ' + (127 >> 4));
+}
+
+
+if (255 >> 4 !== 15) {
+ $ERROR('#137: 255 >> 4 === 15. Actual: ' + (255 >> 4));
+}
+
+
+if (511 >> 4 !== 31) {
+ $ERROR('#138: 511 >> 4 === 31. Actual: ' + (511 >> 4));
+}
+
+
+if (1023 >> 4 !== 63) {
+ $ERROR('#139: 1023 >> 4 === 63. Actual: ' + (1023 >> 4));
+}
+
+
+if (2047 >> 4 !== 127) {
+ $ERROR('#140: 2047 >> 4 === 127. Actual: ' + (2047 >> 4));
+}
+
+
+if (4095 >> 4 !== 255) {
+ $ERROR('#141: 4095 >> 4 === 255. Actual: ' + (4095 >> 4));
+}
+
+
+if (8191 >> 4 !== 511) {
+ $ERROR('#142: 8191 >> 4 === 511. Actual: ' + (8191 >> 4));
+}
+
+
+if (16383 >> 4 !== 1023) {
+ $ERROR('#143: 16383 >> 4 === 1023. Actual: ' + (16383 >> 4));
+}
+
+
+if (32767 >> 4 !== 2047) {
+ $ERROR('#144: 32767 >> 4 === 2047. Actual: ' + (32767 >> 4));
+}
+
+
+if (65535 >> 4 !== 4095) {
+ $ERROR('#145: 65535 >> 4 === 4095. Actual: ' + (65535 >> 4));
+}
+
+
+if (131071 >> 4 !== 8191) {
+ $ERROR('#146: 131071 >> 4 === 8191. Actual: ' + (131071 >> 4));
+}
+
+
+if (262143 >> 4 !== 16383) {
+ $ERROR('#147: 262143 >> 4 === 16383. Actual: ' + (262143 >> 4));
+}
+
+
+if (524287 >> 4 !== 32767) {
+ $ERROR('#148: 524287 >> 4 === 32767. Actual: ' + (524287 >> 4));
+}
+
+
+if (1048575 >> 4 !== 65535) {
+ $ERROR('#149: 1048575 >> 4 === 65535. Actual: ' + (1048575 >> 4));
+}
+
+
+if (2097151 >> 4 !== 131071) {
+ $ERROR('#150: 2097151 >> 4 === 131071. Actual: ' + (2097151 >> 4));
+}
+
+
+if (4194303 >> 4 !== 262143) {
+ $ERROR('#151: 4194303 >> 4 === 262143. Actual: ' + (4194303 >> 4));
+}
+
+
+if (8388607 >> 4 !== 524287) {
+ $ERROR('#152: 8388607 >> 4 === 524287. Actual: ' + (8388607 >> 4));
+}
+
+
+if (16777215 >> 4 !== 1048575) {
+ $ERROR('#153: 16777215 >> 4 === 1048575. Actual: ' + (16777215 >> 4));
+}
+
+
+if (33554431 >> 4 !== 2097151) {
+ $ERROR('#154: 33554431 >> 4 === 2097151. Actual: ' + (33554431 >> 4));
+}
+
+
+if (67108863 >> 4 !== 4194303) {
+ $ERROR('#155: 67108863 >> 4 === 4194303. Actual: ' + (67108863 >> 4));
+}
+
+
+if (134217727 >> 4 !== 8388607) {
+ $ERROR('#156: 134217727 >> 4 === 8388607. Actual: ' + (134217727 >> 4));
+}
+
+
+if (268435455 >> 4 !== 16777215) {
+ $ERROR('#157: 268435455 >> 4 === 16777215. Actual: ' + (268435455 >> 4));
+}
+
+
+if (536870911 >> 4 !== 33554431) {
+ $ERROR('#158: 536870911 >> 4 === 33554431. Actual: ' + (536870911 >> 4));
+}
+
+
+if (1073741823 >> 4 !== 67108863) {
+ $ERROR('#159: 1073741823 >> 4 === 67108863. Actual: ' + (1073741823 >> 4));
+}
+
+
+if (2147483647 >> 4 !== 134217727) {
+ $ERROR('#160: 2147483647 >> 4 === 134217727. Actual: ' + (2147483647 >> 4));
+}
+
+
+if (0 >> 5 !== 0) {
+ $ERROR('#161: 0 >> 5 === 0. Actual: ' + (0 >> 5));
+}
+
+
+if (1 >> 5 !== 0) {
+ $ERROR('#162: 1 >> 5 === 0. Actual: ' + (1 >> 5));
+}
+
+
+if (3 >> 5 !== 0) {
+ $ERROR('#163: 3 >> 5 === 0. Actual: ' + (3 >> 5));
+}
+
+
+if (7 >> 5 !== 0) {
+ $ERROR('#164: 7 >> 5 === 0. Actual: ' + (7 >> 5));
+}
+
+
+if (15 >> 5 !== 0) {
+ $ERROR('#165: 15 >> 5 === 0. Actual: ' + (15 >> 5));
+}
+
+
+if (31 >> 5 !== 0) {
+ $ERROR('#166: 31 >> 5 === 0. Actual: ' + (31 >> 5));
+}
+
+
+if (63 >> 5 !== 1) {
+ $ERROR('#167: 63 >> 5 === 1. Actual: ' + (63 >> 5));
+}
+
+
+if (127 >> 5 !== 3) {
+ $ERROR('#168: 127 >> 5 === 3. Actual: ' + (127 >> 5));
+}
+
+
+if (255 >> 5 !== 7) {
+ $ERROR('#169: 255 >> 5 === 7. Actual: ' + (255 >> 5));
+}
+
+
+if (511 >> 5 !== 15) {
+ $ERROR('#170: 511 >> 5 === 15. Actual: ' + (511 >> 5));
+}
+
+
+if (1023 >> 5 !== 31) {
+ $ERROR('#171: 1023 >> 5 === 31. Actual: ' + (1023 >> 5));
+}
+
+
+if (2047 >> 5 !== 63) {
+ $ERROR('#172: 2047 >> 5 === 63. Actual: ' + (2047 >> 5));
+}
+
+
+if (4095 >> 5 !== 127) {
+ $ERROR('#173: 4095 >> 5 === 127. Actual: ' + (4095 >> 5));
+}
+
+
+if (8191 >> 5 !== 255) {
+ $ERROR('#174: 8191 >> 5 === 255. Actual: ' + (8191 >> 5));
+}
+
+
+if (16383 >> 5 !== 511) {
+ $ERROR('#175: 16383 >> 5 === 511. Actual: ' + (16383 >> 5));
+}
+
+
+if (32767 >> 5 !== 1023) {
+ $ERROR('#176: 32767 >> 5 === 1023. Actual: ' + (32767 >> 5));
+}
+
+
+if (65535 >> 5 !== 2047) {
+ $ERROR('#177: 65535 >> 5 === 2047. Actual: ' + (65535 >> 5));
+}
+
+
+if (131071 >> 5 !== 4095) {
+ $ERROR('#178: 131071 >> 5 === 4095. Actual: ' + (131071 >> 5));
+}
+
+
+if (262143 >> 5 !== 8191) {
+ $ERROR('#179: 262143 >> 5 === 8191. Actual: ' + (262143 >> 5));
+}
+
+
+if (524287 >> 5 !== 16383) {
+ $ERROR('#180: 524287 >> 5 === 16383. Actual: ' + (524287 >> 5));
+}
+
+
+if (1048575 >> 5 !== 32767) {
+ $ERROR('#181: 1048575 >> 5 === 32767. Actual: ' + (1048575 >> 5));
+}
+
+
+if (2097151 >> 5 !== 65535) {
+ $ERROR('#182: 2097151 >> 5 === 65535. Actual: ' + (2097151 >> 5));
+}
+
+
+if (4194303 >> 5 !== 131071) {
+ $ERROR('#183: 4194303 >> 5 === 131071. Actual: ' + (4194303 >> 5));
+}
+
+
+if (8388607 >> 5 !== 262143) {
+ $ERROR('#184: 8388607 >> 5 === 262143. Actual: ' + (8388607 >> 5));
+}
+
+
+if (16777215 >> 5 !== 524287) {
+ $ERROR('#185: 16777215 >> 5 === 524287. Actual: ' + (16777215 >> 5));
+}
+
+
+if (33554431 >> 5 !== 1048575) {
+ $ERROR('#186: 33554431 >> 5 === 1048575. Actual: ' + (33554431 >> 5));
+}
+
+
+if (67108863 >> 5 !== 2097151) {
+ $ERROR('#187: 67108863 >> 5 === 2097151. Actual: ' + (67108863 >> 5));
+}
+
+
+if (134217727 >> 5 !== 4194303) {
+ $ERROR('#188: 134217727 >> 5 === 4194303. Actual: ' + (134217727 >> 5));
+}
+
+
+if (268435455 >> 5 !== 8388607) {
+ $ERROR('#189: 268435455 >> 5 === 8388607. Actual: ' + (268435455 >> 5));
+}
+
+
+if (536870911 >> 5 !== 16777215) {
+ $ERROR('#190: 536870911 >> 5 === 16777215. Actual: ' + (536870911 >> 5));
+}
+
+
+if (1073741823 >> 5 !== 33554431) {
+ $ERROR('#191: 1073741823 >> 5 === 33554431. Actual: ' + (1073741823 >> 5));
+}
+
+
+if (2147483647 >> 5 !== 67108863) {
+ $ERROR('#192: 2147483647 >> 5 === 67108863. Actual: ' + (2147483647 >> 5));
+}
+
+
+if (0 >> 6 !== 0) {
+ $ERROR('#193: 0 >> 6 === 0. Actual: ' + (0 >> 6));
+}
+
+
+if (1 >> 6 !== 0) {
+ $ERROR('#194: 1 >> 6 === 0. Actual: ' + (1 >> 6));
+}
+
+
+if (3 >> 6 !== 0) {
+ $ERROR('#195: 3 >> 6 === 0. Actual: ' + (3 >> 6));
+}
+
+
+if (7 >> 6 !== 0) {
+ $ERROR('#196: 7 >> 6 === 0. Actual: ' + (7 >> 6));
+}
+
+
+if (15 >> 6 !== 0) {
+ $ERROR('#197: 15 >> 6 === 0. Actual: ' + (15 >> 6));
+}
+
+
+if (31 >> 6 !== 0) {
+ $ERROR('#198: 31 >> 6 === 0. Actual: ' + (31 >> 6));
+}
+
+
+if (63 >> 6 !== 0) {
+ $ERROR('#199: 63 >> 6 === 0. Actual: ' + (63 >> 6));
+}
+
+
+if (127 >> 6 !== 1) {
+ $ERROR('#200: 127 >> 6 === 1. Actual: ' + (127 >> 6));
+}
+
+
+if (255 >> 6 !== 3) {
+ $ERROR('#201: 255 >> 6 === 3. Actual: ' + (255 >> 6));
+}
+
+
+if (511 >> 6 !== 7) {
+ $ERROR('#202: 511 >> 6 === 7. Actual: ' + (511 >> 6));
+}
+
+
+if (1023 >> 6 !== 15) {
+ $ERROR('#203: 1023 >> 6 === 15. Actual: ' + (1023 >> 6));
+}
+
+
+if (2047 >> 6 !== 31) {
+ $ERROR('#204: 2047 >> 6 === 31. Actual: ' + (2047 >> 6));
+}
+
+
+if (4095 >> 6 !== 63) {
+ $ERROR('#205: 4095 >> 6 === 63. Actual: ' + (4095 >> 6));
+}
+
+
+if (8191 >> 6 !== 127) {
+ $ERROR('#206: 8191 >> 6 === 127. Actual: ' + (8191 >> 6));
+}
+
+
+if (16383 >> 6 !== 255) {
+ $ERROR('#207: 16383 >> 6 === 255. Actual: ' + (16383 >> 6));
+}
+
+
+if (32767 >> 6 !== 511) {
+ $ERROR('#208: 32767 >> 6 === 511. Actual: ' + (32767 >> 6));
+}
+
+
+if (65535 >> 6 !== 1023) {
+ $ERROR('#209: 65535 >> 6 === 1023. Actual: ' + (65535 >> 6));
+}
+
+
+if (131071 >> 6 !== 2047) {
+ $ERROR('#210: 131071 >> 6 === 2047. Actual: ' + (131071 >> 6));
+}
+
+
+if (262143 >> 6 !== 4095) {
+ $ERROR('#211: 262143 >> 6 === 4095. Actual: ' + (262143 >> 6));
+}
+
+
+if (524287 >> 6 !== 8191) {
+ $ERROR('#212: 524287 >> 6 === 8191. Actual: ' + (524287 >> 6));
+}
+
+
+if (1048575 >> 6 !== 16383) {
+ $ERROR('#213: 1048575 >> 6 === 16383. Actual: ' + (1048575 >> 6));
+}
+
+
+if (2097151 >> 6 !== 32767) {
+ $ERROR('#214: 2097151 >> 6 === 32767. Actual: ' + (2097151 >> 6));
+}
+
+
+if (4194303 >> 6 !== 65535) {
+ $ERROR('#215: 4194303 >> 6 === 65535. Actual: ' + (4194303 >> 6));
+}
+
+
+if (8388607 >> 6 !== 131071) {
+ $ERROR('#216: 8388607 >> 6 === 131071. Actual: ' + (8388607 >> 6));
+}
+
+
+if (16777215 >> 6 !== 262143) {
+ $ERROR('#217: 16777215 >> 6 === 262143. Actual: ' + (16777215 >> 6));
+}
+
+
+if (33554431 >> 6 !== 524287) {
+ $ERROR('#218: 33554431 >> 6 === 524287. Actual: ' + (33554431 >> 6));
+}
+
+
+if (67108863 >> 6 !== 1048575) {
+ $ERROR('#219: 67108863 >> 6 === 1048575. Actual: ' + (67108863 >> 6));
+}
+
+
+if (134217727 >> 6 !== 2097151) {
+ $ERROR('#220: 134217727 >> 6 === 2097151. Actual: ' + (134217727 >> 6));
+}
+
+
+if (268435455 >> 6 !== 4194303) {
+ $ERROR('#221: 268435455 >> 6 === 4194303. Actual: ' + (268435455 >> 6));
+}
+
+
+if (536870911 >> 6 !== 8388607) {
+ $ERROR('#222: 536870911 >> 6 === 8388607. Actual: ' + (536870911 >> 6));
+}
+
+
+if (1073741823 >> 6 !== 16777215) {
+ $ERROR('#223: 1073741823 >> 6 === 16777215. Actual: ' + (1073741823 >> 6));
+}
+
+
+if (2147483647 >> 6 !== 33554431) {
+ $ERROR('#224: 2147483647 >> 6 === 33554431. Actual: ' + (2147483647 >> 6));
+}
+
+
+if (0 >> 7 !== 0) {
+ $ERROR('#225: 0 >> 7 === 0. Actual: ' + (0 >> 7));
+}
+
+
+if (1 >> 7 !== 0) {
+ $ERROR('#226: 1 >> 7 === 0. Actual: ' + (1 >> 7));
+}
+
+
+if (3 >> 7 !== 0) {
+ $ERROR('#227: 3 >> 7 === 0. Actual: ' + (3 >> 7));
+}
+
+
+if (7 >> 7 !== 0) {
+ $ERROR('#228: 7 >> 7 === 0. Actual: ' + (7 >> 7));
+}
+
+
+if (15 >> 7 !== 0) {
+ $ERROR('#229: 15 >> 7 === 0. Actual: ' + (15 >> 7));
+}
+
+
+if (31 >> 7 !== 0) {
+ $ERROR('#230: 31 >> 7 === 0. Actual: ' + (31 >> 7));
+}
+
+
+if (63 >> 7 !== 0) {
+ $ERROR('#231: 63 >> 7 === 0. Actual: ' + (63 >> 7));
+}
+
+
+if (127 >> 7 !== 0) {
+ $ERROR('#232: 127 >> 7 === 0. Actual: ' + (127 >> 7));
+}
+
+
+if (255 >> 7 !== 1) {
+ $ERROR('#233: 255 >> 7 === 1. Actual: ' + (255 >> 7));
+}
+
+
+if (511 >> 7 !== 3) {
+ $ERROR('#234: 511 >> 7 === 3. Actual: ' + (511 >> 7));
+}
+
+
+if (1023 >> 7 !== 7) {
+ $ERROR('#235: 1023 >> 7 === 7. Actual: ' + (1023 >> 7));
+}
+
+
+if (2047 >> 7 !== 15) {
+ $ERROR('#236: 2047 >> 7 === 15. Actual: ' + (2047 >> 7));
+}
+
+
+if (4095 >> 7 !== 31) {
+ $ERROR('#237: 4095 >> 7 === 31. Actual: ' + (4095 >> 7));
+}
+
+
+if (8191 >> 7 !== 63) {
+ $ERROR('#238: 8191 >> 7 === 63. Actual: ' + (8191 >> 7));
+}
+
+
+if (16383 >> 7 !== 127) {
+ $ERROR('#239: 16383 >> 7 === 127. Actual: ' + (16383 >> 7));
+}
+
+
+if (32767 >> 7 !== 255) {
+ $ERROR('#240: 32767 >> 7 === 255. Actual: ' + (32767 >> 7));
+}
+
+
+if (65535 >> 7 !== 511) {
+ $ERROR('#241: 65535 >> 7 === 511. Actual: ' + (65535 >> 7));
+}
+
+
+if (131071 >> 7 !== 1023) {
+ $ERROR('#242: 131071 >> 7 === 1023. Actual: ' + (131071 >> 7));
+}
+
+
+if (262143 >> 7 !== 2047) {
+ $ERROR('#243: 262143 >> 7 === 2047. Actual: ' + (262143 >> 7));
+}
+
+
+if (524287 >> 7 !== 4095) {
+ $ERROR('#244: 524287 >> 7 === 4095. Actual: ' + (524287 >> 7));
+}
+
+
+if (1048575 >> 7 !== 8191) {
+ $ERROR('#245: 1048575 >> 7 === 8191. Actual: ' + (1048575 >> 7));
+}
+
+
+if (2097151 >> 7 !== 16383) {
+ $ERROR('#246: 2097151 >> 7 === 16383. Actual: ' + (2097151 >> 7));
+}
+
+
+if (4194303 >> 7 !== 32767) {
+ $ERROR('#247: 4194303 >> 7 === 32767. Actual: ' + (4194303 >> 7));
+}
+
+
+if (8388607 >> 7 !== 65535) {
+ $ERROR('#248: 8388607 >> 7 === 65535. Actual: ' + (8388607 >> 7));
+}
+
+
+if (16777215 >> 7 !== 131071) {
+ $ERROR('#249: 16777215 >> 7 === 131071. Actual: ' + (16777215 >> 7));
+}
+
+
+if (33554431 >> 7 !== 262143) {
+ $ERROR('#250: 33554431 >> 7 === 262143. Actual: ' + (33554431 >> 7));
+}
+
+
+if (67108863 >> 7 !== 524287) {
+ $ERROR('#251: 67108863 >> 7 === 524287. Actual: ' + (67108863 >> 7));
+}
+
+
+if (134217727 >> 7 !== 1048575) {
+ $ERROR('#252: 134217727 >> 7 === 1048575. Actual: ' + (134217727 >> 7));
+}
+
+
+if (268435455 >> 7 !== 2097151) {
+ $ERROR('#253: 268435455 >> 7 === 2097151. Actual: ' + (268435455 >> 7));
+}
+
+
+if (536870911 >> 7 !== 4194303) {
+ $ERROR('#254: 536870911 >> 7 === 4194303. Actual: ' + (536870911 >> 7));
+}
+
+
+if (1073741823 >> 7 !== 8388607) {
+ $ERROR('#255: 1073741823 >> 7 === 8388607. Actual: ' + (1073741823 >> 7));
+}
+
+
+if (2147483647 >> 7 !== 16777215) {
+ $ERROR('#256: 2147483647 >> 7 === 16777215. Actual: ' + (2147483647 >> 7));
+}
+
+
+if (0 >> 8 !== 0) {
+ $ERROR('#257: 0 >> 8 === 0. Actual: ' + (0 >> 8));
+}
+
+
+if (1 >> 8 !== 0) {
+ $ERROR('#258: 1 >> 8 === 0. Actual: ' + (1 >> 8));
+}
+
+
+if (3 >> 8 !== 0) {
+ $ERROR('#259: 3 >> 8 === 0. Actual: ' + (3 >> 8));
+}
+
+
+if (7 >> 8 !== 0) {
+ $ERROR('#260: 7 >> 8 === 0. Actual: ' + (7 >> 8));
+}
+
+
+if (15 >> 8 !== 0) {
+ $ERROR('#261: 15 >> 8 === 0. Actual: ' + (15 >> 8));
+}
+
+
+if (31 >> 8 !== 0) {
+ $ERROR('#262: 31 >> 8 === 0. Actual: ' + (31 >> 8));
+}
+
+
+if (63 >> 8 !== 0) {
+ $ERROR('#263: 63 >> 8 === 0. Actual: ' + (63 >> 8));
+}
+
+
+if (127 >> 8 !== 0) {
+ $ERROR('#264: 127 >> 8 === 0. Actual: ' + (127 >> 8));
+}
+
+
+if (255 >> 8 !== 0) {
+ $ERROR('#265: 255 >> 8 === 0. Actual: ' + (255 >> 8));
+}
+
+
+if (511 >> 8 !== 1) {
+ $ERROR('#266: 511 >> 8 === 1. Actual: ' + (511 >> 8));
+}
+
+
+if (1023 >> 8 !== 3) {
+ $ERROR('#267: 1023 >> 8 === 3. Actual: ' + (1023 >> 8));
+}
+
+
+if (2047 >> 8 !== 7) {
+ $ERROR('#268: 2047 >> 8 === 7. Actual: ' + (2047 >> 8));
+}
+
+
+if (4095 >> 8 !== 15) {
+ $ERROR('#269: 4095 >> 8 === 15. Actual: ' + (4095 >> 8));
+}
+
+
+if (8191 >> 8 !== 31) {
+ $ERROR('#270: 8191 >> 8 === 31. Actual: ' + (8191 >> 8));
+}
+
+
+if (16383 >> 8 !== 63) {
+ $ERROR('#271: 16383 >> 8 === 63. Actual: ' + (16383 >> 8));
+}
+
+
+if (32767 >> 8 !== 127) {
+ $ERROR('#272: 32767 >> 8 === 127. Actual: ' + (32767 >> 8));
+}
+
+
+if (65535 >> 8 !== 255) {
+ $ERROR('#273: 65535 >> 8 === 255. Actual: ' + (65535 >> 8));
+}
+
+
+if (131071 >> 8 !== 511) {
+ $ERROR('#274: 131071 >> 8 === 511. Actual: ' + (131071 >> 8));
+}
+
+
+if (262143 >> 8 !== 1023) {
+ $ERROR('#275: 262143 >> 8 === 1023. Actual: ' + (262143 >> 8));
+}
+
+
+if (524287 >> 8 !== 2047) {
+ $ERROR('#276: 524287 >> 8 === 2047. Actual: ' + (524287 >> 8));
+}
+
+
+if (1048575 >> 8 !== 4095) {
+ $ERROR('#277: 1048575 >> 8 === 4095. Actual: ' + (1048575 >> 8));
+}
+
+
+if (2097151 >> 8 !== 8191) {
+ $ERROR('#278: 2097151 >> 8 === 8191. Actual: ' + (2097151 >> 8));
+}
+
+
+if (4194303 >> 8 !== 16383) {
+ $ERROR('#279: 4194303 >> 8 === 16383. Actual: ' + (4194303 >> 8));
+}
+
+
+if (8388607 >> 8 !== 32767) {
+ $ERROR('#280: 8388607 >> 8 === 32767. Actual: ' + (8388607 >> 8));
+}
+
+
+if (16777215 >> 8 !== 65535) {
+ $ERROR('#281: 16777215 >> 8 === 65535. Actual: ' + (16777215 >> 8));
+}
+
+
+if (33554431 >> 8 !== 131071) {
+ $ERROR('#282: 33554431 >> 8 === 131071. Actual: ' + (33554431 >> 8));
+}
+
+
+if (67108863 >> 8 !== 262143) {
+ $ERROR('#283: 67108863 >> 8 === 262143. Actual: ' + (67108863 >> 8));
+}
+
+
+if (134217727 >> 8 !== 524287) {
+ $ERROR('#284: 134217727 >> 8 === 524287. Actual: ' + (134217727 >> 8));
+}
+
+
+if (268435455 >> 8 !== 1048575) {
+ $ERROR('#285: 268435455 >> 8 === 1048575. Actual: ' + (268435455 >> 8));
+}
+
+
+if (536870911 >> 8 !== 2097151) {
+ $ERROR('#286: 536870911 >> 8 === 2097151. Actual: ' + (536870911 >> 8));
+}
+
+
+if (1073741823 >> 8 !== 4194303) {
+ $ERROR('#287: 1073741823 >> 8 === 4194303. Actual: ' + (1073741823 >> 8));
+}
+
+
+if (2147483647 >> 8 !== 8388607) {
+ $ERROR('#288: 2147483647 >> 8 === 8388607. Actual: ' + (2147483647 >> 8));
+}
+
+
+if (0 >> 9 !== 0) {
+ $ERROR('#289: 0 >> 9 === 0. Actual: ' + (0 >> 9));
+}
+
+
+if (1 >> 9 !== 0) {
+ $ERROR('#290: 1 >> 9 === 0. Actual: ' + (1 >> 9));
+}
+
+
+if (3 >> 9 !== 0) {
+ $ERROR('#291: 3 >> 9 === 0. Actual: ' + (3 >> 9));
+}
+
+
+if (7 >> 9 !== 0) {
+ $ERROR('#292: 7 >> 9 === 0. Actual: ' + (7 >> 9));
+}
+
+
+if (15 >> 9 !== 0) {
+ $ERROR('#293: 15 >> 9 === 0. Actual: ' + (15 >> 9));
+}
+
+
+if (31 >> 9 !== 0) {
+ $ERROR('#294: 31 >> 9 === 0. Actual: ' + (31 >> 9));
+}
+
+
+if (63 >> 9 !== 0) {
+ $ERROR('#295: 63 >> 9 === 0. Actual: ' + (63 >> 9));
+}
+
+
+if (127 >> 9 !== 0) {
+ $ERROR('#296: 127 >> 9 === 0. Actual: ' + (127 >> 9));
+}
+
+
+if (255 >> 9 !== 0) {
+ $ERROR('#297: 255 >> 9 === 0. Actual: ' + (255 >> 9));
+}
+
+
+if (511 >> 9 !== 0) {
+ $ERROR('#298: 511 >> 9 === 0. Actual: ' + (511 >> 9));
+}
+
+
+if (1023 >> 9 !== 1) {
+ $ERROR('#299: 1023 >> 9 === 1. Actual: ' + (1023 >> 9));
+}
+
+
+if (2047 >> 9 !== 3) {
+ $ERROR('#300: 2047 >> 9 === 3. Actual: ' + (2047 >> 9));
+}
+
+
+if (4095 >> 9 !== 7) {
+ $ERROR('#301: 4095 >> 9 === 7. Actual: ' + (4095 >> 9));
+}
+
+
+if (8191 >> 9 !== 15) {
+ $ERROR('#302: 8191 >> 9 === 15. Actual: ' + (8191 >> 9));
+}
+
+
+if (16383 >> 9 !== 31) {
+ $ERROR('#303: 16383 >> 9 === 31. Actual: ' + (16383 >> 9));
+}
+
+
+if (32767 >> 9 !== 63) {
+ $ERROR('#304: 32767 >> 9 === 63. Actual: ' + (32767 >> 9));
+}
+
+
+if (65535 >> 9 !== 127) {
+ $ERROR('#305: 65535 >> 9 === 127. Actual: ' + (65535 >> 9));
+}
+
+
+if (131071 >> 9 !== 255) {
+ $ERROR('#306: 131071 >> 9 === 255. Actual: ' + (131071 >> 9));
+}
+
+
+if (262143 >> 9 !== 511) {
+ $ERROR('#307: 262143 >> 9 === 511. Actual: ' + (262143 >> 9));
+}
+
+
+if (524287 >> 9 !== 1023) {
+ $ERROR('#308: 524287 >> 9 === 1023. Actual: ' + (524287 >> 9));
+}
+
+
+if (1048575 >> 9 !== 2047) {
+ $ERROR('#309: 1048575 >> 9 === 2047. Actual: ' + (1048575 >> 9));
+}
+
+
+if (2097151 >> 9 !== 4095) {
+ $ERROR('#310: 2097151 >> 9 === 4095. Actual: ' + (2097151 >> 9));
+}
+
+
+if (4194303 >> 9 !== 8191) {
+ $ERROR('#311: 4194303 >> 9 === 8191. Actual: ' + (4194303 >> 9));
+}
+
+
+if (8388607 >> 9 !== 16383) {
+ $ERROR('#312: 8388607 >> 9 === 16383. Actual: ' + (8388607 >> 9));
+}
+
+
+if (16777215 >> 9 !== 32767) {
+ $ERROR('#313: 16777215 >> 9 === 32767. Actual: ' + (16777215 >> 9));
+}
+
+
+if (33554431 >> 9 !== 65535) {
+ $ERROR('#314: 33554431 >> 9 === 65535. Actual: ' + (33554431 >> 9));
+}
+
+
+if (67108863 >> 9 !== 131071) {
+ $ERROR('#315: 67108863 >> 9 === 131071. Actual: ' + (67108863 >> 9));
+}
+
+
+if (134217727 >> 9 !== 262143) {
+ $ERROR('#316: 134217727 >> 9 === 262143. Actual: ' + (134217727 >> 9));
+}
+
+
+if (268435455 >> 9 !== 524287) {
+ $ERROR('#317: 268435455 >> 9 === 524287. Actual: ' + (268435455 >> 9));
+}
+
+
+if (536870911 >> 9 !== 1048575) {
+ $ERROR('#318: 536870911 >> 9 === 1048575. Actual: ' + (536870911 >> 9));
+}
+
+
+if (1073741823 >> 9 !== 2097151) {
+ $ERROR('#319: 1073741823 >> 9 === 2097151. Actual: ' + (1073741823 >> 9));
+}
+
+
+if (2147483647 >> 9 !== 4194303) {
+ $ERROR('#320: 2147483647 >> 9 === 4194303. Actual: ' + (2147483647 >> 9));
+}
+
+
+if (0 >> 10 !== 0) {
+ $ERROR('#321: 0 >> 10 === 0. Actual: ' + (0 >> 10));
+}
+
+
+if (1 >> 10 !== 0) {
+ $ERROR('#322: 1 >> 10 === 0. Actual: ' + (1 >> 10));
+}
+
+
+if (3 >> 10 !== 0) {
+ $ERROR('#323: 3 >> 10 === 0. Actual: ' + (3 >> 10));
+}
+
+
+if (7 >> 10 !== 0) {
+ $ERROR('#324: 7 >> 10 === 0. Actual: ' + (7 >> 10));
+}
+
+
+if (15 >> 10 !== 0) {
+ $ERROR('#325: 15 >> 10 === 0. Actual: ' + (15 >> 10));
+}
+
+
+if (31 >> 10 !== 0) {
+ $ERROR('#326: 31 >> 10 === 0. Actual: ' + (31 >> 10));
+}
+
+
+if (63 >> 10 !== 0) {
+ $ERROR('#327: 63 >> 10 === 0. Actual: ' + (63 >> 10));
+}
+
+
+if (127 >> 10 !== 0) {
+ $ERROR('#328: 127 >> 10 === 0. Actual: ' + (127 >> 10));
+}
+
+
+if (255 >> 10 !== 0) {
+ $ERROR('#329: 255 >> 10 === 0. Actual: ' + (255 >> 10));
+}
+
+
+if (511 >> 10 !== 0) {
+ $ERROR('#330: 511 >> 10 === 0. Actual: ' + (511 >> 10));
+}
+
+
+if (1023 >> 10 !== 0) {
+ $ERROR('#331: 1023 >> 10 === 0. Actual: ' + (1023 >> 10));
+}
+
+
+if (2047 >> 10 !== 1) {
+ $ERROR('#332: 2047 >> 10 === 1. Actual: ' + (2047 >> 10));
+}
+
+
+if (4095 >> 10 !== 3) {
+ $ERROR('#333: 4095 >> 10 === 3. Actual: ' + (4095 >> 10));
+}
+
+
+if (8191 >> 10 !== 7) {
+ $ERROR('#334: 8191 >> 10 === 7. Actual: ' + (8191 >> 10));
+}
+
+
+if (16383 >> 10 !== 15) {
+ $ERROR('#335: 16383 >> 10 === 15. Actual: ' + (16383 >> 10));
+}
+
+
+if (32767 >> 10 !== 31) {
+ $ERROR('#336: 32767 >> 10 === 31. Actual: ' + (32767 >> 10));
+}
+
+
+if (65535 >> 10 !== 63) {
+ $ERROR('#337: 65535 >> 10 === 63. Actual: ' + (65535 >> 10));
+}
+
+
+if (131071 >> 10 !== 127) {
+ $ERROR('#338: 131071 >> 10 === 127. Actual: ' + (131071 >> 10));
+}
+
+
+if (262143 >> 10 !== 255) {
+ $ERROR('#339: 262143 >> 10 === 255. Actual: ' + (262143 >> 10));
+}
+
+
+if (524287 >> 10 !== 511) {
+ $ERROR('#340: 524287 >> 10 === 511. Actual: ' + (524287 >> 10));
+}
+
+
+if (1048575 >> 10 !== 1023) {
+ $ERROR('#341: 1048575 >> 10 === 1023. Actual: ' + (1048575 >> 10));
+}
+
+
+if (2097151 >> 10 !== 2047) {
+ $ERROR('#342: 2097151 >> 10 === 2047. Actual: ' + (2097151 >> 10));
+}
+
+
+if (4194303 >> 10 !== 4095) {
+ $ERROR('#343: 4194303 >> 10 === 4095. Actual: ' + (4194303 >> 10));
+}
+
+
+if (8388607 >> 10 !== 8191) {
+ $ERROR('#344: 8388607 >> 10 === 8191. Actual: ' + (8388607 >> 10));
+}
+
+
+if (16777215 >> 10 !== 16383) {
+ $ERROR('#345: 16777215 >> 10 === 16383. Actual: ' + (16777215 >> 10));
+}
+
+
+if (33554431 >> 10 !== 32767) {
+ $ERROR('#346: 33554431 >> 10 === 32767. Actual: ' + (33554431 >> 10));
+}
+
+
+if (67108863 >> 10 !== 65535) {
+ $ERROR('#347: 67108863 >> 10 === 65535. Actual: ' + (67108863 >> 10));
+}
+
+
+if (134217727 >> 10 !== 131071) {
+ $ERROR('#348: 134217727 >> 10 === 131071. Actual: ' + (134217727 >> 10));
+}
+
+
+if (268435455 >> 10 !== 262143) {
+ $ERROR('#349: 268435455 >> 10 === 262143. Actual: ' + (268435455 >> 10));
+}
+
+
+if (536870911 >> 10 !== 524287) {
+ $ERROR('#350: 536870911 >> 10 === 524287. Actual: ' + (536870911 >> 10));
+}
+
+
+if (1073741823 >> 10 !== 1048575) {
+ $ERROR('#351: 1073741823 >> 10 === 1048575. Actual: ' + (1073741823 >> 10));
+}
+
+
+if (2147483647 >> 10 !== 2097151) {
+ $ERROR('#352: 2147483647 >> 10 === 2097151. Actual: ' + (2147483647 >> 10));
+}
+
+
+if (0 >> 11 !== 0) {
+ $ERROR('#353: 0 >> 11 === 0. Actual: ' + (0 >> 11));
+}
+
+
+if (1 >> 11 !== 0) {
+ $ERROR('#354: 1 >> 11 === 0. Actual: ' + (1 >> 11));
+}
+
+
+if (3 >> 11 !== 0) {
+ $ERROR('#355: 3 >> 11 === 0. Actual: ' + (3 >> 11));
+}
+
+
+if (7 >> 11 !== 0) {
+ $ERROR('#356: 7 >> 11 === 0. Actual: ' + (7 >> 11));
+}
+
+
+if (15 >> 11 !== 0) {
+ $ERROR('#357: 15 >> 11 === 0. Actual: ' + (15 >> 11));
+}
+
+
+if (31 >> 11 !== 0) {
+ $ERROR('#358: 31 >> 11 === 0. Actual: ' + (31 >> 11));
+}
+
+
+if (63 >> 11 !== 0) {
+ $ERROR('#359: 63 >> 11 === 0. Actual: ' + (63 >> 11));
+}
+
+
+if (127 >> 11 !== 0) {
+ $ERROR('#360: 127 >> 11 === 0. Actual: ' + (127 >> 11));
+}
+
+
+if (255 >> 11 !== 0) {
+ $ERROR('#361: 255 >> 11 === 0. Actual: ' + (255 >> 11));
+}
+
+
+if (511 >> 11 !== 0) {
+ $ERROR('#362: 511 >> 11 === 0. Actual: ' + (511 >> 11));
+}
+
+
+if (1023 >> 11 !== 0) {
+ $ERROR('#363: 1023 >> 11 === 0. Actual: ' + (1023 >> 11));
+}
+
+
+if (2047 >> 11 !== 0) {
+ $ERROR('#364: 2047 >> 11 === 0. Actual: ' + (2047 >> 11));
+}
+
+
+if (4095 >> 11 !== 1) {
+ $ERROR('#365: 4095 >> 11 === 1. Actual: ' + (4095 >> 11));
+}
+
+
+if (8191 >> 11 !== 3) {
+ $ERROR('#366: 8191 >> 11 === 3. Actual: ' + (8191 >> 11));
+}
+
+
+if (16383 >> 11 !== 7) {
+ $ERROR('#367: 16383 >> 11 === 7. Actual: ' + (16383 >> 11));
+}
+
+
+if (32767 >> 11 !== 15) {
+ $ERROR('#368: 32767 >> 11 === 15. Actual: ' + (32767 >> 11));
+}
+
+
+if (65535 >> 11 !== 31) {
+ $ERROR('#369: 65535 >> 11 === 31. Actual: ' + (65535 >> 11));
+}
+
+
+if (131071 >> 11 !== 63) {
+ $ERROR('#370: 131071 >> 11 === 63. Actual: ' + (131071 >> 11));
+}
+
+
+if (262143 >> 11 !== 127) {
+ $ERROR('#371: 262143 >> 11 === 127. Actual: ' + (262143 >> 11));
+}
+
+
+if (524287 >> 11 !== 255) {
+ $ERROR('#372: 524287 >> 11 === 255. Actual: ' + (524287 >> 11));
+}
+
+
+if (1048575 >> 11 !== 511) {
+ $ERROR('#373: 1048575 >> 11 === 511. Actual: ' + (1048575 >> 11));
+}
+
+
+if (2097151 >> 11 !== 1023) {
+ $ERROR('#374: 2097151 >> 11 === 1023. Actual: ' + (2097151 >> 11));
+}
+
+
+if (4194303 >> 11 !== 2047) {
+ $ERROR('#375: 4194303 >> 11 === 2047. Actual: ' + (4194303 >> 11));
+}
+
+
+if (8388607 >> 11 !== 4095) {
+ $ERROR('#376: 8388607 >> 11 === 4095. Actual: ' + (8388607 >> 11));
+}
+
+
+if (16777215 >> 11 !== 8191) {
+ $ERROR('#377: 16777215 >> 11 === 8191. Actual: ' + (16777215 >> 11));
+}
+
+
+if (33554431 >> 11 !== 16383) {
+ $ERROR('#378: 33554431 >> 11 === 16383. Actual: ' + (33554431 >> 11));
+}
+
+
+if (67108863 >> 11 !== 32767) {
+ $ERROR('#379: 67108863 >> 11 === 32767. Actual: ' + (67108863 >> 11));
+}
+
+
+if (134217727 >> 11 !== 65535) {
+ $ERROR('#380: 134217727 >> 11 === 65535. Actual: ' + (134217727 >> 11));
+}
+
+
+if (268435455 >> 11 !== 131071) {
+ $ERROR('#381: 268435455 >> 11 === 131071. Actual: ' + (268435455 >> 11));
+}
+
+
+if (536870911 >> 11 !== 262143) {
+ $ERROR('#382: 536870911 >> 11 === 262143. Actual: ' + (536870911 >> 11));
+}
+
+
+if (1073741823 >> 11 !== 524287) {
+ $ERROR('#383: 1073741823 >> 11 === 524287. Actual: ' + (1073741823 >> 11));
+}
+
+
+if (2147483647 >> 11 !== 1048575) {
+ $ERROR('#384: 2147483647 >> 11 === 1048575. Actual: ' + (2147483647 >> 11));
+}
+
+
+if (0 >> 12 !== 0) {
+ $ERROR('#385: 0 >> 12 === 0. Actual: ' + (0 >> 12));
+}
+
+
+if (1 >> 12 !== 0) {
+ $ERROR('#386: 1 >> 12 === 0. Actual: ' + (1 >> 12));
+}
+
+
+if (3 >> 12 !== 0) {
+ $ERROR('#387: 3 >> 12 === 0. Actual: ' + (3 >> 12));
+}
+
+
+if (7 >> 12 !== 0) {
+ $ERROR('#388: 7 >> 12 === 0. Actual: ' + (7 >> 12));
+}
+
+
+if (15 >> 12 !== 0) {
+ $ERROR('#389: 15 >> 12 === 0. Actual: ' + (15 >> 12));
+}
+
+
+if (31 >> 12 !== 0) {
+ $ERROR('#390: 31 >> 12 === 0. Actual: ' + (31 >> 12));
+}
+
+
+if (63 >> 12 !== 0) {
+ $ERROR('#391: 63 >> 12 === 0. Actual: ' + (63 >> 12));
+}
+
+
+if (127 >> 12 !== 0) {
+ $ERROR('#392: 127 >> 12 === 0. Actual: ' + (127 >> 12));
+}
+
+
+if (255 >> 12 !== 0) {
+ $ERROR('#393: 255 >> 12 === 0. Actual: ' + (255 >> 12));
+}
+
+
+if (511 >> 12 !== 0) {
+ $ERROR('#394: 511 >> 12 === 0. Actual: ' + (511 >> 12));
+}
+
+
+if (1023 >> 12 !== 0) {
+ $ERROR('#395: 1023 >> 12 === 0. Actual: ' + (1023 >> 12));
+}
+
+
+if (2047 >> 12 !== 0) {
+ $ERROR('#396: 2047 >> 12 === 0. Actual: ' + (2047 >> 12));
+}
+
+
+if (4095 >> 12 !== 0) {
+ $ERROR('#397: 4095 >> 12 === 0. Actual: ' + (4095 >> 12));
+}
+
+
+if (8191 >> 12 !== 1) {
+ $ERROR('#398: 8191 >> 12 === 1. Actual: ' + (8191 >> 12));
+}
+
+
+if (16383 >> 12 !== 3) {
+ $ERROR('#399: 16383 >> 12 === 3. Actual: ' + (16383 >> 12));
+}
+
+
+if (32767 >> 12 !== 7) {
+ $ERROR('#400: 32767 >> 12 === 7. Actual: ' + (32767 >> 12));
+}
+
+
+if (65535 >> 12 !== 15) {
+ $ERROR('#401: 65535 >> 12 === 15. Actual: ' + (65535 >> 12));
+}
+
+
+if (131071 >> 12 !== 31) {
+ $ERROR('#402: 131071 >> 12 === 31. Actual: ' + (131071 >> 12));
+}
+
+
+if (262143 >> 12 !== 63) {
+ $ERROR('#403: 262143 >> 12 === 63. Actual: ' + (262143 >> 12));
+}
+
+
+if (524287 >> 12 !== 127) {
+ $ERROR('#404: 524287 >> 12 === 127. Actual: ' + (524287 >> 12));
+}
+
+
+if (1048575 >> 12 !== 255) {
+ $ERROR('#405: 1048575 >> 12 === 255. Actual: ' + (1048575 >> 12));
+}
+
+
+if (2097151 >> 12 !== 511) {
+ $ERROR('#406: 2097151 >> 12 === 511. Actual: ' + (2097151 >> 12));
+}
+
+
+if (4194303 >> 12 !== 1023) {
+ $ERROR('#407: 4194303 >> 12 === 1023. Actual: ' + (4194303 >> 12));
+}
+
+
+if (8388607 >> 12 !== 2047) {
+ $ERROR('#408: 8388607 >> 12 === 2047. Actual: ' + (8388607 >> 12));
+}
+
+
+if (16777215 >> 12 !== 4095) {
+ $ERROR('#409: 16777215 >> 12 === 4095. Actual: ' + (16777215 >> 12));
+}
+
+
+if (33554431 >> 12 !== 8191) {
+ $ERROR('#410: 33554431 >> 12 === 8191. Actual: ' + (33554431 >> 12));
+}
+
+
+if (67108863 >> 12 !== 16383) {
+ $ERROR('#411: 67108863 >> 12 === 16383. Actual: ' + (67108863 >> 12));
+}
+
+
+if (134217727 >> 12 !== 32767) {
+ $ERROR('#412: 134217727 >> 12 === 32767. Actual: ' + (134217727 >> 12));
+}
+
+
+if (268435455 >> 12 !== 65535) {
+ $ERROR('#413: 268435455 >> 12 === 65535. Actual: ' + (268435455 >> 12));
+}
+
+
+if (536870911 >> 12 !== 131071) {
+ $ERROR('#414: 536870911 >> 12 === 131071. Actual: ' + (536870911 >> 12));
+}
+
+
+if (1073741823 >> 12 !== 262143) {
+ $ERROR('#415: 1073741823 >> 12 === 262143. Actual: ' + (1073741823 >> 12));
+}
+
+
+if (2147483647 >> 12 !== 524287) {
+ $ERROR('#416: 2147483647 >> 12 === 524287. Actual: ' + (2147483647 >> 12));
+}
+
+
+if (0 >> 13 !== 0) {
+ $ERROR('#417: 0 >> 13 === 0. Actual: ' + (0 >> 13));
+}
+
+
+if (1 >> 13 !== 0) {
+ $ERROR('#418: 1 >> 13 === 0. Actual: ' + (1 >> 13));
+}
+
+
+if (3 >> 13 !== 0) {
+ $ERROR('#419: 3 >> 13 === 0. Actual: ' + (3 >> 13));
+}
+
+
+if (7 >> 13 !== 0) {
+ $ERROR('#420: 7 >> 13 === 0. Actual: ' + (7 >> 13));
+}
+
+
+if (15 >> 13 !== 0) {
+ $ERROR('#421: 15 >> 13 === 0. Actual: ' + (15 >> 13));
+}
+
+
+if (31 >> 13 !== 0) {
+ $ERROR('#422: 31 >> 13 === 0. Actual: ' + (31 >> 13));
+}
+
+
+if (63 >> 13 !== 0) {
+ $ERROR('#423: 63 >> 13 === 0. Actual: ' + (63 >> 13));
+}
+
+
+if (127 >> 13 !== 0) {
+ $ERROR('#424: 127 >> 13 === 0. Actual: ' + (127 >> 13));
+}
+
+
+if (255 >> 13 !== 0) {
+ $ERROR('#425: 255 >> 13 === 0. Actual: ' + (255 >> 13));
+}
+
+
+if (511 >> 13 !== 0) {
+ $ERROR('#426: 511 >> 13 === 0. Actual: ' + (511 >> 13));
+}
+
+
+if (1023 >> 13 !== 0) {
+ $ERROR('#427: 1023 >> 13 === 0. Actual: ' + (1023 >> 13));
+}
+
+
+if (2047 >> 13 !== 0) {
+ $ERROR('#428: 2047 >> 13 === 0. Actual: ' + (2047 >> 13));
+}
+
+
+if (4095 >> 13 !== 0) {
+ $ERROR('#429: 4095 >> 13 === 0. Actual: ' + (4095 >> 13));
+}
+
+
+if (8191 >> 13 !== 0) {
+ $ERROR('#430: 8191 >> 13 === 0. Actual: ' + (8191 >> 13));
+}
+
+
+if (16383 >> 13 !== 1) {
+ $ERROR('#431: 16383 >> 13 === 1. Actual: ' + (16383 >> 13));
+}
+
+
+if (32767 >> 13 !== 3) {
+ $ERROR('#432: 32767 >> 13 === 3. Actual: ' + (32767 >> 13));
+}
+
+
+if (65535 >> 13 !== 7) {
+ $ERROR('#433: 65535 >> 13 === 7. Actual: ' + (65535 >> 13));
+}
+
+
+if (131071 >> 13 !== 15) {
+ $ERROR('#434: 131071 >> 13 === 15. Actual: ' + (131071 >> 13));
+}
+
+
+if (262143 >> 13 !== 31) {
+ $ERROR('#435: 262143 >> 13 === 31. Actual: ' + (262143 >> 13));
+}
+
+
+if (524287 >> 13 !== 63) {
+ $ERROR('#436: 524287 >> 13 === 63. Actual: ' + (524287 >> 13));
+}
+
+
+if (1048575 >> 13 !== 127) {
+ $ERROR('#437: 1048575 >> 13 === 127. Actual: ' + (1048575 >> 13));
+}
+
+
+if (2097151 >> 13 !== 255) {
+ $ERROR('#438: 2097151 >> 13 === 255. Actual: ' + (2097151 >> 13));
+}
+
+
+if (4194303 >> 13 !== 511) {
+ $ERROR('#439: 4194303 >> 13 === 511. Actual: ' + (4194303 >> 13));
+}
+
+
+if (8388607 >> 13 !== 1023) {
+ $ERROR('#440: 8388607 >> 13 === 1023. Actual: ' + (8388607 >> 13));
+}
+
+
+if (16777215 >> 13 !== 2047) {
+ $ERROR('#441: 16777215 >> 13 === 2047. Actual: ' + (16777215 >> 13));
+}
+
+
+if (33554431 >> 13 !== 4095) {
+ $ERROR('#442: 33554431 >> 13 === 4095. Actual: ' + (33554431 >> 13));
+}
+
+
+if (67108863 >> 13 !== 8191) {
+ $ERROR('#443: 67108863 >> 13 === 8191. Actual: ' + (67108863 >> 13));
+}
+
+
+if (134217727 >> 13 !== 16383) {
+ $ERROR('#444: 134217727 >> 13 === 16383. Actual: ' + (134217727 >> 13));
+}
+
+
+if (268435455 >> 13 !== 32767) {
+ $ERROR('#445: 268435455 >> 13 === 32767. Actual: ' + (268435455 >> 13));
+}
+
+
+if (536870911 >> 13 !== 65535) {
+ $ERROR('#446: 536870911 >> 13 === 65535. Actual: ' + (536870911 >> 13));
+}
+
+
+if (1073741823 >> 13 !== 131071) {
+ $ERROR('#447: 1073741823 >> 13 === 131071. Actual: ' + (1073741823 >> 13));
+}
+
+
+if (2147483647 >> 13 !== 262143) {
+ $ERROR('#448: 2147483647 >> 13 === 262143. Actual: ' + (2147483647 >> 13));
+}
+
+
+if (0 >> 14 !== 0) {
+ $ERROR('#449: 0 >> 14 === 0. Actual: ' + (0 >> 14));
+}
+
+
+if (1 >> 14 !== 0) {
+ $ERROR('#450: 1 >> 14 === 0. Actual: ' + (1 >> 14));
+}
+
+
+if (3 >> 14 !== 0) {
+ $ERROR('#451: 3 >> 14 === 0. Actual: ' + (3 >> 14));
+}
+
+
+if (7 >> 14 !== 0) {
+ $ERROR('#452: 7 >> 14 === 0. Actual: ' + (7 >> 14));
+}
+
+
+if (15 >> 14 !== 0) {
+ $ERROR('#453: 15 >> 14 === 0. Actual: ' + (15 >> 14));
+}
+
+
+if (31 >> 14 !== 0) {
+ $ERROR('#454: 31 >> 14 === 0. Actual: ' + (31 >> 14));
+}
+
+
+if (63 >> 14 !== 0) {
+ $ERROR('#455: 63 >> 14 === 0. Actual: ' + (63 >> 14));
+}
+
+
+if (127 >> 14 !== 0) {
+ $ERROR('#456: 127 >> 14 === 0. Actual: ' + (127 >> 14));
+}
+
+
+if (255 >> 14 !== 0) {
+ $ERROR('#457: 255 >> 14 === 0. Actual: ' + (255 >> 14));
+}
+
+
+if (511 >> 14 !== 0) {
+ $ERROR('#458: 511 >> 14 === 0. Actual: ' + (511 >> 14));
+}
+
+
+if (1023 >> 14 !== 0) {
+ $ERROR('#459: 1023 >> 14 === 0. Actual: ' + (1023 >> 14));
+}
+
+
+if (2047 >> 14 !== 0) {
+ $ERROR('#460: 2047 >> 14 === 0. Actual: ' + (2047 >> 14));
+}
+
+
+if (4095 >> 14 !== 0) {
+ $ERROR('#461: 4095 >> 14 === 0. Actual: ' + (4095 >> 14));
+}
+
+
+if (8191 >> 14 !== 0) {
+ $ERROR('#462: 8191 >> 14 === 0. Actual: ' + (8191 >> 14));
+}
+
+
+if (16383 >> 14 !== 0) {
+ $ERROR('#463: 16383 >> 14 === 0. Actual: ' + (16383 >> 14));
+}
+
+
+if (32767 >> 14 !== 1) {
+ $ERROR('#464: 32767 >> 14 === 1. Actual: ' + (32767 >> 14));
+}
+
+
+if (65535 >> 14 !== 3) {
+ $ERROR('#465: 65535 >> 14 === 3. Actual: ' + (65535 >> 14));
+}
+
+
+if (131071 >> 14 !== 7) {
+ $ERROR('#466: 131071 >> 14 === 7. Actual: ' + (131071 >> 14));
+}
+
+
+if (262143 >> 14 !== 15) {
+ $ERROR('#467: 262143 >> 14 === 15. Actual: ' + (262143 >> 14));
+}
+
+
+if (524287 >> 14 !== 31) {
+ $ERROR('#468: 524287 >> 14 === 31. Actual: ' + (524287 >> 14));
+}
+
+
+if (1048575 >> 14 !== 63) {
+ $ERROR('#469: 1048575 >> 14 === 63. Actual: ' + (1048575 >> 14));
+}
+
+
+if (2097151 >> 14 !== 127) {
+ $ERROR('#470: 2097151 >> 14 === 127. Actual: ' + (2097151 >> 14));
+}
+
+
+if (4194303 >> 14 !== 255) {
+ $ERROR('#471: 4194303 >> 14 === 255. Actual: ' + (4194303 >> 14));
+}
+
+
+if (8388607 >> 14 !== 511) {
+ $ERROR('#472: 8388607 >> 14 === 511. Actual: ' + (8388607 >> 14));
+}
+
+
+if (16777215 >> 14 !== 1023) {
+ $ERROR('#473: 16777215 >> 14 === 1023. Actual: ' + (16777215 >> 14));
+}
+
+
+if (33554431 >> 14 !== 2047) {
+ $ERROR('#474: 33554431 >> 14 === 2047. Actual: ' + (33554431 >> 14));
+}
+
+
+if (67108863 >> 14 !== 4095) {
+ $ERROR('#475: 67108863 >> 14 === 4095. Actual: ' + (67108863 >> 14));
+}
+
+
+if (134217727 >> 14 !== 8191) {
+ $ERROR('#476: 134217727 >> 14 === 8191. Actual: ' + (134217727 >> 14));
+}
+
+
+if (268435455 >> 14 !== 16383) {
+ $ERROR('#477: 268435455 >> 14 === 16383. Actual: ' + (268435455 >> 14));
+}
+
+
+if (536870911 >> 14 !== 32767) {
+ $ERROR('#478: 536870911 >> 14 === 32767. Actual: ' + (536870911 >> 14));
+}
+
+
+if (1073741823 >> 14 !== 65535) {
+ $ERROR('#479: 1073741823 >> 14 === 65535. Actual: ' + (1073741823 >> 14));
+}
+
+
+if (2147483647 >> 14 !== 131071) {
+ $ERROR('#480: 2147483647 >> 14 === 131071. Actual: ' + (2147483647 >> 14));
+}
+
+
+if (0 >> 15 !== 0) {
+ $ERROR('#481: 0 >> 15 === 0. Actual: ' + (0 >> 15));
+}
+
+
+if (1 >> 15 !== 0) {
+ $ERROR('#482: 1 >> 15 === 0. Actual: ' + (1 >> 15));
+}
+
+
+if (3 >> 15 !== 0) {
+ $ERROR('#483: 3 >> 15 === 0. Actual: ' + (3 >> 15));
+}
+
+
+if (7 >> 15 !== 0) {
+ $ERROR('#484: 7 >> 15 === 0. Actual: ' + (7 >> 15));
+}
+
+
+if (15 >> 15 !== 0) {
+ $ERROR('#485: 15 >> 15 === 0. Actual: ' + (15 >> 15));
+}
+
+
+if (31 >> 15 !== 0) {
+ $ERROR('#486: 31 >> 15 === 0. Actual: ' + (31 >> 15));
+}
+
+
+if (63 >> 15 !== 0) {
+ $ERROR('#487: 63 >> 15 === 0. Actual: ' + (63 >> 15));
+}
+
+
+if (127 >> 15 !== 0) {
+ $ERROR('#488: 127 >> 15 === 0. Actual: ' + (127 >> 15));
+}
+
+
+if (255 >> 15 !== 0) {
+ $ERROR('#489: 255 >> 15 === 0. Actual: ' + (255 >> 15));
+}
+
+
+if (511 >> 15 !== 0) {
+ $ERROR('#490: 511 >> 15 === 0. Actual: ' + (511 >> 15));
+}
+
+
+if (1023 >> 15 !== 0) {
+ $ERROR('#491: 1023 >> 15 === 0. Actual: ' + (1023 >> 15));
+}
+
+
+if (2047 >> 15 !== 0) {
+ $ERROR('#492: 2047 >> 15 === 0. Actual: ' + (2047 >> 15));
+}
+
+
+if (4095 >> 15 !== 0) {
+ $ERROR('#493: 4095 >> 15 === 0. Actual: ' + (4095 >> 15));
+}
+
+
+if (8191 >> 15 !== 0) {
+ $ERROR('#494: 8191 >> 15 === 0. Actual: ' + (8191 >> 15));
+}
+
+
+if (16383 >> 15 !== 0) {
+ $ERROR('#495: 16383 >> 15 === 0. Actual: ' + (16383 >> 15));
+}
+
+
+if (32767 >> 15 !== 0) {
+ $ERROR('#496: 32767 >> 15 === 0. Actual: ' + (32767 >> 15));
+}
+
+
+if (65535 >> 15 !== 1) {
+ $ERROR('#497: 65535 >> 15 === 1. Actual: ' + (65535 >> 15));
+}
+
+
+if (131071 >> 15 !== 3) {
+ $ERROR('#498: 131071 >> 15 === 3. Actual: ' + (131071 >> 15));
+}
+
+
+if (262143 >> 15 !== 7) {
+ $ERROR('#499: 262143 >> 15 === 7. Actual: ' + (262143 >> 15));
+}
+
+
+if (524287 >> 15 !== 15) {
+ $ERROR('#500: 524287 >> 15 === 15. Actual: ' + (524287 >> 15));
+}
+
+
+if (1048575 >> 15 !== 31) {
+ $ERROR('#501: 1048575 >> 15 === 31. Actual: ' + (1048575 >> 15));
+}
+
+
+if (2097151 >> 15 !== 63) {
+ $ERROR('#502: 2097151 >> 15 === 63. Actual: ' + (2097151 >> 15));
+}
+
+
+if (4194303 >> 15 !== 127) {
+ $ERROR('#503: 4194303 >> 15 === 127. Actual: ' + (4194303 >> 15));
+}
+
+
+if (8388607 >> 15 !== 255) {
+ $ERROR('#504: 8388607 >> 15 === 255. Actual: ' + (8388607 >> 15));
+}
+
+
+if (16777215 >> 15 !== 511) {
+ $ERROR('#505: 16777215 >> 15 === 511. Actual: ' + (16777215 >> 15));
+}
+
+
+if (33554431 >> 15 !== 1023) {
+ $ERROR('#506: 33554431 >> 15 === 1023. Actual: ' + (33554431 >> 15));
+}
+
+
+if (67108863 >> 15 !== 2047) {
+ $ERROR('#507: 67108863 >> 15 === 2047. Actual: ' + (67108863 >> 15));
+}
+
+
+if (134217727 >> 15 !== 4095) {
+ $ERROR('#508: 134217727 >> 15 === 4095. Actual: ' + (134217727 >> 15));
+}
+
+
+if (268435455 >> 15 !== 8191) {
+ $ERROR('#509: 268435455 >> 15 === 8191. Actual: ' + (268435455 >> 15));
+}
+
+
+if (536870911 >> 15 !== 16383) {
+ $ERROR('#510: 536870911 >> 15 === 16383. Actual: ' + (536870911 >> 15));
+}
+
+
+if (1073741823 >> 15 !== 32767) {
+ $ERROR('#511: 1073741823 >> 15 === 32767. Actual: ' + (1073741823 >> 15));
+}
+
+
+if (2147483647 >> 15 !== 65535) {
+ $ERROR('#512: 2147483647 >> 15 === 65535. Actual: ' + (2147483647 >> 15));
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A4_T4.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A4_T4.js
new file mode 100644
index 000000000..04c473a1f
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A4_T4.js
@@ -0,0 +1,2565 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A4_T4;
+ * @section: 11.7.2;
+ * @assertion: Check x >> y operator in distinct points;
+ * @description: ShiftExpression = 2^n - 1, n = 16...31;
+ */
+
+//CHECK
+
+if (0 >> 16 !== 0) {
+ $ERROR('#513: 0 >> 16 === 0. Actual: ' + (0 >> 16));
+}
+
+
+if (1 >> 16 !== 0) {
+ $ERROR('#514: 1 >> 16 === 0. Actual: ' + (1 >> 16));
+}
+
+
+if (3 >> 16 !== 0) {
+ $ERROR('#515: 3 >> 16 === 0. Actual: ' + (3 >> 16));
+}
+
+
+if (7 >> 16 !== 0) {
+ $ERROR('#516: 7 >> 16 === 0. Actual: ' + (7 >> 16));
+}
+
+
+if (15 >> 16 !== 0) {
+ $ERROR('#517: 15 >> 16 === 0. Actual: ' + (15 >> 16));
+}
+
+
+if (31 >> 16 !== 0) {
+ $ERROR('#518: 31 >> 16 === 0. Actual: ' + (31 >> 16));
+}
+
+
+if (63 >> 16 !== 0) {
+ $ERROR('#519: 63 >> 16 === 0. Actual: ' + (63 >> 16));
+}
+
+
+if (127 >> 16 !== 0) {
+ $ERROR('#520: 127 >> 16 === 0. Actual: ' + (127 >> 16));
+}
+
+
+if (255 >> 16 !== 0) {
+ $ERROR('#521: 255 >> 16 === 0. Actual: ' + (255 >> 16));
+}
+
+
+if (511 >> 16 !== 0) {
+ $ERROR('#522: 511 >> 16 === 0. Actual: ' + (511 >> 16));
+}
+
+
+if (1023 >> 16 !== 0) {
+ $ERROR('#523: 1023 >> 16 === 0. Actual: ' + (1023 >> 16));
+}
+
+
+if (2047 >> 16 !== 0) {
+ $ERROR('#524: 2047 >> 16 === 0. Actual: ' + (2047 >> 16));
+}
+
+
+if (4095 >> 16 !== 0) {
+ $ERROR('#525: 4095 >> 16 === 0. Actual: ' + (4095 >> 16));
+}
+
+
+if (8191 >> 16 !== 0) {
+ $ERROR('#526: 8191 >> 16 === 0. Actual: ' + (8191 >> 16));
+}
+
+
+if (16383 >> 16 !== 0) {
+ $ERROR('#527: 16383 >> 16 === 0. Actual: ' + (16383 >> 16));
+}
+
+
+if (32767 >> 16 !== 0) {
+ $ERROR('#528: 32767 >> 16 === 0. Actual: ' + (32767 >> 16));
+}
+
+
+if (65535 >> 16 !== 0) {
+ $ERROR('#529: 65535 >> 16 === 0. Actual: ' + (65535 >> 16));
+}
+
+
+if (131071 >> 16 !== 1) {
+ $ERROR('#530: 131071 >> 16 === 1. Actual: ' + (131071 >> 16));
+}
+
+
+if (262143 >> 16 !== 3) {
+ $ERROR('#531: 262143 >> 16 === 3. Actual: ' + (262143 >> 16));
+}
+
+
+if (524287 >> 16 !== 7) {
+ $ERROR('#532: 524287 >> 16 === 7. Actual: ' + (524287 >> 16));
+}
+
+
+if (1048575 >> 16 !== 15) {
+ $ERROR('#533: 1048575 >> 16 === 15. Actual: ' + (1048575 >> 16));
+}
+
+
+if (2097151 >> 16 !== 31) {
+ $ERROR('#534: 2097151 >> 16 === 31. Actual: ' + (2097151 >> 16));
+}
+
+
+if (4194303 >> 16 !== 63) {
+ $ERROR('#535: 4194303 >> 16 === 63. Actual: ' + (4194303 >> 16));
+}
+
+
+if (8388607 >> 16 !== 127) {
+ $ERROR('#536: 8388607 >> 16 === 127. Actual: ' + (8388607 >> 16));
+}
+
+
+if (16777215 >> 16 !== 255) {
+ $ERROR('#537: 16777215 >> 16 === 255. Actual: ' + (16777215 >> 16));
+}
+
+
+if (33554431 >> 16 !== 511) {
+ $ERROR('#538: 33554431 >> 16 === 511. Actual: ' + (33554431 >> 16));
+}
+
+
+if (67108863 >> 16 !== 1023) {
+ $ERROR('#539: 67108863 >> 16 === 1023. Actual: ' + (67108863 >> 16));
+}
+
+
+if (134217727 >> 16 !== 2047) {
+ $ERROR('#540: 134217727 >> 16 === 2047. Actual: ' + (134217727 >> 16));
+}
+
+
+if (268435455 >> 16 !== 4095) {
+ $ERROR('#541: 268435455 >> 16 === 4095. Actual: ' + (268435455 >> 16));
+}
+
+
+if (536870911 >> 16 !== 8191) {
+ $ERROR('#542: 536870911 >> 16 === 8191. Actual: ' + (536870911 >> 16));
+}
+
+
+if (1073741823 >> 16 !== 16383) {
+ $ERROR('#543: 1073741823 >> 16 === 16383. Actual: ' + (1073741823 >> 16));
+}
+
+
+if (2147483647 >> 16 !== 32767) {
+ $ERROR('#544: 2147483647 >> 16 === 32767. Actual: ' + (2147483647 >> 16));
+}
+
+
+if (0 >> 17 !== 0) {
+ $ERROR('#545: 0 >> 17 === 0. Actual: ' + (0 >> 17));
+}
+
+
+if (1 >> 17 !== 0) {
+ $ERROR('#546: 1 >> 17 === 0. Actual: ' + (1 >> 17));
+}
+
+
+if (3 >> 17 !== 0) {
+ $ERROR('#547: 3 >> 17 === 0. Actual: ' + (3 >> 17));
+}
+
+
+if (7 >> 17 !== 0) {
+ $ERROR('#548: 7 >> 17 === 0. Actual: ' + (7 >> 17));
+}
+
+
+if (15 >> 17 !== 0) {
+ $ERROR('#549: 15 >> 17 === 0. Actual: ' + (15 >> 17));
+}
+
+
+if (31 >> 17 !== 0) {
+ $ERROR('#550: 31 >> 17 === 0. Actual: ' + (31 >> 17));
+}
+
+
+if (63 >> 17 !== 0) {
+ $ERROR('#551: 63 >> 17 === 0. Actual: ' + (63 >> 17));
+}
+
+
+if (127 >> 17 !== 0) {
+ $ERROR('#552: 127 >> 17 === 0. Actual: ' + (127 >> 17));
+}
+
+
+if (255 >> 17 !== 0) {
+ $ERROR('#553: 255 >> 17 === 0. Actual: ' + (255 >> 17));
+}
+
+
+if (511 >> 17 !== 0) {
+ $ERROR('#554: 511 >> 17 === 0. Actual: ' + (511 >> 17));
+}
+
+
+if (1023 >> 17 !== 0) {
+ $ERROR('#555: 1023 >> 17 === 0. Actual: ' + (1023 >> 17));
+}
+
+
+if (2047 >> 17 !== 0) {
+ $ERROR('#556: 2047 >> 17 === 0. Actual: ' + (2047 >> 17));
+}
+
+
+if (4095 >> 17 !== 0) {
+ $ERROR('#557: 4095 >> 17 === 0. Actual: ' + (4095 >> 17));
+}
+
+
+if (8191 >> 17 !== 0) {
+ $ERROR('#558: 8191 >> 17 === 0. Actual: ' + (8191 >> 17));
+}
+
+
+if (16383 >> 17 !== 0) {
+ $ERROR('#559: 16383 >> 17 === 0. Actual: ' + (16383 >> 17));
+}
+
+
+if (32767 >> 17 !== 0) {
+ $ERROR('#560: 32767 >> 17 === 0. Actual: ' + (32767 >> 17));
+}
+
+
+if (65535 >> 17 !== 0) {
+ $ERROR('#561: 65535 >> 17 === 0. Actual: ' + (65535 >> 17));
+}
+
+
+if (131071 >> 17 !== 0) {
+ $ERROR('#562: 131071 >> 17 === 0. Actual: ' + (131071 >> 17));
+}
+
+
+if (262143 >> 17 !== 1) {
+ $ERROR('#563: 262143 >> 17 === 1. Actual: ' + (262143 >> 17));
+}
+
+
+if (524287 >> 17 !== 3) {
+ $ERROR('#564: 524287 >> 17 === 3. Actual: ' + (524287 >> 17));
+}
+
+
+if (1048575 >> 17 !== 7) {
+ $ERROR('#565: 1048575 >> 17 === 7. Actual: ' + (1048575 >> 17));
+}
+
+
+if (2097151 >> 17 !== 15) {
+ $ERROR('#566: 2097151 >> 17 === 15. Actual: ' + (2097151 >> 17));
+}
+
+
+if (4194303 >> 17 !== 31) {
+ $ERROR('#567: 4194303 >> 17 === 31. Actual: ' + (4194303 >> 17));
+}
+
+
+if (8388607 >> 17 !== 63) {
+ $ERROR('#568: 8388607 >> 17 === 63. Actual: ' + (8388607 >> 17));
+}
+
+
+if (16777215 >> 17 !== 127) {
+ $ERROR('#569: 16777215 >> 17 === 127. Actual: ' + (16777215 >> 17));
+}
+
+
+if (33554431 >> 17 !== 255) {
+ $ERROR('#570: 33554431 >> 17 === 255. Actual: ' + (33554431 >> 17));
+}
+
+
+if (67108863 >> 17 !== 511) {
+ $ERROR('#571: 67108863 >> 17 === 511. Actual: ' + (67108863 >> 17));
+}
+
+
+if (134217727 >> 17 !== 1023) {
+ $ERROR('#572: 134217727 >> 17 === 1023. Actual: ' + (134217727 >> 17));
+}
+
+
+if (268435455 >> 17 !== 2047) {
+ $ERROR('#573: 268435455 >> 17 === 2047. Actual: ' + (268435455 >> 17));
+}
+
+
+if (536870911 >> 17 !== 4095) {
+ $ERROR('#574: 536870911 >> 17 === 4095. Actual: ' + (536870911 >> 17));
+}
+
+
+if (1073741823 >> 17 !== 8191) {
+ $ERROR('#575: 1073741823 >> 17 === 8191. Actual: ' + (1073741823 >> 17));
+}
+
+
+if (2147483647 >> 17 !== 16383) {
+ $ERROR('#576: 2147483647 >> 17 === 16383. Actual: ' + (2147483647 >> 17));
+}
+
+
+if (0 >> 18 !== 0) {
+ $ERROR('#577: 0 >> 18 === 0. Actual: ' + (0 >> 18));
+}
+
+
+if (1 >> 18 !== 0) {
+ $ERROR('#578: 1 >> 18 === 0. Actual: ' + (1 >> 18));
+}
+
+
+if (3 >> 18 !== 0) {
+ $ERROR('#579: 3 >> 18 === 0. Actual: ' + (3 >> 18));
+}
+
+
+if (7 >> 18 !== 0) {
+ $ERROR('#580: 7 >> 18 === 0. Actual: ' + (7 >> 18));
+}
+
+
+if (15 >> 18 !== 0) {
+ $ERROR('#581: 15 >> 18 === 0. Actual: ' + (15 >> 18));
+}
+
+
+if (31 >> 18 !== 0) {
+ $ERROR('#582: 31 >> 18 === 0. Actual: ' + (31 >> 18));
+}
+
+
+if (63 >> 18 !== 0) {
+ $ERROR('#583: 63 >> 18 === 0. Actual: ' + (63 >> 18));
+}
+
+
+if (127 >> 18 !== 0) {
+ $ERROR('#584: 127 >> 18 === 0. Actual: ' + (127 >> 18));
+}
+
+
+if (255 >> 18 !== 0) {
+ $ERROR('#585: 255 >> 18 === 0. Actual: ' + (255 >> 18));
+}
+
+
+if (511 >> 18 !== 0) {
+ $ERROR('#586: 511 >> 18 === 0. Actual: ' + (511 >> 18));
+}
+
+
+if (1023 >> 18 !== 0) {
+ $ERROR('#587: 1023 >> 18 === 0. Actual: ' + (1023 >> 18));
+}
+
+
+if (2047 >> 18 !== 0) {
+ $ERROR('#588: 2047 >> 18 === 0. Actual: ' + (2047 >> 18));
+}
+
+
+if (4095 >> 18 !== 0) {
+ $ERROR('#589: 4095 >> 18 === 0. Actual: ' + (4095 >> 18));
+}
+
+
+if (8191 >> 18 !== 0) {
+ $ERROR('#590: 8191 >> 18 === 0. Actual: ' + (8191 >> 18));
+}
+
+
+if (16383 >> 18 !== 0) {
+ $ERROR('#591: 16383 >> 18 === 0. Actual: ' + (16383 >> 18));
+}
+
+
+if (32767 >> 18 !== 0) {
+ $ERROR('#592: 32767 >> 18 === 0. Actual: ' + (32767 >> 18));
+}
+
+
+if (65535 >> 18 !== 0) {
+ $ERROR('#593: 65535 >> 18 === 0. Actual: ' + (65535 >> 18));
+}
+
+
+if (131071 >> 18 !== 0) {
+ $ERROR('#594: 131071 >> 18 === 0. Actual: ' + (131071 >> 18));
+}
+
+
+if (262143 >> 18 !== 0) {
+ $ERROR('#595: 262143 >> 18 === 0. Actual: ' + (262143 >> 18));
+}
+
+
+if (524287 >> 18 !== 1) {
+ $ERROR('#596: 524287 >> 18 === 1. Actual: ' + (524287 >> 18));
+}
+
+
+if (1048575 >> 18 !== 3) {
+ $ERROR('#597: 1048575 >> 18 === 3. Actual: ' + (1048575 >> 18));
+}
+
+
+if (2097151 >> 18 !== 7) {
+ $ERROR('#598: 2097151 >> 18 === 7. Actual: ' + (2097151 >> 18));
+}
+
+
+if (4194303 >> 18 !== 15) {
+ $ERROR('#599: 4194303 >> 18 === 15. Actual: ' + (4194303 >> 18));
+}
+
+
+if (8388607 >> 18 !== 31) {
+ $ERROR('#600: 8388607 >> 18 === 31. Actual: ' + (8388607 >> 18));
+}
+
+
+if (16777215 >> 18 !== 63) {
+ $ERROR('#601: 16777215 >> 18 === 63. Actual: ' + (16777215 >> 18));
+}
+
+
+if (33554431 >> 18 !== 127) {
+ $ERROR('#602: 33554431 >> 18 === 127. Actual: ' + (33554431 >> 18));
+}
+
+
+if (67108863 >> 18 !== 255) {
+ $ERROR('#603: 67108863 >> 18 === 255. Actual: ' + (67108863 >> 18));
+}
+
+
+if (134217727 >> 18 !== 511) {
+ $ERROR('#604: 134217727 >> 18 === 511. Actual: ' + (134217727 >> 18));
+}
+
+
+if (268435455 >> 18 !== 1023) {
+ $ERROR('#605: 268435455 >> 18 === 1023. Actual: ' + (268435455 >> 18));
+}
+
+
+if (536870911 >> 18 !== 2047) {
+ $ERROR('#606: 536870911 >> 18 === 2047. Actual: ' + (536870911 >> 18));
+}
+
+
+if (1073741823 >> 18 !== 4095) {
+ $ERROR('#607: 1073741823 >> 18 === 4095. Actual: ' + (1073741823 >> 18));
+}
+
+
+if (2147483647 >> 18 !== 8191) {
+ $ERROR('#608: 2147483647 >> 18 === 8191. Actual: ' + (2147483647 >> 18));
+}
+
+
+if (0 >> 19 !== 0) {
+ $ERROR('#609: 0 >> 19 === 0. Actual: ' + (0 >> 19));
+}
+
+
+if (1 >> 19 !== 0) {
+ $ERROR('#610: 1 >> 19 === 0. Actual: ' + (1 >> 19));
+}
+
+
+if (3 >> 19 !== 0) {
+ $ERROR('#611: 3 >> 19 === 0. Actual: ' + (3 >> 19));
+}
+
+
+if (7 >> 19 !== 0) {
+ $ERROR('#612: 7 >> 19 === 0. Actual: ' + (7 >> 19));
+}
+
+
+if (15 >> 19 !== 0) {
+ $ERROR('#613: 15 >> 19 === 0. Actual: ' + (15 >> 19));
+}
+
+
+if (31 >> 19 !== 0) {
+ $ERROR('#614: 31 >> 19 === 0. Actual: ' + (31 >> 19));
+}
+
+
+if (63 >> 19 !== 0) {
+ $ERROR('#615: 63 >> 19 === 0. Actual: ' + (63 >> 19));
+}
+
+
+if (127 >> 19 !== 0) {
+ $ERROR('#616: 127 >> 19 === 0. Actual: ' + (127 >> 19));
+}
+
+
+if (255 >> 19 !== 0) {
+ $ERROR('#617: 255 >> 19 === 0. Actual: ' + (255 >> 19));
+}
+
+
+if (511 >> 19 !== 0) {
+ $ERROR('#618: 511 >> 19 === 0. Actual: ' + (511 >> 19));
+}
+
+
+if (1023 >> 19 !== 0) {
+ $ERROR('#619: 1023 >> 19 === 0. Actual: ' + (1023 >> 19));
+}
+
+
+if (2047 >> 19 !== 0) {
+ $ERROR('#620: 2047 >> 19 === 0. Actual: ' + (2047 >> 19));
+}
+
+
+if (4095 >> 19 !== 0) {
+ $ERROR('#621: 4095 >> 19 === 0. Actual: ' + (4095 >> 19));
+}
+
+
+if (8191 >> 19 !== 0) {
+ $ERROR('#622: 8191 >> 19 === 0. Actual: ' + (8191 >> 19));
+}
+
+
+if (16383 >> 19 !== 0) {
+ $ERROR('#623: 16383 >> 19 === 0. Actual: ' + (16383 >> 19));
+}
+
+
+if (32767 >> 19 !== 0) {
+ $ERROR('#624: 32767 >> 19 === 0. Actual: ' + (32767 >> 19));
+}
+
+
+if (65535 >> 19 !== 0) {
+ $ERROR('#625: 65535 >> 19 === 0. Actual: ' + (65535 >> 19));
+}
+
+
+if (131071 >> 19 !== 0) {
+ $ERROR('#626: 131071 >> 19 === 0. Actual: ' + (131071 >> 19));
+}
+
+
+if (262143 >> 19 !== 0) {
+ $ERROR('#627: 262143 >> 19 === 0. Actual: ' + (262143 >> 19));
+}
+
+
+if (524287 >> 19 !== 0) {
+ $ERROR('#628: 524287 >> 19 === 0. Actual: ' + (524287 >> 19));
+}
+
+
+if (1048575 >> 19 !== 1) {
+ $ERROR('#629: 1048575 >> 19 === 1. Actual: ' + (1048575 >> 19));
+}
+
+
+if (2097151 >> 19 !== 3) {
+ $ERROR('#630: 2097151 >> 19 === 3. Actual: ' + (2097151 >> 19));
+}
+
+
+if (4194303 >> 19 !== 7) {
+ $ERROR('#631: 4194303 >> 19 === 7. Actual: ' + (4194303 >> 19));
+}
+
+
+if (8388607 >> 19 !== 15) {
+ $ERROR('#632: 8388607 >> 19 === 15. Actual: ' + (8388607 >> 19));
+}
+
+
+if (16777215 >> 19 !== 31) {
+ $ERROR('#633: 16777215 >> 19 === 31. Actual: ' + (16777215 >> 19));
+}
+
+
+if (33554431 >> 19 !== 63) {
+ $ERROR('#634: 33554431 >> 19 === 63. Actual: ' + (33554431 >> 19));
+}
+
+
+if (67108863 >> 19 !== 127) {
+ $ERROR('#635: 67108863 >> 19 === 127. Actual: ' + (67108863 >> 19));
+}
+
+
+if (134217727 >> 19 !== 255) {
+ $ERROR('#636: 134217727 >> 19 === 255. Actual: ' + (134217727 >> 19));
+}
+
+
+if (268435455 >> 19 !== 511) {
+ $ERROR('#637: 268435455 >> 19 === 511. Actual: ' + (268435455 >> 19));
+}
+
+
+if (536870911 >> 19 !== 1023) {
+ $ERROR('#638: 536870911 >> 19 === 1023. Actual: ' + (536870911 >> 19));
+}
+
+
+if (1073741823 >> 19 !== 2047) {
+ $ERROR('#639: 1073741823 >> 19 === 2047. Actual: ' + (1073741823 >> 19));
+}
+
+
+if (2147483647 >> 19 !== 4095) {
+ $ERROR('#640: 2147483647 >> 19 === 4095. Actual: ' + (2147483647 >> 19));
+}
+
+
+if (0 >> 20 !== 0) {
+ $ERROR('#641: 0 >> 20 === 0. Actual: ' + (0 >> 20));
+}
+
+
+if (1 >> 20 !== 0) {
+ $ERROR('#642: 1 >> 20 === 0. Actual: ' + (1 >> 20));
+}
+
+
+if (3 >> 20 !== 0) {
+ $ERROR('#643: 3 >> 20 === 0. Actual: ' + (3 >> 20));
+}
+
+
+if (7 >> 20 !== 0) {
+ $ERROR('#644: 7 >> 20 === 0. Actual: ' + (7 >> 20));
+}
+
+
+if (15 >> 20 !== 0) {
+ $ERROR('#645: 15 >> 20 === 0. Actual: ' + (15 >> 20));
+}
+
+
+if (31 >> 20 !== 0) {
+ $ERROR('#646: 31 >> 20 === 0. Actual: ' + (31 >> 20));
+}
+
+
+if (63 >> 20 !== 0) {
+ $ERROR('#647: 63 >> 20 === 0. Actual: ' + (63 >> 20));
+}
+
+
+if (127 >> 20 !== 0) {
+ $ERROR('#648: 127 >> 20 === 0. Actual: ' + (127 >> 20));
+}
+
+
+if (255 >> 20 !== 0) {
+ $ERROR('#649: 255 >> 20 === 0. Actual: ' + (255 >> 20));
+}
+
+
+if (511 >> 20 !== 0) {
+ $ERROR('#650: 511 >> 20 === 0. Actual: ' + (511 >> 20));
+}
+
+
+if (1023 >> 20 !== 0) {
+ $ERROR('#651: 1023 >> 20 === 0. Actual: ' + (1023 >> 20));
+}
+
+
+if (2047 >> 20 !== 0) {
+ $ERROR('#652: 2047 >> 20 === 0. Actual: ' + (2047 >> 20));
+}
+
+
+if (4095 >> 20 !== 0) {
+ $ERROR('#653: 4095 >> 20 === 0. Actual: ' + (4095 >> 20));
+}
+
+
+if (8191 >> 20 !== 0) {
+ $ERROR('#654: 8191 >> 20 === 0. Actual: ' + (8191 >> 20));
+}
+
+
+if (16383 >> 20 !== 0) {
+ $ERROR('#655: 16383 >> 20 === 0. Actual: ' + (16383 >> 20));
+}
+
+
+if (32767 >> 20 !== 0) {
+ $ERROR('#656: 32767 >> 20 === 0. Actual: ' + (32767 >> 20));
+}
+
+
+if (65535 >> 20 !== 0) {
+ $ERROR('#657: 65535 >> 20 === 0. Actual: ' + (65535 >> 20));
+}
+
+
+if (131071 >> 20 !== 0) {
+ $ERROR('#658: 131071 >> 20 === 0. Actual: ' + (131071 >> 20));
+}
+
+
+if (262143 >> 20 !== 0) {
+ $ERROR('#659: 262143 >> 20 === 0. Actual: ' + (262143 >> 20));
+}
+
+
+if (524287 >> 20 !== 0) {
+ $ERROR('#660: 524287 >> 20 === 0. Actual: ' + (524287 >> 20));
+}
+
+
+if (1048575 >> 20 !== 0) {
+ $ERROR('#661: 1048575 >> 20 === 0. Actual: ' + (1048575 >> 20));
+}
+
+
+if (2097151 >> 20 !== 1) {
+ $ERROR('#662: 2097151 >> 20 === 1. Actual: ' + (2097151 >> 20));
+}
+
+
+if (4194303 >> 20 !== 3) {
+ $ERROR('#663: 4194303 >> 20 === 3. Actual: ' + (4194303 >> 20));
+}
+
+
+if (8388607 >> 20 !== 7) {
+ $ERROR('#664: 8388607 >> 20 === 7. Actual: ' + (8388607 >> 20));
+}
+
+
+if (16777215 >> 20 !== 15) {
+ $ERROR('#665: 16777215 >> 20 === 15. Actual: ' + (16777215 >> 20));
+}
+
+
+if (33554431 >> 20 !== 31) {
+ $ERROR('#666: 33554431 >> 20 === 31. Actual: ' + (33554431 >> 20));
+}
+
+
+if (67108863 >> 20 !== 63) {
+ $ERROR('#667: 67108863 >> 20 === 63. Actual: ' + (67108863 >> 20));
+}
+
+
+if (134217727 >> 20 !== 127) {
+ $ERROR('#668: 134217727 >> 20 === 127. Actual: ' + (134217727 >> 20));
+}
+
+
+if (268435455 >> 20 !== 255) {
+ $ERROR('#669: 268435455 >> 20 === 255. Actual: ' + (268435455 >> 20));
+}
+
+
+if (536870911 >> 20 !== 511) {
+ $ERROR('#670: 536870911 >> 20 === 511. Actual: ' + (536870911 >> 20));
+}
+
+
+if (1073741823 >> 20 !== 1023) {
+ $ERROR('#671: 1073741823 >> 20 === 1023. Actual: ' + (1073741823 >> 20));
+}
+
+
+if (2147483647 >> 20 !== 2047) {
+ $ERROR('#672: 2147483647 >> 20 === 2047. Actual: ' + (2147483647 >> 20));
+}
+
+
+if (0 >> 21 !== 0) {
+ $ERROR('#673: 0 >> 21 === 0. Actual: ' + (0 >> 21));
+}
+
+
+if (1 >> 21 !== 0) {
+ $ERROR('#674: 1 >> 21 === 0. Actual: ' + (1 >> 21));
+}
+
+
+if (3 >> 21 !== 0) {
+ $ERROR('#675: 3 >> 21 === 0. Actual: ' + (3 >> 21));
+}
+
+
+if (7 >> 21 !== 0) {
+ $ERROR('#676: 7 >> 21 === 0. Actual: ' + (7 >> 21));
+}
+
+
+if (15 >> 21 !== 0) {
+ $ERROR('#677: 15 >> 21 === 0. Actual: ' + (15 >> 21));
+}
+
+
+if (31 >> 21 !== 0) {
+ $ERROR('#678: 31 >> 21 === 0. Actual: ' + (31 >> 21));
+}
+
+
+if (63 >> 21 !== 0) {
+ $ERROR('#679: 63 >> 21 === 0. Actual: ' + (63 >> 21));
+}
+
+
+if (127 >> 21 !== 0) {
+ $ERROR('#680: 127 >> 21 === 0. Actual: ' + (127 >> 21));
+}
+
+
+if (255 >> 21 !== 0) {
+ $ERROR('#681: 255 >> 21 === 0. Actual: ' + (255 >> 21));
+}
+
+
+if (511 >> 21 !== 0) {
+ $ERROR('#682: 511 >> 21 === 0. Actual: ' + (511 >> 21));
+}
+
+
+if (1023 >> 21 !== 0) {
+ $ERROR('#683: 1023 >> 21 === 0. Actual: ' + (1023 >> 21));
+}
+
+
+if (2047 >> 21 !== 0) {
+ $ERROR('#684: 2047 >> 21 === 0. Actual: ' + (2047 >> 21));
+}
+
+
+if (4095 >> 21 !== 0) {
+ $ERROR('#685: 4095 >> 21 === 0. Actual: ' + (4095 >> 21));
+}
+
+
+if (8191 >> 21 !== 0) {
+ $ERROR('#686: 8191 >> 21 === 0. Actual: ' + (8191 >> 21));
+}
+
+
+if (16383 >> 21 !== 0) {
+ $ERROR('#687: 16383 >> 21 === 0. Actual: ' + (16383 >> 21));
+}
+
+
+if (32767 >> 21 !== 0) {
+ $ERROR('#688: 32767 >> 21 === 0. Actual: ' + (32767 >> 21));
+}
+
+
+if (65535 >> 21 !== 0) {
+ $ERROR('#689: 65535 >> 21 === 0. Actual: ' + (65535 >> 21));
+}
+
+
+if (131071 >> 21 !== 0) {
+ $ERROR('#690: 131071 >> 21 === 0. Actual: ' + (131071 >> 21));
+}
+
+
+if (262143 >> 21 !== 0) {
+ $ERROR('#691: 262143 >> 21 === 0. Actual: ' + (262143 >> 21));
+}
+
+
+if (524287 >> 21 !== 0) {
+ $ERROR('#692: 524287 >> 21 === 0. Actual: ' + (524287 >> 21));
+}
+
+
+if (1048575 >> 21 !== 0) {
+ $ERROR('#693: 1048575 >> 21 === 0. Actual: ' + (1048575 >> 21));
+}
+
+
+if (2097151 >> 21 !== 0) {
+ $ERROR('#694: 2097151 >> 21 === 0. Actual: ' + (2097151 >> 21));
+}
+
+
+if (4194303 >> 21 !== 1) {
+ $ERROR('#695: 4194303 >> 21 === 1. Actual: ' + (4194303 >> 21));
+}
+
+
+if (8388607 >> 21 !== 3) {
+ $ERROR('#696: 8388607 >> 21 === 3. Actual: ' + (8388607 >> 21));
+}
+
+
+if (16777215 >> 21 !== 7) {
+ $ERROR('#697: 16777215 >> 21 === 7. Actual: ' + (16777215 >> 21));
+}
+
+
+if (33554431 >> 21 !== 15) {
+ $ERROR('#698: 33554431 >> 21 === 15. Actual: ' + (33554431 >> 21));
+}
+
+
+if (67108863 >> 21 !== 31) {
+ $ERROR('#699: 67108863 >> 21 === 31. Actual: ' + (67108863 >> 21));
+}
+
+
+if (134217727 >> 21 !== 63) {
+ $ERROR('#700: 134217727 >> 21 === 63. Actual: ' + (134217727 >> 21));
+}
+
+
+if (268435455 >> 21 !== 127) {
+ $ERROR('#701: 268435455 >> 21 === 127. Actual: ' + (268435455 >> 21));
+}
+
+
+if (536870911 >> 21 !== 255) {
+ $ERROR('#702: 536870911 >> 21 === 255. Actual: ' + (536870911 >> 21));
+}
+
+
+if (1073741823 >> 21 !== 511) {
+ $ERROR('#703: 1073741823 >> 21 === 511. Actual: ' + (1073741823 >> 21));
+}
+
+
+if (2147483647 >> 21 !== 1023) {
+ $ERROR('#704: 2147483647 >> 21 === 1023. Actual: ' + (2147483647 >> 21));
+}
+
+
+if (0 >> 22 !== 0) {
+ $ERROR('#705: 0 >> 22 === 0. Actual: ' + (0 >> 22));
+}
+
+
+if (1 >> 22 !== 0) {
+ $ERROR('#706: 1 >> 22 === 0. Actual: ' + (1 >> 22));
+}
+
+
+if (3 >> 22 !== 0) {
+ $ERROR('#707: 3 >> 22 === 0. Actual: ' + (3 >> 22));
+}
+
+
+if (7 >> 22 !== 0) {
+ $ERROR('#708: 7 >> 22 === 0. Actual: ' + (7 >> 22));
+}
+
+
+if (15 >> 22 !== 0) {
+ $ERROR('#709: 15 >> 22 === 0. Actual: ' + (15 >> 22));
+}
+
+
+if (31 >> 22 !== 0) {
+ $ERROR('#710: 31 >> 22 === 0. Actual: ' + (31 >> 22));
+}
+
+
+if (63 >> 22 !== 0) {
+ $ERROR('#711: 63 >> 22 === 0. Actual: ' + (63 >> 22));
+}
+
+
+if (127 >> 22 !== 0) {
+ $ERROR('#712: 127 >> 22 === 0. Actual: ' + (127 >> 22));
+}
+
+
+if (255 >> 22 !== 0) {
+ $ERROR('#713: 255 >> 22 === 0. Actual: ' + (255 >> 22));
+}
+
+
+if (511 >> 22 !== 0) {
+ $ERROR('#714: 511 >> 22 === 0. Actual: ' + (511 >> 22));
+}
+
+
+if (1023 >> 22 !== 0) {
+ $ERROR('#715: 1023 >> 22 === 0. Actual: ' + (1023 >> 22));
+}
+
+
+if (2047 >> 22 !== 0) {
+ $ERROR('#716: 2047 >> 22 === 0. Actual: ' + (2047 >> 22));
+}
+
+
+if (4095 >> 22 !== 0) {
+ $ERROR('#717: 4095 >> 22 === 0. Actual: ' + (4095 >> 22));
+}
+
+
+if (8191 >> 22 !== 0) {
+ $ERROR('#718: 8191 >> 22 === 0. Actual: ' + (8191 >> 22));
+}
+
+
+if (16383 >> 22 !== 0) {
+ $ERROR('#719: 16383 >> 22 === 0. Actual: ' + (16383 >> 22));
+}
+
+
+if (32767 >> 22 !== 0) {
+ $ERROR('#720: 32767 >> 22 === 0. Actual: ' + (32767 >> 22));
+}
+
+
+if (65535 >> 22 !== 0) {
+ $ERROR('#721: 65535 >> 22 === 0. Actual: ' + (65535 >> 22));
+}
+
+
+if (131071 >> 22 !== 0) {
+ $ERROR('#722: 131071 >> 22 === 0. Actual: ' + (131071 >> 22));
+}
+
+
+if (262143 >> 22 !== 0) {
+ $ERROR('#723: 262143 >> 22 === 0. Actual: ' + (262143 >> 22));
+}
+
+
+if (524287 >> 22 !== 0) {
+ $ERROR('#724: 524287 >> 22 === 0. Actual: ' + (524287 >> 22));
+}
+
+
+if (1048575 >> 22 !== 0) {
+ $ERROR('#725: 1048575 >> 22 === 0. Actual: ' + (1048575 >> 22));
+}
+
+
+if (2097151 >> 22 !== 0) {
+ $ERROR('#726: 2097151 >> 22 === 0. Actual: ' + (2097151 >> 22));
+}
+
+
+if (4194303 >> 22 !== 0) {
+ $ERROR('#727: 4194303 >> 22 === 0. Actual: ' + (4194303 >> 22));
+}
+
+
+if (8388607 >> 22 !== 1) {
+ $ERROR('#728: 8388607 >> 22 === 1. Actual: ' + (8388607 >> 22));
+}
+
+
+if (16777215 >> 22 !== 3) {
+ $ERROR('#729: 16777215 >> 22 === 3. Actual: ' + (16777215 >> 22));
+}
+
+
+if (33554431 >> 22 !== 7) {
+ $ERROR('#730: 33554431 >> 22 === 7. Actual: ' + (33554431 >> 22));
+}
+
+
+if (67108863 >> 22 !== 15) {
+ $ERROR('#731: 67108863 >> 22 === 15. Actual: ' + (67108863 >> 22));
+}
+
+
+if (134217727 >> 22 !== 31) {
+ $ERROR('#732: 134217727 >> 22 === 31. Actual: ' + (134217727 >> 22));
+}
+
+
+if (268435455 >> 22 !== 63) {
+ $ERROR('#733: 268435455 >> 22 === 63. Actual: ' + (268435455 >> 22));
+}
+
+
+if (536870911 >> 22 !== 127) {
+ $ERROR('#734: 536870911 >> 22 === 127. Actual: ' + (536870911 >> 22));
+}
+
+
+if (1073741823 >> 22 !== 255) {
+ $ERROR('#735: 1073741823 >> 22 === 255. Actual: ' + (1073741823 >> 22));
+}
+
+
+if (2147483647 >> 22 !== 511) {
+ $ERROR('#736: 2147483647 >> 22 === 511. Actual: ' + (2147483647 >> 22));
+}
+
+
+if (0 >> 23 !== 0) {
+ $ERROR('#737: 0 >> 23 === 0. Actual: ' + (0 >> 23));
+}
+
+
+if (1 >> 23 !== 0) {
+ $ERROR('#738: 1 >> 23 === 0. Actual: ' + (1 >> 23));
+}
+
+
+if (3 >> 23 !== 0) {
+ $ERROR('#739: 3 >> 23 === 0. Actual: ' + (3 >> 23));
+}
+
+
+if (7 >> 23 !== 0) {
+ $ERROR('#740: 7 >> 23 === 0. Actual: ' + (7 >> 23));
+}
+
+
+if (15 >> 23 !== 0) {
+ $ERROR('#741: 15 >> 23 === 0. Actual: ' + (15 >> 23));
+}
+
+
+if (31 >> 23 !== 0) {
+ $ERROR('#742: 31 >> 23 === 0. Actual: ' + (31 >> 23));
+}
+
+
+if (63 >> 23 !== 0) {
+ $ERROR('#743: 63 >> 23 === 0. Actual: ' + (63 >> 23));
+}
+
+
+if (127 >> 23 !== 0) {
+ $ERROR('#744: 127 >> 23 === 0. Actual: ' + (127 >> 23));
+}
+
+
+if (255 >> 23 !== 0) {
+ $ERROR('#745: 255 >> 23 === 0. Actual: ' + (255 >> 23));
+}
+
+
+if (511 >> 23 !== 0) {
+ $ERROR('#746: 511 >> 23 === 0. Actual: ' + (511 >> 23));
+}
+
+
+if (1023 >> 23 !== 0) {
+ $ERROR('#747: 1023 >> 23 === 0. Actual: ' + (1023 >> 23));
+}
+
+
+if (2047 >> 23 !== 0) {
+ $ERROR('#748: 2047 >> 23 === 0. Actual: ' + (2047 >> 23));
+}
+
+
+if (4095 >> 23 !== 0) {
+ $ERROR('#749: 4095 >> 23 === 0. Actual: ' + (4095 >> 23));
+}
+
+
+if (8191 >> 23 !== 0) {
+ $ERROR('#750: 8191 >> 23 === 0. Actual: ' + (8191 >> 23));
+}
+
+
+if (16383 >> 23 !== 0) {
+ $ERROR('#751: 16383 >> 23 === 0. Actual: ' + (16383 >> 23));
+}
+
+
+if (32767 >> 23 !== 0) {
+ $ERROR('#752: 32767 >> 23 === 0. Actual: ' + (32767 >> 23));
+}
+
+
+if (65535 >> 23 !== 0) {
+ $ERROR('#753: 65535 >> 23 === 0. Actual: ' + (65535 >> 23));
+}
+
+
+if (131071 >> 23 !== 0) {
+ $ERROR('#754: 131071 >> 23 === 0. Actual: ' + (131071 >> 23));
+}
+
+
+if (262143 >> 23 !== 0) {
+ $ERROR('#755: 262143 >> 23 === 0. Actual: ' + (262143 >> 23));
+}
+
+
+if (524287 >> 23 !== 0) {
+ $ERROR('#756: 524287 >> 23 === 0. Actual: ' + (524287 >> 23));
+}
+
+
+if (1048575 >> 23 !== 0) {
+ $ERROR('#757: 1048575 >> 23 === 0. Actual: ' + (1048575 >> 23));
+}
+
+
+if (2097151 >> 23 !== 0) {
+ $ERROR('#758: 2097151 >> 23 === 0. Actual: ' + (2097151 >> 23));
+}
+
+
+if (4194303 >> 23 !== 0) {
+ $ERROR('#759: 4194303 >> 23 === 0. Actual: ' + (4194303 >> 23));
+}
+
+
+if (8388607 >> 23 !== 0) {
+ $ERROR('#760: 8388607 >> 23 === 0. Actual: ' + (8388607 >> 23));
+}
+
+
+if (16777215 >> 23 !== 1) {
+ $ERROR('#761: 16777215 >> 23 === 1. Actual: ' + (16777215 >> 23));
+}
+
+
+if (33554431 >> 23 !== 3) {
+ $ERROR('#762: 33554431 >> 23 === 3. Actual: ' + (33554431 >> 23));
+}
+
+
+if (67108863 >> 23 !== 7) {
+ $ERROR('#763: 67108863 >> 23 === 7. Actual: ' + (67108863 >> 23));
+}
+
+
+if (134217727 >> 23 !== 15) {
+ $ERROR('#764: 134217727 >> 23 === 15. Actual: ' + (134217727 >> 23));
+}
+
+
+if (268435455 >> 23 !== 31) {
+ $ERROR('#765: 268435455 >> 23 === 31. Actual: ' + (268435455 >> 23));
+}
+
+
+if (536870911 >> 23 !== 63) {
+ $ERROR('#766: 536870911 >> 23 === 63. Actual: ' + (536870911 >> 23));
+}
+
+
+if (1073741823 >> 23 !== 127) {
+ $ERROR('#767: 1073741823 >> 23 === 127. Actual: ' + (1073741823 >> 23));
+}
+
+
+if (2147483647 >> 23 !== 255) {
+ $ERROR('#768: 2147483647 >> 23 === 255. Actual: ' + (2147483647 >> 23));
+}
+
+
+if (0 >> 24 !== 0) {
+ $ERROR('#769: 0 >> 24 === 0. Actual: ' + (0 >> 24));
+}
+
+
+if (1 >> 24 !== 0) {
+ $ERROR('#770: 1 >> 24 === 0. Actual: ' + (1 >> 24));
+}
+
+
+if (3 >> 24 !== 0) {
+ $ERROR('#771: 3 >> 24 === 0. Actual: ' + (3 >> 24));
+}
+
+
+if (7 >> 24 !== 0) {
+ $ERROR('#772: 7 >> 24 === 0. Actual: ' + (7 >> 24));
+}
+
+
+if (15 >> 24 !== 0) {
+ $ERROR('#773: 15 >> 24 === 0. Actual: ' + (15 >> 24));
+}
+
+
+if (31 >> 24 !== 0) {
+ $ERROR('#774: 31 >> 24 === 0. Actual: ' + (31 >> 24));
+}
+
+
+if (63 >> 24 !== 0) {
+ $ERROR('#775: 63 >> 24 === 0. Actual: ' + (63 >> 24));
+}
+
+
+if (127 >> 24 !== 0) {
+ $ERROR('#776: 127 >> 24 === 0. Actual: ' + (127 >> 24));
+}
+
+
+if (255 >> 24 !== 0) {
+ $ERROR('#777: 255 >> 24 === 0. Actual: ' + (255 >> 24));
+}
+
+
+if (511 >> 24 !== 0) {
+ $ERROR('#778: 511 >> 24 === 0. Actual: ' + (511 >> 24));
+}
+
+
+if (1023 >> 24 !== 0) {
+ $ERROR('#779: 1023 >> 24 === 0. Actual: ' + (1023 >> 24));
+}
+
+
+if (2047 >> 24 !== 0) {
+ $ERROR('#780: 2047 >> 24 === 0. Actual: ' + (2047 >> 24));
+}
+
+
+if (4095 >> 24 !== 0) {
+ $ERROR('#781: 4095 >> 24 === 0. Actual: ' + (4095 >> 24));
+}
+
+
+if (8191 >> 24 !== 0) {
+ $ERROR('#782: 8191 >> 24 === 0. Actual: ' + (8191 >> 24));
+}
+
+
+if (16383 >> 24 !== 0) {
+ $ERROR('#783: 16383 >> 24 === 0. Actual: ' + (16383 >> 24));
+}
+
+
+if (32767 >> 24 !== 0) {
+ $ERROR('#784: 32767 >> 24 === 0. Actual: ' + (32767 >> 24));
+}
+
+
+if (65535 >> 24 !== 0) {
+ $ERROR('#785: 65535 >> 24 === 0. Actual: ' + (65535 >> 24));
+}
+
+
+if (131071 >> 24 !== 0) {
+ $ERROR('#786: 131071 >> 24 === 0. Actual: ' + (131071 >> 24));
+}
+
+
+if (262143 >> 24 !== 0) {
+ $ERROR('#787: 262143 >> 24 === 0. Actual: ' + (262143 >> 24));
+}
+
+
+if (524287 >> 24 !== 0) {
+ $ERROR('#788: 524287 >> 24 === 0. Actual: ' + (524287 >> 24));
+}
+
+
+if (1048575 >> 24 !== 0) {
+ $ERROR('#789: 1048575 >> 24 === 0. Actual: ' + (1048575 >> 24));
+}
+
+
+if (2097151 >> 24 !== 0) {
+ $ERROR('#790: 2097151 >> 24 === 0. Actual: ' + (2097151 >> 24));
+}
+
+
+if (4194303 >> 24 !== 0) {
+ $ERROR('#791: 4194303 >> 24 === 0. Actual: ' + (4194303 >> 24));
+}
+
+
+if (8388607 >> 24 !== 0) {
+ $ERROR('#792: 8388607 >> 24 === 0. Actual: ' + (8388607 >> 24));
+}
+
+
+if (16777215 >> 24 !== 0) {
+ $ERROR('#793: 16777215 >> 24 === 0. Actual: ' + (16777215 >> 24));
+}
+
+
+if (33554431 >> 24 !== 1) {
+ $ERROR('#794: 33554431 >> 24 === 1. Actual: ' + (33554431 >> 24));
+}
+
+
+if (67108863 >> 24 !== 3) {
+ $ERROR('#795: 67108863 >> 24 === 3. Actual: ' + (67108863 >> 24));
+}
+
+
+if (134217727 >> 24 !== 7) {
+ $ERROR('#796: 134217727 >> 24 === 7. Actual: ' + (134217727 >> 24));
+}
+
+
+if (268435455 >> 24 !== 15) {
+ $ERROR('#797: 268435455 >> 24 === 15. Actual: ' + (268435455 >> 24));
+}
+
+
+if (536870911 >> 24 !== 31) {
+ $ERROR('#798: 536870911 >> 24 === 31. Actual: ' + (536870911 >> 24));
+}
+
+
+if (1073741823 >> 24 !== 63) {
+ $ERROR('#799: 1073741823 >> 24 === 63. Actual: ' + (1073741823 >> 24));
+}
+
+
+if (2147483647 >> 24 !== 127) {
+ $ERROR('#800: 2147483647 >> 24 === 127. Actual: ' + (2147483647 >> 24));
+}
+
+
+if (0 >> 25 !== 0) {
+ $ERROR('#801: 0 >> 25 === 0. Actual: ' + (0 >> 25));
+}
+
+
+if (1 >> 25 !== 0) {
+ $ERROR('#802: 1 >> 25 === 0. Actual: ' + (1 >> 25));
+}
+
+
+if (3 >> 25 !== 0) {
+ $ERROR('#803: 3 >> 25 === 0. Actual: ' + (3 >> 25));
+}
+
+
+if (7 >> 25 !== 0) {
+ $ERROR('#804: 7 >> 25 === 0. Actual: ' + (7 >> 25));
+}
+
+
+if (15 >> 25 !== 0) {
+ $ERROR('#805: 15 >> 25 === 0. Actual: ' + (15 >> 25));
+}
+
+
+if (31 >> 25 !== 0) {
+ $ERROR('#806: 31 >> 25 === 0. Actual: ' + (31 >> 25));
+}
+
+
+if (63 >> 25 !== 0) {
+ $ERROR('#807: 63 >> 25 === 0. Actual: ' + (63 >> 25));
+}
+
+
+if (127 >> 25 !== 0) {
+ $ERROR('#808: 127 >> 25 === 0. Actual: ' + (127 >> 25));
+}
+
+
+if (255 >> 25 !== 0) {
+ $ERROR('#809: 255 >> 25 === 0. Actual: ' + (255 >> 25));
+}
+
+
+if (511 >> 25 !== 0) {
+ $ERROR('#810: 511 >> 25 === 0. Actual: ' + (511 >> 25));
+}
+
+
+if (1023 >> 25 !== 0) {
+ $ERROR('#811: 1023 >> 25 === 0. Actual: ' + (1023 >> 25));
+}
+
+
+if (2047 >> 25 !== 0) {
+ $ERROR('#812: 2047 >> 25 === 0. Actual: ' + (2047 >> 25));
+}
+
+
+if (4095 >> 25 !== 0) {
+ $ERROR('#813: 4095 >> 25 === 0. Actual: ' + (4095 >> 25));
+}
+
+
+if (8191 >> 25 !== 0) {
+ $ERROR('#814: 8191 >> 25 === 0. Actual: ' + (8191 >> 25));
+}
+
+
+if (16383 >> 25 !== 0) {
+ $ERROR('#815: 16383 >> 25 === 0. Actual: ' + (16383 >> 25));
+}
+
+
+if (32767 >> 25 !== 0) {
+ $ERROR('#816: 32767 >> 25 === 0. Actual: ' + (32767 >> 25));
+}
+
+
+if (65535 >> 25 !== 0) {
+ $ERROR('#817: 65535 >> 25 === 0. Actual: ' + (65535 >> 25));
+}
+
+
+if (131071 >> 25 !== 0) {
+ $ERROR('#818: 131071 >> 25 === 0. Actual: ' + (131071 >> 25));
+}
+
+
+if (262143 >> 25 !== 0) {
+ $ERROR('#819: 262143 >> 25 === 0. Actual: ' + (262143 >> 25));
+}
+
+
+if (524287 >> 25 !== 0) {
+ $ERROR('#820: 524287 >> 25 === 0. Actual: ' + (524287 >> 25));
+}
+
+
+if (1048575 >> 25 !== 0) {
+ $ERROR('#821: 1048575 >> 25 === 0. Actual: ' + (1048575 >> 25));
+}
+
+
+if (2097151 >> 25 !== 0) {
+ $ERROR('#822: 2097151 >> 25 === 0. Actual: ' + (2097151 >> 25));
+}
+
+
+if (4194303 >> 25 !== 0) {
+ $ERROR('#823: 4194303 >> 25 === 0. Actual: ' + (4194303 >> 25));
+}
+
+
+if (8388607 >> 25 !== 0) {
+ $ERROR('#824: 8388607 >> 25 === 0. Actual: ' + (8388607 >> 25));
+}
+
+
+if (16777215 >> 25 !== 0) {
+ $ERROR('#825: 16777215 >> 25 === 0. Actual: ' + (16777215 >> 25));
+}
+
+
+if (33554431 >> 25 !== 0) {
+ $ERROR('#826: 33554431 >> 25 === 0. Actual: ' + (33554431 >> 25));
+}
+
+
+if (67108863 >> 25 !== 1) {
+ $ERROR('#827: 67108863 >> 25 === 1. Actual: ' + (67108863 >> 25));
+}
+
+
+if (134217727 >> 25 !== 3) {
+ $ERROR('#828: 134217727 >> 25 === 3. Actual: ' + (134217727 >> 25));
+}
+
+
+if (268435455 >> 25 !== 7) {
+ $ERROR('#829: 268435455 >> 25 === 7. Actual: ' + (268435455 >> 25));
+}
+
+
+if (536870911 >> 25 !== 15) {
+ $ERROR('#830: 536870911 >> 25 === 15. Actual: ' + (536870911 >> 25));
+}
+
+
+if (1073741823 >> 25 !== 31) {
+ $ERROR('#831: 1073741823 >> 25 === 31. Actual: ' + (1073741823 >> 25));
+}
+
+
+if (2147483647 >> 25 !== 63) {
+ $ERROR('#832: 2147483647 >> 25 === 63. Actual: ' + (2147483647 >> 25));
+}
+
+
+if (0 >> 26 !== 0) {
+ $ERROR('#833: 0 >> 26 === 0. Actual: ' + (0 >> 26));
+}
+
+
+if (1 >> 26 !== 0) {
+ $ERROR('#834: 1 >> 26 === 0. Actual: ' + (1 >> 26));
+}
+
+
+if (3 >> 26 !== 0) {
+ $ERROR('#835: 3 >> 26 === 0. Actual: ' + (3 >> 26));
+}
+
+
+if (7 >> 26 !== 0) {
+ $ERROR('#836: 7 >> 26 === 0. Actual: ' + (7 >> 26));
+}
+
+
+if (15 >> 26 !== 0) {
+ $ERROR('#837: 15 >> 26 === 0. Actual: ' + (15 >> 26));
+}
+
+
+if (31 >> 26 !== 0) {
+ $ERROR('#838: 31 >> 26 === 0. Actual: ' + (31 >> 26));
+}
+
+
+if (63 >> 26 !== 0) {
+ $ERROR('#839: 63 >> 26 === 0. Actual: ' + (63 >> 26));
+}
+
+
+if (127 >> 26 !== 0) {
+ $ERROR('#840: 127 >> 26 === 0. Actual: ' + (127 >> 26));
+}
+
+
+if (255 >> 26 !== 0) {
+ $ERROR('#841: 255 >> 26 === 0. Actual: ' + (255 >> 26));
+}
+
+
+if (511 >> 26 !== 0) {
+ $ERROR('#842: 511 >> 26 === 0. Actual: ' + (511 >> 26));
+}
+
+
+if (1023 >> 26 !== 0) {
+ $ERROR('#843: 1023 >> 26 === 0. Actual: ' + (1023 >> 26));
+}
+
+
+if (2047 >> 26 !== 0) {
+ $ERROR('#844: 2047 >> 26 === 0. Actual: ' + (2047 >> 26));
+}
+
+
+if (4095 >> 26 !== 0) {
+ $ERROR('#845: 4095 >> 26 === 0. Actual: ' + (4095 >> 26));
+}
+
+
+if (8191 >> 26 !== 0) {
+ $ERROR('#846: 8191 >> 26 === 0. Actual: ' + (8191 >> 26));
+}
+
+
+if (16383 >> 26 !== 0) {
+ $ERROR('#847: 16383 >> 26 === 0. Actual: ' + (16383 >> 26));
+}
+
+
+if (32767 >> 26 !== 0) {
+ $ERROR('#848: 32767 >> 26 === 0. Actual: ' + (32767 >> 26));
+}
+
+
+if (65535 >> 26 !== 0) {
+ $ERROR('#849: 65535 >> 26 === 0. Actual: ' + (65535 >> 26));
+}
+
+
+if (131071 >> 26 !== 0) {
+ $ERROR('#850: 131071 >> 26 === 0. Actual: ' + (131071 >> 26));
+}
+
+
+if (262143 >> 26 !== 0) {
+ $ERROR('#851: 262143 >> 26 === 0. Actual: ' + (262143 >> 26));
+}
+
+
+if (524287 >> 26 !== 0) {
+ $ERROR('#852: 524287 >> 26 === 0. Actual: ' + (524287 >> 26));
+}
+
+
+if (1048575 >> 26 !== 0) {
+ $ERROR('#853: 1048575 >> 26 === 0. Actual: ' + (1048575 >> 26));
+}
+
+
+if (2097151 >> 26 !== 0) {
+ $ERROR('#854: 2097151 >> 26 === 0. Actual: ' + (2097151 >> 26));
+}
+
+
+if (4194303 >> 26 !== 0) {
+ $ERROR('#855: 4194303 >> 26 === 0. Actual: ' + (4194303 >> 26));
+}
+
+
+if (8388607 >> 26 !== 0) {
+ $ERROR('#856: 8388607 >> 26 === 0. Actual: ' + (8388607 >> 26));
+}
+
+
+if (16777215 >> 26 !== 0) {
+ $ERROR('#857: 16777215 >> 26 === 0. Actual: ' + (16777215 >> 26));
+}
+
+
+if (33554431 >> 26 !== 0) {
+ $ERROR('#858: 33554431 >> 26 === 0. Actual: ' + (33554431 >> 26));
+}
+
+
+if (67108863 >> 26 !== 0) {
+ $ERROR('#859: 67108863 >> 26 === 0. Actual: ' + (67108863 >> 26));
+}
+
+
+if (134217727 >> 26 !== 1) {
+ $ERROR('#860: 134217727 >> 26 === 1. Actual: ' + (134217727 >> 26));
+}
+
+
+if (268435455 >> 26 !== 3) {
+ $ERROR('#861: 268435455 >> 26 === 3. Actual: ' + (268435455 >> 26));
+}
+
+
+if (536870911 >> 26 !== 7) {
+ $ERROR('#862: 536870911 >> 26 === 7. Actual: ' + (536870911 >> 26));
+}
+
+
+if (1073741823 >> 26 !== 15) {
+ $ERROR('#863: 1073741823 >> 26 === 15. Actual: ' + (1073741823 >> 26));
+}
+
+
+if (2147483647 >> 26 !== 31) {
+ $ERROR('#864: 2147483647 >> 26 === 31. Actual: ' + (2147483647 >> 26));
+}
+
+
+if (0 >> 27 !== 0) {
+ $ERROR('#865: 0 >> 27 === 0. Actual: ' + (0 >> 27));
+}
+
+
+if (1 >> 27 !== 0) {
+ $ERROR('#866: 1 >> 27 === 0. Actual: ' + (1 >> 27));
+}
+
+
+if (3 >> 27 !== 0) {
+ $ERROR('#867: 3 >> 27 === 0. Actual: ' + (3 >> 27));
+}
+
+
+if (7 >> 27 !== 0) {
+ $ERROR('#868: 7 >> 27 === 0. Actual: ' + (7 >> 27));
+}
+
+
+if (15 >> 27 !== 0) {
+ $ERROR('#869: 15 >> 27 === 0. Actual: ' + (15 >> 27));
+}
+
+
+if (31 >> 27 !== 0) {
+ $ERROR('#870: 31 >> 27 === 0. Actual: ' + (31 >> 27));
+}
+
+
+if (63 >> 27 !== 0) {
+ $ERROR('#871: 63 >> 27 === 0. Actual: ' + (63 >> 27));
+}
+
+
+if (127 >> 27 !== 0) {
+ $ERROR('#872: 127 >> 27 === 0. Actual: ' + (127 >> 27));
+}
+
+
+if (255 >> 27 !== 0) {
+ $ERROR('#873: 255 >> 27 === 0. Actual: ' + (255 >> 27));
+}
+
+
+if (511 >> 27 !== 0) {
+ $ERROR('#874: 511 >> 27 === 0. Actual: ' + (511 >> 27));
+}
+
+
+if (1023 >> 27 !== 0) {
+ $ERROR('#875: 1023 >> 27 === 0. Actual: ' + (1023 >> 27));
+}
+
+
+if (2047 >> 27 !== 0) {
+ $ERROR('#876: 2047 >> 27 === 0. Actual: ' + (2047 >> 27));
+}
+
+
+if (4095 >> 27 !== 0) {
+ $ERROR('#877: 4095 >> 27 === 0. Actual: ' + (4095 >> 27));
+}
+
+
+if (8191 >> 27 !== 0) {
+ $ERROR('#878: 8191 >> 27 === 0. Actual: ' + (8191 >> 27));
+}
+
+
+if (16383 >> 27 !== 0) {
+ $ERROR('#879: 16383 >> 27 === 0. Actual: ' + (16383 >> 27));
+}
+
+
+if (32767 >> 27 !== 0) {
+ $ERROR('#880: 32767 >> 27 === 0. Actual: ' + (32767 >> 27));
+}
+
+
+if (65535 >> 27 !== 0) {
+ $ERROR('#881: 65535 >> 27 === 0. Actual: ' + (65535 >> 27));
+}
+
+
+if (131071 >> 27 !== 0) {
+ $ERROR('#882: 131071 >> 27 === 0. Actual: ' + (131071 >> 27));
+}
+
+
+if (262143 >> 27 !== 0) {
+ $ERROR('#883: 262143 >> 27 === 0. Actual: ' + (262143 >> 27));
+}
+
+
+if (524287 >> 27 !== 0) {
+ $ERROR('#884: 524287 >> 27 === 0. Actual: ' + (524287 >> 27));
+}
+
+
+if (1048575 >> 27 !== 0) {
+ $ERROR('#885: 1048575 >> 27 === 0. Actual: ' + (1048575 >> 27));
+}
+
+
+if (2097151 >> 27 !== 0) {
+ $ERROR('#886: 2097151 >> 27 === 0. Actual: ' + (2097151 >> 27));
+}
+
+
+if (4194303 >> 27 !== 0) {
+ $ERROR('#887: 4194303 >> 27 === 0. Actual: ' + (4194303 >> 27));
+}
+
+
+if (8388607 >> 27 !== 0) {
+ $ERROR('#888: 8388607 >> 27 === 0. Actual: ' + (8388607 >> 27));
+}
+
+
+if (16777215 >> 27 !== 0) {
+ $ERROR('#889: 16777215 >> 27 === 0. Actual: ' + (16777215 >> 27));
+}
+
+
+if (33554431 >> 27 !== 0) {
+ $ERROR('#890: 33554431 >> 27 === 0. Actual: ' + (33554431 >> 27));
+}
+
+
+if (67108863 >> 27 !== 0) {
+ $ERROR('#891: 67108863 >> 27 === 0. Actual: ' + (67108863 >> 27));
+}
+
+
+if (134217727 >> 27 !== 0) {
+ $ERROR('#892: 134217727 >> 27 === 0. Actual: ' + (134217727 >> 27));
+}
+
+
+if (268435455 >> 27 !== 1) {
+ $ERROR('#893: 268435455 >> 27 === 1. Actual: ' + (268435455 >> 27));
+}
+
+
+if (536870911 >> 27 !== 3) {
+ $ERROR('#894: 536870911 >> 27 === 3. Actual: ' + (536870911 >> 27));
+}
+
+
+if (1073741823 >> 27 !== 7) {
+ $ERROR('#895: 1073741823 >> 27 === 7. Actual: ' + (1073741823 >> 27));
+}
+
+
+if (2147483647 >> 27 !== 15) {
+ $ERROR('#896: 2147483647 >> 27 === 15. Actual: ' + (2147483647 >> 27));
+}
+
+
+if (0 >> 28 !== 0) {
+ $ERROR('#897: 0 >> 28 === 0. Actual: ' + (0 >> 28));
+}
+
+
+if (1 >> 28 !== 0) {
+ $ERROR('#898: 1 >> 28 === 0. Actual: ' + (1 >> 28));
+}
+
+
+if (3 >> 28 !== 0) {
+ $ERROR('#899: 3 >> 28 === 0. Actual: ' + (3 >> 28));
+}
+
+
+if (7 >> 28 !== 0) {
+ $ERROR('#900: 7 >> 28 === 0. Actual: ' + (7 >> 28));
+}
+
+
+if (15 >> 28 !== 0) {
+ $ERROR('#901: 15 >> 28 === 0. Actual: ' + (15 >> 28));
+}
+
+
+if (31 >> 28 !== 0) {
+ $ERROR('#902: 31 >> 28 === 0. Actual: ' + (31 >> 28));
+}
+
+
+if (63 >> 28 !== 0) {
+ $ERROR('#903: 63 >> 28 === 0. Actual: ' + (63 >> 28));
+}
+
+
+if (127 >> 28 !== 0) {
+ $ERROR('#904: 127 >> 28 === 0. Actual: ' + (127 >> 28));
+}
+
+
+if (255 >> 28 !== 0) {
+ $ERROR('#905: 255 >> 28 === 0. Actual: ' + (255 >> 28));
+}
+
+
+if (511 >> 28 !== 0) {
+ $ERROR('#906: 511 >> 28 === 0. Actual: ' + (511 >> 28));
+}
+
+
+if (1023 >> 28 !== 0) {
+ $ERROR('#907: 1023 >> 28 === 0. Actual: ' + (1023 >> 28));
+}
+
+
+if (2047 >> 28 !== 0) {
+ $ERROR('#908: 2047 >> 28 === 0. Actual: ' + (2047 >> 28));
+}
+
+
+if (4095 >> 28 !== 0) {
+ $ERROR('#909: 4095 >> 28 === 0. Actual: ' + (4095 >> 28));
+}
+
+
+if (8191 >> 28 !== 0) {
+ $ERROR('#910: 8191 >> 28 === 0. Actual: ' + (8191 >> 28));
+}
+
+
+if (16383 >> 28 !== 0) {
+ $ERROR('#911: 16383 >> 28 === 0. Actual: ' + (16383 >> 28));
+}
+
+
+if (32767 >> 28 !== 0) {
+ $ERROR('#912: 32767 >> 28 === 0. Actual: ' + (32767 >> 28));
+}
+
+
+if (65535 >> 28 !== 0) {
+ $ERROR('#913: 65535 >> 28 === 0. Actual: ' + (65535 >> 28));
+}
+
+
+if (131071 >> 28 !== 0) {
+ $ERROR('#914: 131071 >> 28 === 0. Actual: ' + (131071 >> 28));
+}
+
+
+if (262143 >> 28 !== 0) {
+ $ERROR('#915: 262143 >> 28 === 0. Actual: ' + (262143 >> 28));
+}
+
+
+if (524287 >> 28 !== 0) {
+ $ERROR('#916: 524287 >> 28 === 0. Actual: ' + (524287 >> 28));
+}
+
+
+if (1048575 >> 28 !== 0) {
+ $ERROR('#917: 1048575 >> 28 === 0. Actual: ' + (1048575 >> 28));
+}
+
+
+if (2097151 >> 28 !== 0) {
+ $ERROR('#918: 2097151 >> 28 === 0. Actual: ' + (2097151 >> 28));
+}
+
+
+if (4194303 >> 28 !== 0) {
+ $ERROR('#919: 4194303 >> 28 === 0. Actual: ' + (4194303 >> 28));
+}
+
+
+if (8388607 >> 28 !== 0) {
+ $ERROR('#920: 8388607 >> 28 === 0. Actual: ' + (8388607 >> 28));
+}
+
+
+if (16777215 >> 28 !== 0) {
+ $ERROR('#921: 16777215 >> 28 === 0. Actual: ' + (16777215 >> 28));
+}
+
+
+if (33554431 >> 28 !== 0) {
+ $ERROR('#922: 33554431 >> 28 === 0. Actual: ' + (33554431 >> 28));
+}
+
+
+if (67108863 >> 28 !== 0) {
+ $ERROR('#923: 67108863 >> 28 === 0. Actual: ' + (67108863 >> 28));
+}
+
+
+if (134217727 >> 28 !== 0) {
+ $ERROR('#924: 134217727 >> 28 === 0. Actual: ' + (134217727 >> 28));
+}
+
+
+if (268435455 >> 28 !== 0) {
+ $ERROR('#925: 268435455 >> 28 === 0. Actual: ' + (268435455 >> 28));
+}
+
+
+if (536870911 >> 28 !== 1) {
+ $ERROR('#926: 536870911 >> 28 === 1. Actual: ' + (536870911 >> 28));
+}
+
+
+if (1073741823 >> 28 !== 3) {
+ $ERROR('#927: 1073741823 >> 28 === 3. Actual: ' + (1073741823 >> 28));
+}
+
+
+if (2147483647 >> 28 !== 7) {
+ $ERROR('#928: 2147483647 >> 28 === 7. Actual: ' + (2147483647 >> 28));
+}
+
+
+if (0 >> 29 !== 0) {
+ $ERROR('#929: 0 >> 29 === 0. Actual: ' + (0 >> 29));
+}
+
+
+if (1 >> 29 !== 0) {
+ $ERROR('#930: 1 >> 29 === 0. Actual: ' + (1 >> 29));
+}
+
+
+if (3 >> 29 !== 0) {
+ $ERROR('#931: 3 >> 29 === 0. Actual: ' + (3 >> 29));
+}
+
+
+if (7 >> 29 !== 0) {
+ $ERROR('#932: 7 >> 29 === 0. Actual: ' + (7 >> 29));
+}
+
+
+if (15 >> 29 !== 0) {
+ $ERROR('#933: 15 >> 29 === 0. Actual: ' + (15 >> 29));
+}
+
+
+if (31 >> 29 !== 0) {
+ $ERROR('#934: 31 >> 29 === 0. Actual: ' + (31 >> 29));
+}
+
+
+if (63 >> 29 !== 0) {
+ $ERROR('#935: 63 >> 29 === 0. Actual: ' + (63 >> 29));
+}
+
+
+if (127 >> 29 !== 0) {
+ $ERROR('#936: 127 >> 29 === 0. Actual: ' + (127 >> 29));
+}
+
+
+if (255 >> 29 !== 0) {
+ $ERROR('#937: 255 >> 29 === 0. Actual: ' + (255 >> 29));
+}
+
+
+if (511 >> 29 !== 0) {
+ $ERROR('#938: 511 >> 29 === 0. Actual: ' + (511 >> 29));
+}
+
+
+if (1023 >> 29 !== 0) {
+ $ERROR('#939: 1023 >> 29 === 0. Actual: ' + (1023 >> 29));
+}
+
+
+if (2047 >> 29 !== 0) {
+ $ERROR('#940: 2047 >> 29 === 0. Actual: ' + (2047 >> 29));
+}
+
+
+if (4095 >> 29 !== 0) {
+ $ERROR('#941: 4095 >> 29 === 0. Actual: ' + (4095 >> 29));
+}
+
+
+if (8191 >> 29 !== 0) {
+ $ERROR('#942: 8191 >> 29 === 0. Actual: ' + (8191 >> 29));
+}
+
+
+if (16383 >> 29 !== 0) {
+ $ERROR('#943: 16383 >> 29 === 0. Actual: ' + (16383 >> 29));
+}
+
+
+if (32767 >> 29 !== 0) {
+ $ERROR('#944: 32767 >> 29 === 0. Actual: ' + (32767 >> 29));
+}
+
+
+if (65535 >> 29 !== 0) {
+ $ERROR('#945: 65535 >> 29 === 0. Actual: ' + (65535 >> 29));
+}
+
+
+if (131071 >> 29 !== 0) {
+ $ERROR('#946: 131071 >> 29 === 0. Actual: ' + (131071 >> 29));
+}
+
+
+if (262143 >> 29 !== 0) {
+ $ERROR('#947: 262143 >> 29 === 0. Actual: ' + (262143 >> 29));
+}
+
+
+if (524287 >> 29 !== 0) {
+ $ERROR('#948: 524287 >> 29 === 0. Actual: ' + (524287 >> 29));
+}
+
+
+if (1048575 >> 29 !== 0) {
+ $ERROR('#949: 1048575 >> 29 === 0. Actual: ' + (1048575 >> 29));
+}
+
+
+if (2097151 >> 29 !== 0) {
+ $ERROR('#950: 2097151 >> 29 === 0. Actual: ' + (2097151 >> 29));
+}
+
+
+if (4194303 >> 29 !== 0) {
+ $ERROR('#951: 4194303 >> 29 === 0. Actual: ' + (4194303 >> 29));
+}
+
+
+if (8388607 >> 29 !== 0) {
+ $ERROR('#952: 8388607 >> 29 === 0. Actual: ' + (8388607 >> 29));
+}
+
+
+if (16777215 >> 29 !== 0) {
+ $ERROR('#953: 16777215 >> 29 === 0. Actual: ' + (16777215 >> 29));
+}
+
+
+if (33554431 >> 29 !== 0) {
+ $ERROR('#954: 33554431 >> 29 === 0. Actual: ' + (33554431 >> 29));
+}
+
+
+if (67108863 >> 29 !== 0) {
+ $ERROR('#955: 67108863 >> 29 === 0. Actual: ' + (67108863 >> 29));
+}
+
+
+if (134217727 >> 29 !== 0) {
+ $ERROR('#956: 134217727 >> 29 === 0. Actual: ' + (134217727 >> 29));
+}
+
+
+if (268435455 >> 29 !== 0) {
+ $ERROR('#957: 268435455 >> 29 === 0. Actual: ' + (268435455 >> 29));
+}
+
+
+if (536870911 >> 29 !== 0) {
+ $ERROR('#958: 536870911 >> 29 === 0. Actual: ' + (536870911 >> 29));
+}
+
+
+if (1073741823 >> 29 !== 1) {
+ $ERROR('#959: 1073741823 >> 29 === 1. Actual: ' + (1073741823 >> 29));
+}
+
+
+if (2147483647 >> 29 !== 3) {
+ $ERROR('#960: 2147483647 >> 29 === 3. Actual: ' + (2147483647 >> 29));
+}
+
+
+if (0 >> 30 !== 0) {
+ $ERROR('#961: 0 >> 30 === 0. Actual: ' + (0 >> 30));
+}
+
+
+if (1 >> 30 !== 0) {
+ $ERROR('#962: 1 >> 30 === 0. Actual: ' + (1 >> 30));
+}
+
+
+if (3 >> 30 !== 0) {
+ $ERROR('#963: 3 >> 30 === 0. Actual: ' + (3 >> 30));
+}
+
+
+if (7 >> 30 !== 0) {
+ $ERROR('#964: 7 >> 30 === 0. Actual: ' + (7 >> 30));
+}
+
+
+if (15 >> 30 !== 0) {
+ $ERROR('#965: 15 >> 30 === 0. Actual: ' + (15 >> 30));
+}
+
+
+if (31 >> 30 !== 0) {
+ $ERROR('#966: 31 >> 30 === 0. Actual: ' + (31 >> 30));
+}
+
+
+if (63 >> 30 !== 0) {
+ $ERROR('#967: 63 >> 30 === 0. Actual: ' + (63 >> 30));
+}
+
+
+if (127 >> 30 !== 0) {
+ $ERROR('#968: 127 >> 30 === 0. Actual: ' + (127 >> 30));
+}
+
+
+if (255 >> 30 !== 0) {
+ $ERROR('#969: 255 >> 30 === 0. Actual: ' + (255 >> 30));
+}
+
+
+if (511 >> 30 !== 0) {
+ $ERROR('#970: 511 >> 30 === 0. Actual: ' + (511 >> 30));
+}
+
+
+if (1023 >> 30 !== 0) {
+ $ERROR('#971: 1023 >> 30 === 0. Actual: ' + (1023 >> 30));
+}
+
+
+if (2047 >> 30 !== 0) {
+ $ERROR('#972: 2047 >> 30 === 0. Actual: ' + (2047 >> 30));
+}
+
+
+if (4095 >> 30 !== 0) {
+ $ERROR('#973: 4095 >> 30 === 0. Actual: ' + (4095 >> 30));
+}
+
+
+if (8191 >> 30 !== 0) {
+ $ERROR('#974: 8191 >> 30 === 0. Actual: ' + (8191 >> 30));
+}
+
+
+if (16383 >> 30 !== 0) {
+ $ERROR('#975: 16383 >> 30 === 0. Actual: ' + (16383 >> 30));
+}
+
+
+if (32767 >> 30 !== 0) {
+ $ERROR('#976: 32767 >> 30 === 0. Actual: ' + (32767 >> 30));
+}
+
+
+if (65535 >> 30 !== 0) {
+ $ERROR('#977: 65535 >> 30 === 0. Actual: ' + (65535 >> 30));
+}
+
+
+if (131071 >> 30 !== 0) {
+ $ERROR('#978: 131071 >> 30 === 0. Actual: ' + (131071 >> 30));
+}
+
+
+if (262143 >> 30 !== 0) {
+ $ERROR('#979: 262143 >> 30 === 0. Actual: ' + (262143 >> 30));
+}
+
+
+if (524287 >> 30 !== 0) {
+ $ERROR('#980: 524287 >> 30 === 0. Actual: ' + (524287 >> 30));
+}
+
+
+if (1048575 >> 30 !== 0) {
+ $ERROR('#981: 1048575 >> 30 === 0. Actual: ' + (1048575 >> 30));
+}
+
+
+if (2097151 >> 30 !== 0) {
+ $ERROR('#982: 2097151 >> 30 === 0. Actual: ' + (2097151 >> 30));
+}
+
+
+if (4194303 >> 30 !== 0) {
+ $ERROR('#983: 4194303 >> 30 === 0. Actual: ' + (4194303 >> 30));
+}
+
+
+if (8388607 >> 30 !== 0) {
+ $ERROR('#984: 8388607 >> 30 === 0. Actual: ' + (8388607 >> 30));
+}
+
+
+if (16777215 >> 30 !== 0) {
+ $ERROR('#985: 16777215 >> 30 === 0. Actual: ' + (16777215 >> 30));
+}
+
+
+if (33554431 >> 30 !== 0) {
+ $ERROR('#986: 33554431 >> 30 === 0. Actual: ' + (33554431 >> 30));
+}
+
+
+if (67108863 >> 30 !== 0) {
+ $ERROR('#987: 67108863 >> 30 === 0. Actual: ' + (67108863 >> 30));
+}
+
+
+if (134217727 >> 30 !== 0) {
+ $ERROR('#988: 134217727 >> 30 === 0. Actual: ' + (134217727 >> 30));
+}
+
+
+if (268435455 >> 30 !== 0) {
+ $ERROR('#989: 268435455 >> 30 === 0. Actual: ' + (268435455 >> 30));
+}
+
+
+if (536870911 >> 30 !== 0) {
+ $ERROR('#990: 536870911 >> 30 === 0. Actual: ' + (536870911 >> 30));
+}
+
+
+if (1073741823 >> 30 !== 0) {
+ $ERROR('#991: 1073741823 >> 30 === 0. Actual: ' + (1073741823 >> 30));
+}
+
+
+if (2147483647 >> 30 !== 1) {
+ $ERROR('#992: 2147483647 >> 30 === 1. Actual: ' + (2147483647 >> 30));
+}
+
+
+if (0 >> 31 !== 0) {
+ $ERROR('#993: 0 >> 31 === 0. Actual: ' + (0 >> 31));
+}
+
+
+if (1 >> 31 !== 0) {
+ $ERROR('#994: 1 >> 31 === 0. Actual: ' + (1 >> 31));
+}
+
+
+if (3 >> 31 !== 0) {
+ $ERROR('#995: 3 >> 31 === 0. Actual: ' + (3 >> 31));
+}
+
+
+if (7 >> 31 !== 0) {
+ $ERROR('#996: 7 >> 31 === 0. Actual: ' + (7 >> 31));
+}
+
+
+if (15 >> 31 !== 0) {
+ $ERROR('#997: 15 >> 31 === 0. Actual: ' + (15 >> 31));
+}
+
+
+if (31 >> 31 !== 0) {
+ $ERROR('#998: 31 >> 31 === 0. Actual: ' + (31 >> 31));
+}
+
+
+if (63 >> 31 !== 0) {
+ $ERROR('#999: 63 >> 31 === 0. Actual: ' + (63 >> 31));
+}
+
+
+if (127 >> 31 !== 0) {
+ $ERROR('#1000: 127 >> 31 === 0. Actual: ' + (127 >> 31));
+}
+
+
+if (255 >> 31 !== 0) {
+ $ERROR('#1001: 255 >> 31 === 0. Actual: ' + (255 >> 31));
+}
+
+
+if (511 >> 31 !== 0) {
+ $ERROR('#1002: 511 >> 31 === 0. Actual: ' + (511 >> 31));
+}
+
+
+if (1023 >> 31 !== 0) {
+ $ERROR('#1003: 1023 >> 31 === 0. Actual: ' + (1023 >> 31));
+}
+
+
+if (2047 >> 31 !== 0) {
+ $ERROR('#1004: 2047 >> 31 === 0. Actual: ' + (2047 >> 31));
+}
+
+
+if (4095 >> 31 !== 0) {
+ $ERROR('#1005: 4095 >> 31 === 0. Actual: ' + (4095 >> 31));
+}
+
+
+if (8191 >> 31 !== 0) {
+ $ERROR('#1006: 8191 >> 31 === 0. Actual: ' + (8191 >> 31));
+}
+
+
+if (16383 >> 31 !== 0) {
+ $ERROR('#1007: 16383 >> 31 === 0. Actual: ' + (16383 >> 31));
+}
+
+
+if (32767 >> 31 !== 0) {
+ $ERROR('#1008: 32767 >> 31 === 0. Actual: ' + (32767 >> 31));
+}
+
+
+if (65535 >> 31 !== 0) {
+ $ERROR('#1009: 65535 >> 31 === 0. Actual: ' + (65535 >> 31));
+}
+
+
+if (131071 >> 31 !== 0) {
+ $ERROR('#1010: 131071 >> 31 === 0. Actual: ' + (131071 >> 31));
+}
+
+
+if (262143 >> 31 !== 0) {
+ $ERROR('#1011: 262143 >> 31 === 0. Actual: ' + (262143 >> 31));
+}
+
+
+if (524287 >> 31 !== 0) {
+ $ERROR('#1012: 524287 >> 31 === 0. Actual: ' + (524287 >> 31));
+}
+
+
+if (1048575 >> 31 !== 0) {
+ $ERROR('#1013: 1048575 >> 31 === 0. Actual: ' + (1048575 >> 31));
+}
+
+
+if (2097151 >> 31 !== 0) {
+ $ERROR('#1014: 2097151 >> 31 === 0. Actual: ' + (2097151 >> 31));
+}
+
+
+if (4194303 >> 31 !== 0) {
+ $ERROR('#1015: 4194303 >> 31 === 0. Actual: ' + (4194303 >> 31));
+}
+
+
+if (8388607 >> 31 !== 0) {
+ $ERROR('#1016: 8388607 >> 31 === 0. Actual: ' + (8388607 >> 31));
+}
+
+
+if (16777215 >> 31 !== 0) {
+ $ERROR('#1017: 16777215 >> 31 === 0. Actual: ' + (16777215 >> 31));
+}
+
+
+if (33554431 >> 31 !== 0) {
+ $ERROR('#1018: 33554431 >> 31 === 0. Actual: ' + (33554431 >> 31));
+}
+
+
+if (67108863 >> 31 !== 0) {
+ $ERROR('#1019: 67108863 >> 31 === 0. Actual: ' + (67108863 >> 31));
+}
+
+
+if (134217727 >> 31 !== 0) {
+ $ERROR('#1020: 134217727 >> 31 === 0. Actual: ' + (134217727 >> 31));
+}
+
+
+if (268435455 >> 31 !== 0) {
+ $ERROR('#1021: 268435455 >> 31 === 0. Actual: ' + (268435455 >> 31));
+}
+
+
+if (536870911 >> 31 !== 0) {
+ $ERROR('#1022: 536870911 >> 31 === 0. Actual: ' + (536870911 >> 31));
+}
+
+
+if (1073741823 >> 31 !== 0) {
+ $ERROR('#1023: 1073741823 >> 31 === 0. Actual: ' + (1073741823 >> 31));
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A5.1_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A5.1_T1.js
new file mode 100644
index 000000000..f3e7ce045
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A5.1_T1.js
@@ -0,0 +1,59 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A5.1_T1;
+ * @section: 11.7.2, 9.5;
+ * @assertion: Operator x >> y uses ToInt32(ShiftExpression);
+ * @description: Checking boundary points;
+ */
+
+//CHECK#1
+if (2147483648.1 >> 0 !== -2147483648) {
+ $ERROR('#1: 2147483648.1 >> 0 === -2147483648. Actual: ' + (2147483648.1 >> 0));
+}
+
+//CHECK#2
+if (4294967296.1 >> 0 !== 0) {
+ $ERROR('#2: 4294967296.1 >> 0 === 0. Actual: ' + (4294967296.1 >> 0));
+}
+
+//CHECK#3
+if (6442450944.1 >> 0 !== -2147483648) {
+ $ERROR('#3: 6442450944.1 >> 0 === -2147483648. Actual: ' + (6442450944.1 >> 0));
+}
+
+//CHECK#4
+if (4294967295.1 >> 0 !== -1) {
+ $ERROR('#4: 4294967295.1 >> 0 === -1. Actual: ' + (4294967295.1 >> 0));
+}
+
+//CHECK#5
+if (6442450943.1 >> 0 !== 2147483647) {
+ $ERROR('#5: 6442450943.1 >> 0 === 2147483647. Actual: ' + (6442450943.1 >> 0));
+}
+
+//CHECK#6
+if (-2147483649.1 >> 0 !== 2147483647) {
+ $ERROR('#6: -2147483649.1 >> 0 === 2147483647. Actual: ' + (-2147483649.1 >> 0));
+}
+
+//CHECK#7
+if (-4294967297.1 >> 0 !== -1) {
+ $ERROR('#7: -4294967297.1 >> 0 === -1. Actual: ' + (-4294967297.1 >> 0));
+}
+
+//CHECK#8
+if (-6442450945.1 >> 0 !== 2147483647) {
+ $ERROR('#8: -6442450945.1 >> 0 === 2147483647. Actual: ' + (-6442450945.1 >> 0));
+}
+
+//CHECK#9
+if (-4294967296.1 >> 0 !== 0) {
+ $ERROR('#9: -4294967296.1 >> 0 === 0 . Actual: ' + (-4294967296.1 >> 0));
+}
+
+//CHECK#10
+if (-6442450944.1 >> 0 !== -2147483648) {
+ $ERROR('#10: -6442450944.1 >> 0 === -2147483648. Actual: ' + (-6442450944.1 >> 0));
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A5.2_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A5.2_T1.js
new file mode 100644
index 000000000..3c0d7f991
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/11_Expressions/11.7_Bitwise_Shift_Operators/11.7.2_The_Sign_Left_shift_Operator/S11.7.2_A5.2_T1.js
@@ -0,0 +1,329 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.7.2_A5.2_T1;
+ * @section: 11.7.2, 9.5;
+ * @assertion: Operator x >> y uses ToUint32(AdditiveExpression) & 31;
+ * @description: Checking distinct points;
+ */
+
+//CHECK#1
+if (2147483647 >> -32.1 !== 2147483647) {
+ $ERROR('#1: 2147483647 >> -32.1 === 2147483647. Actual: ' + (2147483647 >> -32.1));
+}
+
+//CHECK#2
+if (2147483647 >> -31.1 !== 1073741823) {
+ $ERROR('#2: 2147483647 >> -31.1 === 1073741823. Actual: ' + (2147483647 >> -31.1));
+}
+
+//CHECK#3
+if (2147483647 >> -30.1 !== 536870911) {
+ $ERROR('#3: 2147483647 >> -30.1 === 536870911. Actual: ' + (2147483647 >> -30.1));
+}
+
+//CHECK#4
+if (2147483647 >> -29.1 !== 268435455) {
+ $ERROR('#4: 2147483647 >> -29.1 === 268435455. Actual: ' + (2147483647 >> -29.1));
+}
+
+//CHECK#5
+if (2147483647 >> -28.1 !== 134217727) {
+ $ERROR('#5: 2147483647 >> -28.1 === 134217727. Actual: ' + (2147483647 >> -28.1));
+}
+
+//CHECK#6
+if (2147483647 >> -27.1 !== 67108863) {
+ $ERROR('#6: 2147483647 >> -27.1 === 67108863. Actual: ' + (2147483647 >> -27.1));
+}
+
+//CHECK#7
+if (2147483647 >> -26.1 !== 33554431) {
+ $ERROR('#7: 2147483647 >> -26.1 === 33554431. Actual: ' + (2147483647 >> -26.1));
+}
+
+//CHECK#8
+if (2147483647 >> -25.1 !== 16777215) {
+ $ERROR('#8: 2147483647 >> -25.1 === 16777215. Actual: ' + (2147483647 >> -25.1));
+}
+
+//CHECK#9
+if (2147483647 >> -24.1 !== 8388607) {
+ $ERROR('#9: 2147483647 >> -24.1 === 8388607. Actual: ' + (2147483647 >> -24.1));
+}
+
+//CHECK#10
+if (2147483647 >> -23.1 !== 4194303) {
+ $ERROR('#10: 2147483647 >> -23.1 === 4194303. Actual: ' + (2147483647 >> -23.1));
+}
+
+//CHECK#11
+if (2147483647 >> -22.1 !== 2097151) {
+ $ERROR('#11: 2147483647 >> -22.1 === 2097151. Actual: ' + (2147483647 >> -22.1));
+}
+
+//CHECK#12
+if (2147483647 >> -21.1 !== 1048575) {
+ $ERROR('#12: 2147483647 >> -21.1 === 1048575. Actual: ' + (2147483647 >> -21.1));
+}
+
+//CHECK#13
+if (2147483647 >> -20.1 !== 524287) {
+ $ERROR('#13: 2147483647 >> -20.1 === 524287. Actual: ' + (2147483647 >> -20.1));
+}
+
+//CHECK#14
+if (2147483647 >> -19.1 !== 262143) {
+ $ERROR('#14: 2147483647 >> -19.1 === 262143. Actual: ' + (2147483647 >> -19.1));
+}
+
+//CHECK#15
+if (2147483647 >> -18.1 !== 131071) {
+ $ERROR('#15: 2147483647 >> -18.1 === 131071. Actual: ' + (2147483647 >> -18.1));
+}
+
+//CHECK#16
+if (2147483647 >> -17.1 !== 65535) {
+ $ERROR('#16: 2147483647 >> -17.1 === 65535. Actual: ' + (2147483647 >> -17.1));
+}
+
+//CHECK#17
+if (2147483647 >> -16.1 !== 32767) {
+ $ERROR('#17: 2147483647 >> -16.1 === 32767. Actual: ' + (2147483647 >> -16.1));
+}
+
+//CHECK#18
+if (2147483647 >> -15.1 !== 16383) {
+ $ERROR('#18: 2147483647 >> -15.1 === 16383. Actual: ' + (2147483647 >> -15.1));
+}
+
+//CHECK#19
+if (2147483647 >> -14.1 !== 8191) {
+ $ERROR('#19: 2147483647 >> -14.1 === 8191. Actual: ' + (2147483647 >> -14.1));
+}
+
+//CHECK#20
+if (2147483647 >> -13.1 !== 4095) {
+ $ERROR('#20: 2147483647 >> -13.1 === 4095. Actual: ' + (2147483647 >> -13.1));
+}
+
+//CHECK#21
+if (2147483647 >> -12.1 !== 2047) {
+ $ERROR('#21: 2147483647 >> -12.1 === 2047. Actual: ' + (2147483647 >> -12.1));
+}
+
+//CHECK#22
+if (2147483647 >> -11.1 !== 1023) {
+ $ERROR('#22: 2147483647 >> -11.1 === 1023. Actual: ' + (2147483647 >> -11.1));
+}
+
+//CHECK#23
+if (2147483647 >> -10.1 !== 511) {
+ $ERROR('#23: 2147483647 >> -10.1 === 511. Actual: ' + (2147483647 >> -10.1));
+}
+
+//CHECK#24
+if (2147483647 >> -9.1 !== 255) {
+ $ERROR('#24: 2147483647 >> -9.1 === 255. Actual: ' + (2147483647 >> -9.1));
+}
+
+//CHECK#25
+if (2147483647 >> -8.1 !== 127) {
+ $ERROR('#25: 2147483647 >> -8.1 === 127. Actual: ' + (2147483647 >> -8.1));
+}
+
+//CHECK#26
+if (2147483647 >> -7.1 !== 63) {
+ $ERROR('#26: 2147483647 >> -7.1 === 63. Actual: ' + (2147483647 >> -7.1));
+}
+
+//CHECK#27
+if (2147483647 >> -6.1 !== 31) {
+ $ERROR('#27: 2147483647 >> -6.1 === 31. Actual: ' + (2147483647 >> -6.1));
+}
+
+//CHECK#28
+if (2147483647 >> -5.1 !== 15) {
+ $ERROR('#28: 2147483647 >> -5.1 === 15. Actual: ' + (2147483647 >> -5.1));
+}
+
+//CHECK#29
+if (2147483647 >> -4.1 !== 7) {
+ $ERROR('#29: 2147483647 >> -4.1 === 7. Actual: ' + (2147483647 >> -4.1));
+}
+
+//CHECK#30
+if (2147483647 >> -3.1 !== 3) {
+ $ERROR('#30: 2147483647 >> -3.1 === 3. Actual: ' + (2147483647 >> -3.1));
+}
+
+//CHECK#31
+if (2147483647 >> -2.1 !== 1) {
+ $ERROR('#31: 2147483647 >> -2.1 === 1. Actual: ' + (2147483647 >> -2.1));
+}
+
+//CHECK#32
+if (2147483647 >> -1.1 !== 0) {
+ $ERROR('#32: 2147483647 >> -1.1 === 0. Actual: ' + (2147483647 >> -1.1));
+}
+
+//CHECK#33
+if (2147483647 >> 32.1 !== 2147483647) {
+ $ERROR('#33: 2147483647 >> 32.1 === 2147483647. Actual: ' + (2147483647 >> 32.1));
+}
+
+//CHECK#34
+if (2147483647 >> 33.1 !== 1073741823) {
+ $ERROR('#34: 2147483647 >> 33.1 === 1073741823. Actual: ' + (2147483647 >> 33.1));
+}
+
+//CHECK#35
+if (2147483647 >> 34.1 !== 536870911) {
+ $ERROR('#35: 2147483647 >> 34.1 === 536870911. Actual: ' + (2147483647 >> 34.1));
+}
+
+//CHECK#36
+if (2147483647 >> 35.1 !== 268435455) {
+ $ERROR('#36: 2147483647 >> 35.1 === 268435455. Actual: ' + (2147483647 >> 35.1));
+}
+
+//CHECK#37
+if (2147483647 >> 36.1 !== 134217727) {
+ $ERROR('#37: 2147483647 >> 36.1 === 134217727. Actual: ' + (2147483647 >> 36.1));
+}
+
+//CHECK#38
+if (2147483647 >> 37.1 !== 67108863) {
+ $ERROR('#38: 2147483647 >> 37.1 === 67108863. Actual: ' + (2147483647 >> 37.1));
+}
+
+//CHECK#39
+if (2147483647 >> 38.1 !== 33554431) {
+ $ERROR('#39: 2147483647 >> 38.1 === 33554431. Actual: ' + (2147483647 >> 38.1));
+}
+
+//CHECK#40
+if (2147483647 >> 39.1 !== 16777215) {
+ $ERROR('#40: 2147483647 >> 39.1 === 16777215. Actual: ' + (2147483647 >> 39.1));
+}
+
+//CHECK#41
+if (2147483647 >> 40.1 !== 8388607) {
+ $ERROR('#41: 2147483647 >> 40.1 === 8388607. Actual: ' + (2147483647 >> 40.1));
+}
+
+//CHECK#42
+if (2147483647 >> 41.1 !== 4194303) {
+ $ERROR('#42: 2147483647 >> 41.1 === 4194303. Actual: ' + (2147483647 >> 41.1));
+}
+
+//CHECK#43
+if (2147483647 >> 42.1 !== 2097151) {
+ $ERROR('#43: 2147483647 >> 42.1 === 2097151. Actual: ' + (2147483647 >> 42.1));
+}
+
+//CHECK#44
+if (2147483647 >> 43.1 !== 1048575) {
+ $ERROR('#44: 2147483647 >> 43.1 === 1048575. Actual: ' + (2147483647 >> 43.1));
+}
+
+//CHECK#45
+if (2147483647 >> 44.1 !== 524287) {
+ $ERROR('#45: 2147483647 >> 44.1 === 524287. Actual: ' + (2147483647 >> 44.1));
+}
+
+//CHECK#46
+if (2147483647 >> 45.1 !== 262143) {
+ $ERROR('#46: 2147483647 >> 45.1 === 262143. Actual: ' + (2147483647 >> 45.1));
+}
+
+//CHECK#47
+if (2147483647 >> 46.1 !== 131071) {
+ $ERROR('#47: 2147483647 >> 46.1 === 131071. Actual: ' + (2147483647 >> 46.1));
+}
+
+//CHECK#48
+if (2147483647 >> 47.1 !== 65535) {
+ $ERROR('#48: 2147483647 >> 47.1 === 65535. Actual: ' + (2147483647 >> 47.1));
+}
+
+//CHECK#49
+if (2147483647 >> 48.1 !== 32767) {
+ $ERROR('#49: 2147483647 >> 48.1 === 32767. Actual: ' + (2147483647 >> 48.1));
+}
+
+//CHECK#50
+if (2147483647 >> 49.1 !== 16383) {
+ $ERROR('#50: 2147483647 >> 49.1 === 16383. Actual: ' + (2147483647 >> 49.1));
+}
+
+//CHECK#51
+if (2147483647 >> 50.1 !== 8191) {
+ $ERROR('#51: 2147483647 >> 50.1 === 8191. Actual: ' + (2147483647 >> 50.1));
+}
+
+//CHECK#52
+if (2147483647 >> 51.1 !== 4095) {
+ $ERROR('#52: 2147483647 >> 51.1 === 4095. Actual: ' + (2147483647 >> 51.1));
+}
+
+//CHECK#53
+if (2147483647 >> 52.1 !== 2047) {
+ $ERROR('#53: 2147483647 >> 52.1 === 2047. Actual: ' + (2147483647 >> 52.1));
+}
+
+//CHECK#54
+if (2147483647 >> 53.1 !== 1023) {
+ $ERROR('#54: 2147483647 >> 53.1 === 1023. Actual: ' + (2147483647 >> 53.1));
+}
+
+//CHECK#55
+if (2147483647 >> 54.1 !== 511) {
+ $ERROR('#55: 2147483647 >> 54.1 === 511. Actual: ' + (2147483647 >> 54.1));
+}
+
+//CHECK#56
+if (2147483647 >> 55.1 !== 255) {
+ $ERROR('#56: 2147483647 >> 55.1 === 255. Actual: ' + (2147483647 >> 55.1));
+}
+
+//CHECK#57
+if (2147483647 >> 56.1 !== 127) {
+ $ERROR('#57: 2147483647 >> 56.1 === 127. Actual: ' + (2147483647 >> 56.1));
+}
+
+//CHECK#58
+if (2147483647 >> 57.1 !== 63) {
+ $ERROR('#58: 2147483647 >> 57.1 === 63. Actual: ' + (2147483647 >> 57.1));
+}
+
+//CHECK#59
+if (2147483647 >> 58.1 !== 31) {
+ $ERROR('#59: 2147483647 >> 58.1 === 31. Actual: ' + (2147483647 >> 58.1));
+}
+
+//CHECK#60
+if (2147483647 >> 59.1 !== 15) {
+ $ERROR('#60: 2147483647 >> 59.1 === 15. Actual: ' + (2147483647 >> 59.1));
+}
+
+//CHECK#61
+if (2147483647 >> 60.1 !== 7) {
+ $ERROR('#61: 2147483647 >> 60.1 === 7. Actual: ' + (2147483647 >> 60.1));
+}
+
+//CHECK#62
+if (2147483647 >> 61.1 !== 3) {
+ $ERROR('#62: 2147483647 >> 61.1 === 3. Actual: ' + (2147483647 >> 61.1));
+}
+
+//CHECK#63
+if (2147483647 >> 62.1 !== 1) {
+ $ERROR('#63: 2147483647 >> 62.1 === 1. Actual: ' + (2147483647 >> 62.1));
+}
+
+//CHECK#64
+if (2147483647 >> 63.1 !== 0) {
+ $ERROR('#64: 2147483647 >> 63.1 === 0. Actual: ' + (2147483647 >> 63.1));
+}