diff options
Diffstat (limited to 'js/src/tests/test262/ch11/11.7/11.7.1')
31 files changed, 11495 insertions, 0 deletions
diff --git a/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A1.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A1.js new file mode 100644 index 000000000..4b4e16d24 --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A1.js @@ -0,0 +1,60 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * White Space and Line Terminator between ShiftExpression and "<<" or between "<<" and AdditiveExpression are allowed + * + * @path ch11/11.7/11.7.1/S11.7.1_A1.js + * @description Checking by using eval + */ + +//CHECK#1 +if (eval("1\u0009<<\u00091") !== 2) { + $ERROR('#1: 1\\u0009<<\\u00091 === 2'); +} + +//CHECK#2 +if (eval("1\u000B<<\u000B1") !== 2) { + $ERROR('#2: 1\\u000B<<\\u000B1 === 2'); +} + +//CHECK#3 +if (eval("1\u000C<<\u000C1") !== 2) { + $ERROR('#3: 1\\u000C<<\\u000C1 === 2'); +} + +//CHECK#4 +if (eval("1\u0020<<\u00201") !== 2) { + $ERROR('#4: 1\\u0020<<\\u00201 === 2'); +} + +//CHECK#5 +if (eval("1\u00A0<<\u00A01") !== 2) { + $ERROR('#5: 1\\u00A0<<\\u00A01 === 2'); +} + +//CHECK#6 +if (eval("1\u000A<<\u000A1") !== 2) { + $ERROR('#6: 1\\u000A<<\\u000A1 === 2'); +} + +//CHECK#7 +if (eval("1\u000D<<\u000D1") !== 2) { + $ERROR('#7: 1\\u000D<<\\u000D1 === 2'); +} + +//CHECK#8 +if (eval("1\u2028<<\u20281") !== 2) { + $ERROR('#8: 1\\u2028<<\\u20281 === 2'); +} + +//CHECK#9 +if (eval("1\u2029<<\u20291") !== 2) { + $ERROR('#9: 1\\u2029<<\\u20291 === 2'); +} + +//CHECK#10 +if (eval("1\u0009\u000B\u000C\u0020\u00A0\u000A\u000D\u2028\u2029<<\u0009\u000B\u000C\u0020\u00A0\u000A\u000D\u2028\u20291") !== 2) { + $ERROR('#10: 1\\u0009\\u000B\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u2029<<\\u0009\\u000B\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u20291 === 2'); +} + diff --git a/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A2.1_T1.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A2.1_T1.js new file mode 100644 index 000000000..e1066f118 --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A2.1_T1.js @@ -0,0 +1,43 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Operator x << y uses GetValue + * + * @path ch11/11.7/11.7.1/S11.7.1_A2.1_T1.js + * @description Either Type is not Reference or GetBase is not null + */ + +//CHECK#1 +if (2 << 1 !== 4) { + $ERROR('#1: 2 << 1 === 4. Actual: ' + (2 << 1)); +} + +//CHECK#2 +var x = 2; +if (x << 1 !== 4) { + $ERROR('#2: var x = 2; x << 1 === 4. Actual: ' + (x << 1)); +} + +//CHECK#3 +var y = 1; +if (2 << y !== 4) { + $ERROR('#3: var y = 2; 2 << y === 4. Actual: ' + (2 << y)); +} + +//CHECK#4 +var x = 2; +var y = 1; +if (x << y !== 4) { + $ERROR('#4: var x = 2; var y = 1; x << y === 4. Actual: ' + (x << y)); +} + +//CHECK#5 +var objectx = new Object(); +var objecty = new Object(); +objectx.prop = 2; +objecty.prop = 1; +if (objectx.prop << objecty.prop !== 4) { + $ERROR('#5: var objectx = new Object(); var objecty = new Object(); objectx.prop = 2; objecty.prop = 1; objectx.prop << objecty.prop === 4. Actual: ' + (objectx.prop << objecty.prop)); +} + diff --git a/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A2.1_T2.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A2.1_T2.js new file mode 100644 index 000000000..1d6dcee60 --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_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. + +/** + * Operator x << y uses GetValue + * + * @path ch11/11.7/11.7.1/S11.7.1_A2.1_T2.js + * @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/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A2.1_T3.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A2.1_T3.js new file mode 100644 index 000000000..b33c6c680 --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_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. + +/** + * Operator x << y uses GetValue + * + * @path ch11/11.7/11.7.1/S11.7.1_A2.1_T3.js + * @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/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A2.2_T1.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A2.2_T1.js new file mode 100644 index 000000000..b0403a9fb --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A2.2_T1.js @@ -0,0 +1,71 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Operator x << y uses [[Default Value]] + * + * @path ch11/11.7/11.7.1/S11.7.1_A2.2_T1.js + * @description If Type(value) is Object, evaluate ToPrimitive(value, Number) + */ + +//CHECK#1 +if ({valueOf: function() {return 1}} << 1 !== 2) { + $ERROR('#1: {valueOf: function() {return 1}} << 1 === 2. Actual: ' + ({valueOf: function() {return 1}} << 1)); +} + +//CHECK#2 +if ({valueOf: function() {return 1}, toString: function() {return 0}} << 1 !== 2) { + $ERROR('#2: {valueOf: function() {return 1}, toString: function() {return 0}} << 1 === 2. Actual: ' + ({valueOf: function() {return 1}, toString: function() {return 0}} << 1)); +} + +//CHECK#3 +if ({valueOf: function() {return 1}, toString: function() {return {}}} << 1 !== 2) { + $ERROR('#3: {valueOf: function() {return 1}, toString: function() {return {}}} << 1 === 2. Actual: ' + ({valueOf: function() {return 1}, toString: function() {return {}}} << 1)); +} + +//CHECK#4 +try { + if ({valueOf: function() {return 1}, toString: function() {throw "error"}} << 1 !== 2) { + $ERROR('#4.1: {valueOf: function() {return 1}, toString: function() {throw "error"}} << 1 === 2. Actual: ' + ({valueOf: function() {return 1}, toString: function() {throw "error"}} << 1)); + } +} +catch (e) { + if (e === "error") { + $ERROR('#4.2: {valueOf: function() {return 1}, toString: function() {throw "error"}} << 1 not throw "error"'); + } else { + $ERROR('#4.3: {valueOf: function() {return 1}, toString: function() {throw "error"}} << 1 not throw Error. Actual: ' + (e)); + } +} + +//CHECK#5 +if (1 << {toString: function() {return 1}} !== 2) { + $ERROR('#5: 1 << {toString: function() {return 1}} === 2. Actual: ' + (1 << {toString: function() {return 1}})); +} + +//CHECK#6 +if (1 << {valueOf: function() {return {}}, toString: function() {return 1}} !== 2) { + $ERROR('#6: 1 << {valueOf: function() {return {}}, toString: function() {return 1}} === 2. Actual: ' + (1 << {valueOf: function() {return {}}, toString: function() {return 1}})); +} + +//CHECK#7 +try { + 1 << {valueOf: function() {throw "error"}, toString: function() {return 1}}; + $ERROR('#7.1: 1 << {valueOf: function() {throw "error"}, toString: function() {return 1}} throw "error". Actual: ' + (1 << {valueOf: function() {throw "error"}, toString: function() {return 1}})); +} +catch (e) { + if (e !== "error") { + $ERROR('#7.2: 1 << {valueOf: function() {throw "error"}, toString: function() {return 1}} throw "error". Actual: ' + (e)); + } +} + +//CHECK#8 +try { + 1 << {valueOf: function() {return {}}, toString: function() {return {}}}; + $ERROR('#8.1: 1 << {valueOf: function() {return {}}, toString: function() {return {}}} throw TypeError. Actual: ' + (1 << {valueOf: function() {return {}}, toString: function() {return {}}})); +} +catch (e) { + if ((e instanceof TypeError) !== true) { + $ERROR('#8.2: 1 << {valueOf: function() {return {}}, toString: function() {return {}}} throw TypeError. Actual: ' + (e)); + } +} + diff --git a/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A2.3_T1.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A2.3_T1.js new file mode 100644 index 000000000..e06852489 --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A2.3_T1.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. + +/** + * ToNumber(first expression) is called first, and then ToNumber(second expression) + * + * @path ch11/11.7/11.7.1/S11.7.1_A2.3_T1.js + * @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/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A2.4_T1.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A2.4_T1.js new file mode 100644 index 000000000..1beb86794 --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A2.4_T1.js @@ -0,0 +1,23 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * First expression is evaluated first, and then second expression + * + * @path ch11/11.7/11.7.1/S11.7.1_A2.4_T1.js + * @description Checking with "=" + */ + +//CHECK#1 +var x = 0; +if ((x = 1) << x !== 2) { + $ERROR('#1: var x = 0; (x = 1) << x === 2. Actual: ' + ((x = 1) << x)); +} + +//CHECK#2 +var x = 0; +if (x << (x = 1) !== 0) { + $ERROR('#2: var x = 0; x << (x = 1) === 0. Actual: ' + (x << (x = 1))); +} + + diff --git a/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A2.4_T2.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A2.4_T2.js new file mode 100644 index 000000000..e44dd956a --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A2.4_T2.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. + +/** + * First expression is evaluated first, and then second expression + * + * @path ch11/11.7/11.7.1/S11.7.1_A2.4_T2.js + * @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/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A2.4_T3.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A2.4_T3.js new file mode 100644 index 000000000..ed53451ac --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A2.4_T3.js @@ -0,0 +1,27 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * First expression is evaluated first, and then second expression + * + * @path ch11/11.7/11.7.1/S11.7.1_A2.4_T3.js + * @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 !== 2) { + $ERROR('#2: (y = 1) << y === 2. Actual: ' + ((y = 1) << y)); +} + + diff --git a/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T1.1.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T1.1.js new file mode 100644 index 000000000..5e1e84696 --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T1.1.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. + +/** + * Operator x << y returns ToNumber(x) << ToNumber(y) + * + * @path ch11/11.7/11.7.1/S11.7.1_A3_T1.1.js + * @description Type(x) and Type(y) vary between primitive boolean and Boolean object + */ + +//CHECK#1 +if (true << true !== 2) { + $ERROR('#1: true << true === 2. Actual: ' + (true << true)); +} + +//CHECK#2 +if (new Boolean(true) << true !== 2) { + $ERROR('#2: new Boolean(true) << true === 2. Actual: ' + (new Boolean(true) << true)); +} + +//CHECK#3 +if (true << new Boolean(true) !== 2) { + $ERROR('#3: true << new Boolean(true) === 2. Actual: ' + (true << new Boolean(true))); +} + +//CHECK#4 +if (new Boolean(true) << new Boolean(true) !== 2) { + $ERROR('#4: new Boolean(true) << new Boolean(true) === 2. Actual: ' + (new Boolean(true) << new Boolean(true))); +} + diff --git a/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T1.2.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T1.2.js new file mode 100644 index 000000000..06d8dca64 --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T1.2.js @@ -0,0 +1,31 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Operator x << y returns ToNumber(x) << ToNumber(y) + * + * @path ch11/11.7/11.7.1/S11.7.1_A3_T1.2.js + * @description Type(x) and Type(y) vary between primitive number and Number object + */ + +//CHECK#1 +if (1 << 1 !== 2) { + $ERROR('#1: 1 << 1 === 2. Actual: ' + (1 << 1)); +} + +//CHECK#2 +if (new Number(1) << 1 !== 2) { + $ERROR('#2: new Number(1) << 1 === 2. Actual: ' + (new Number(1) << 1)); +} + +//CHECK#3 +if (1 << new Number(1) !== 2) { + $ERROR('#3: 1 << new Number(1) === 2. Actual: ' + (1 << new Number(1))); +} + +//CHECK#4 +if (new Number(1) << new Number(1) !== 2) { + $ERROR('#4: new Number(1) << new Number(1) === 2. Actual: ' + (new Number(1) << new Number(1))); +} + + diff --git a/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T1.3.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T1.3.js new file mode 100644 index 000000000..400362c34 --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T1.3.js @@ -0,0 +1,40 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Operator x << y returns ToNumber(x) << ToNumber(y) + * + * @path ch11/11.7/11.7.1/S11.7.1_A3_T1.3.js + * @description Type(x) and Type(y) vary between primitive string and String object + */ + +//CHECK#1 +if ("1" << "1" !== 2) { + $ERROR('#1: "1" << "1" === 2. Actual: ' + ("1" << "1")); +} + +//CHECK#2 +if (new String("1") << "1" !== 2) { + $ERROR('#2: new String("1") << "1" === 2. Actual: ' + (new String("1") << "1")); +} + +//CHECK#3 +if ("1" << new String("1") !== 2) { + $ERROR('#3: "1" << new String("1") === 2. Actual: ' + ("1" << new String("1"))); +} + +//CHECK#4 +if (new String("1") << new String("1") !== 2) { + $ERROR('#4: new String("1") << new String("1") === 2. 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/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T1.4.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T1.4.js new file mode 100644 index 000000000..f96d4eee5 --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T1.4.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. + +/** + * Operator x << y returns ToNumber(x) << ToNumber(y) + * + * @path ch11/11.7/11.7.1/S11.7.1_A3_T1.4.js + * @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/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T1.5.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T1.5.js new file mode 100644 index 000000000..a548852a9 --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T1.5.js @@ -0,0 +1,31 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Operator x << y returns ToNumber(x) << ToNumber(y) + * + * @path ch11/11.7/11.7.1/S11.7.1_A3_T1.5.js + * @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/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.1.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.1.js new file mode 100644 index 000000000..3865695e1 --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.1.js @@ -0,0 +1,50 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Operator x << y returns ToNumber(x) << ToNumber(y) + * + * @path ch11/11.7/11.7.1/S11.7.1_A3_T2.1.js + * @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 !== 2) { + $ERROR('#1: true << 1 === 2. Actual: ' + (true << 1)); +} + +//CHECK#2 +if (1 << true !== 2) { + $ERROR('#2: 1 << true === 2. Actual: ' + (1 << true)); +} + +//CHECK#3 +if (new Boolean(true) << 1 !== 2) { + $ERROR('#3: new Boolean(true) << 1 === 2. Actual: ' + (new Boolean(true) << 1)); +} + +//CHECK#4 +if (1 << new Boolean(true) !== 2) { + $ERROR('#4: 1 << new Boolean(true) === 2. Actual: ' + (1 << new Boolean(true))); +} + +//CHECK#5 +if (true << new Number(1) !== 2) { + $ERROR('#5: true << new Number(1) === 2. Actual: ' + (true << new Number(1))); +} + +//CHECK#6 +if (new Number(1) << true !== 2) { + $ERROR('#6: new Number(1) << true === 2. Actual: ' + (new Number(1) << true)); +} + +//CHECK#7 +if (new Boolean(true) << new Number(1) !== 2) { + $ERROR('#7: new Boolean(true) << new Number(1) === 2. Actual: ' + (new Boolean(true) << new Number(1))); +} + +//CHECK#8 +if (new Number(1) << new Boolean(true) !== 2) { + $ERROR('#8: new Number(1) << new Boolean(true) === 2. Actual: ' + (new Number(1) << new Boolean(true))); +} + diff --git a/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.2.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.2.js new file mode 100644 index 000000000..363ee7234 --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.2.js @@ -0,0 +1,60 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Operator x << y returns ToNumber(x) << ToNumber(y) + * + * @path ch11/11.7/11.7.1/S11.7.1_A3_T2.2.js + * @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 !== 2) { + $ERROR('#1: "1" << 1 === 2. Actual: ' + ("1" << 1)); +} + +//CHECK#2 +if (1 << "1" !== 2) { + $ERROR('#2: 1 << "1" === 2. Actual: ' + (1 << "1")); +} + +//CHECK#3 +if (new String("1") << 1 !== 2) { + $ERROR('#3: new String("1") << 1 === 2. Actual: ' + (new String("1") << 1)); +} + +//CHECK#4 +if (1 << new String("1") !== 2) { + $ERROR('#4: 1 << new String("1") === 2. Actual: ' + (1 << new String("1"))); +} + +//CHECK#5 +if ("1" << new Number(1) !== 2) { + $ERROR('#5: "1" << new Number(1) === 2. Actual: ' + ("1" << new Number(1))); +} + +//CHECK#6 +if (new Number(1) << "1" !== 2) { + $ERROR('#6: new Number(1) << "1" === 2. Actual: ' + (new Number(1) << "1")); +} + +//CHECK#7 +if (new String("1") << new Number(1) !== 2) { + $ERROR('#7: new String("1") << new Number(1) === 2. Actual: ' + (new String("1") << new Number(1))); +} + +//CHECK#8 +if (new Number(1) << new String("1") !== 2) { + $ERROR('#8: new Number(1) << new String("1") === 2. 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/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.3.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.3.js new file mode 100644 index 000000000..182b1fbd2 --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.3.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. + +/** + * Operator x << y returns ToNumber(x) << ToNumber(y) + * + * @path ch11/11.7/11.7.1/S11.7.1_A3_T2.3.js + * @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/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.4.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.4.js new file mode 100644 index 000000000..2a4836aa5 --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.4.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. + +/** + * Operator x << y returns ToNumber(x) << ToNumber(y) + * + * @path ch11/11.7/11.7.1/S11.7.1_A3_T2.4.js + * @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/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.5.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.5.js new file mode 100644 index 000000000..fa8652c5b --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.5.js @@ -0,0 +1,50 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Operator x << y returns ToNumber(x) << ToNumber(y) + * + * @path ch11/11.7/11.7.1/S11.7.1_A3_T2.5.js + * @description Type(x) is different from Type(y) and both types vary between String (primitive or object) or Boolean (primitive and object) + */ + +//CHECK#1 +if (true << "1" !== 2) { + $ERROR('#1: true << "1" === 2. Actual: ' + (true << "1")); +} + +//CHECK#2 +if ("1" << true !== 2) { + $ERROR('#2: "1" << true === 2. Actual: ' + ("1" << true)); +} + +//CHECK#3 +if (new Boolean(true) << "1" !== 2) { + $ERROR('#3: new Boolean(true) << "1" === 2. Actual: ' + (new Boolean(true) << "1")); +} + +//CHECK#4 +if ("1" << new Boolean(true) !== 2) { + $ERROR('#4: "1" << new Boolean(true) === 2. Actual: ' + ("1" << new Boolean(true))); +} + +//CHECK#5 +if (true << new String("1") !== 2) { + $ERROR('#5: true << new String("1") === 2. Actual: ' + (true << new String("1"))); +} + +//CHECK#6 +if (new String("1") << true !== 2) { + $ERROR('#6: new String("1") << true === 2. Actual: ' + (new String("1") << true)); +} + +//CHECK#7 +if (new Boolean(true) << new String("1") !== 2) { + $ERROR('#7: new Boolean(true) << new String("1") === 2. Actual: ' + (new Boolean(true) << new String("1"))); +} + +//CHECK#8 +if (new String("1") << new Boolean(true) !== 2) { + $ERROR('#8: new String("1") << new Boolean(true) === 2. Actual: ' + (new String("1") << new Boolean(true))); +} + diff --git a/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.6.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.6.js new file mode 100644 index 000000000..4f5d8c668 --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.6.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. + +/** + * Operator x << y returns ToNumber(x) << ToNumber(y) + * + * @path ch11/11.7/11.7.1/S11.7.1_A3_T2.6.js + * @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/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.7.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.7.js new file mode 100644 index 000000000..da246f173 --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.7.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. + +/** + * Operator x << y returns ToNumber(x) << ToNumber(y) + * + * @path ch11/11.7/11.7.1/S11.7.1_A3_T2.7.js + * @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/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.8.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.8.js new file mode 100644 index 000000000..6c0d3858d --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.8.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. + +/** + * Operator x << y returns ToNumber(x) << ToNumber(y) + * + * @path ch11/11.7/11.7.1/S11.7.1_A3_T2.8.js + * @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/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.9.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.9.js new file mode 100644 index 000000000..25935fea7 --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A3_T2.9.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. + +/** + * Operator x << y returns ToNumber(x) << ToNumber(y) + * + * @path ch11/11.7/11.7.1/S11.7.1_A3_T2.9.js + * @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/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A4_T1.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A4_T1.js new file mode 100644 index 000000000..6c2416dd9 --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A4_T1.js @@ -0,0 +1,2571 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Check operator x << y in distinct points + * + * @path ch11/11.7/11.7.1/S11.7.1_A4_T1.js + * @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 !== -2) { + $ERROR('#33: -1 << 1 === -2. Actual: ' + (-1 << 1)); +} + + +if (-2 << 1 !== -4) { + $ERROR('#34: -2 << 1 === -4. Actual: ' + (-2 << 1)); +} + + +if (-4 << 1 !== -8) { + $ERROR('#35: -4 << 1 === -8. Actual: ' + (-4 << 1)); +} + + +if (-8 << 1 !== -16) { + $ERROR('#36: -8 << 1 === -16. Actual: ' + (-8 << 1)); +} + + +if (-16 << 1 !== -32) { + $ERROR('#37: -16 << 1 === -32. Actual: ' + (-16 << 1)); +} + + +if (-32 << 1 !== -64) { + $ERROR('#38: -32 << 1 === -64. Actual: ' + (-32 << 1)); +} + + +if (-64 << 1 !== -128) { + $ERROR('#39: -64 << 1 === -128. Actual: ' + (-64 << 1)); +} + + +if (-128 << 1 !== -256) { + $ERROR('#40: -128 << 1 === -256. Actual: ' + (-128 << 1)); +} + + +if (-256 << 1 !== -512) { + $ERROR('#41: -256 << 1 === -512. Actual: ' + (-256 << 1)); +} + + +if (-512 << 1 !== -1024) { + $ERROR('#42: -512 << 1 === -1024. Actual: ' + (-512 << 1)); +} + + +if (-1024 << 1 !== -2048) { + $ERROR('#43: -1024 << 1 === -2048. Actual: ' + (-1024 << 1)); +} + + +if (-2048 << 1 !== -4096) { + $ERROR('#44: -2048 << 1 === -4096. Actual: ' + (-2048 << 1)); +} + + +if (-4096 << 1 !== -8192) { + $ERROR('#45: -4096 << 1 === -8192. Actual: ' + (-4096 << 1)); +} + + +if (-8192 << 1 !== -16384) { + $ERROR('#46: -8192 << 1 === -16384. Actual: ' + (-8192 << 1)); +} + + +if (-16384 << 1 !== -32768) { + $ERROR('#47: -16384 << 1 === -32768. Actual: ' + (-16384 << 1)); +} + + +if (-32768 << 1 !== -65536) { + $ERROR('#48: -32768 << 1 === -65536. Actual: ' + (-32768 << 1)); +} + + +if (-65536 << 1 !== -131072) { + $ERROR('#49: -65536 << 1 === -131072. Actual: ' + (-65536 << 1)); +} + + +if (-131072 << 1 !== -262144) { + $ERROR('#50: -131072 << 1 === -262144. Actual: ' + (-131072 << 1)); +} + + +if (-262144 << 1 !== -524288) { + $ERROR('#51: -262144 << 1 === -524288. Actual: ' + (-262144 << 1)); +} + + +if (-524288 << 1 !== -1048576) { + $ERROR('#52: -524288 << 1 === -1048576. Actual: ' + (-524288 << 1)); +} + + +if (-1048576 << 1 !== -2097152) { + $ERROR('#53: -1048576 << 1 === -2097152. Actual: ' + (-1048576 << 1)); +} + + +if (-2097152 << 1 !== -4194304) { + $ERROR('#54: -2097152 << 1 === -4194304. Actual: ' + (-2097152 << 1)); +} + + +if (-4194304 << 1 !== -8388608) { + $ERROR('#55: -4194304 << 1 === -8388608. Actual: ' + (-4194304 << 1)); +} + + +if (-8388608 << 1 !== -16777216) { + $ERROR('#56: -8388608 << 1 === -16777216. Actual: ' + (-8388608 << 1)); +} + + +if (-16777216 << 1 !== -33554432) { + $ERROR('#57: -16777216 << 1 === -33554432. Actual: ' + (-16777216 << 1)); +} + + +if (-33554432 << 1 !== -67108864) { + $ERROR('#58: -33554432 << 1 === -67108864. Actual: ' + (-33554432 << 1)); +} + + +if (-67108864 << 1 !== -134217728) { + $ERROR('#59: -67108864 << 1 === -134217728. Actual: ' + (-67108864 << 1)); +} + + +if (-134217728 << 1 !== -268435456) { + $ERROR('#60: -134217728 << 1 === -268435456. Actual: ' + (-134217728 << 1)); +} + + +if (-268435456 << 1 !== -536870912) { + $ERROR('#61: -268435456 << 1 === -536870912. Actual: ' + (-268435456 << 1)); +} + + +if (-536870912 << 1 !== -1073741824) { + $ERROR('#62: -536870912 << 1 === -1073741824. Actual: ' + (-536870912 << 1)); +} + + +if (-1073741824 << 1 !== -2147483648) { + $ERROR('#63: -1073741824 << 1 === -2147483648. Actual: ' + (-1073741824 << 1)); +} + + +if (-2147483648 << 1 !== 0) { + $ERROR('#64: -2147483648 << 1 === 0. Actual: ' + (-2147483648 << 1)); +} + + +if (-1 << 2 !== -4) { + $ERROR('#65: -1 << 2 === -4. Actual: ' + (-1 << 2)); +} + + +if (-2 << 2 !== -8) { + $ERROR('#66: -2 << 2 === -8. Actual: ' + (-2 << 2)); +} + + +if (-4 << 2 !== -16) { + $ERROR('#67: -4 << 2 === -16. Actual: ' + (-4 << 2)); +} + + +if (-8 << 2 !== -32) { + $ERROR('#68: -8 << 2 === -32. Actual: ' + (-8 << 2)); +} + + +if (-16 << 2 !== -64) { + $ERROR('#69: -16 << 2 === -64. Actual: ' + (-16 << 2)); +} + + +if (-32 << 2 !== -128) { + $ERROR('#70: -32 << 2 === -128. Actual: ' + (-32 << 2)); +} + + +if (-64 << 2 !== -256) { + $ERROR('#71: -64 << 2 === -256. Actual: ' + (-64 << 2)); +} + + +if (-128 << 2 !== -512) { + $ERROR('#72: -128 << 2 === -512. Actual: ' + (-128 << 2)); +} + + +if (-256 << 2 !== -1024) { + $ERROR('#73: -256 << 2 === -1024. Actual: ' + (-256 << 2)); +} + + +if (-512 << 2 !== -2048) { + $ERROR('#74: -512 << 2 === -2048. Actual: ' + (-512 << 2)); +} + + +if (-1024 << 2 !== -4096) { + $ERROR('#75: -1024 << 2 === -4096. Actual: ' + (-1024 << 2)); +} + + +if (-2048 << 2 !== -8192) { + $ERROR('#76: -2048 << 2 === -8192. Actual: ' + (-2048 << 2)); +} + + +if (-4096 << 2 !== -16384) { + $ERROR('#77: -4096 << 2 === -16384. Actual: ' + (-4096 << 2)); +} + + +if (-8192 << 2 !== -32768) { + $ERROR('#78: -8192 << 2 === -32768. Actual: ' + (-8192 << 2)); +} + + +if (-16384 << 2 !== -65536) { + $ERROR('#79: -16384 << 2 === -65536. Actual: ' + (-16384 << 2)); +} + + +if (-32768 << 2 !== -131072) { + $ERROR('#80: -32768 << 2 === -131072. Actual: ' + (-32768 << 2)); +} + + +if (-65536 << 2 !== -262144) { + $ERROR('#81: -65536 << 2 === -262144. Actual: ' + (-65536 << 2)); +} + + +if (-131072 << 2 !== -524288) { + $ERROR('#82: -131072 << 2 === -524288. Actual: ' + (-131072 << 2)); +} + + +if (-262144 << 2 !== -1048576) { + $ERROR('#83: -262144 << 2 === -1048576. Actual: ' + (-262144 << 2)); +} + + +if (-524288 << 2 !== -2097152) { + $ERROR('#84: -524288 << 2 === -2097152. Actual: ' + (-524288 << 2)); +} + + +if (-1048576 << 2 !== -4194304) { + $ERROR('#85: -1048576 << 2 === -4194304. Actual: ' + (-1048576 << 2)); +} + + +if (-2097152 << 2 !== -8388608) { + $ERROR('#86: -2097152 << 2 === -8388608. Actual: ' + (-2097152 << 2)); +} + + +if (-4194304 << 2 !== -16777216) { + $ERROR('#87: -4194304 << 2 === -16777216. Actual: ' + (-4194304 << 2)); +} + + +if (-8388608 << 2 !== -33554432) { + $ERROR('#88: -8388608 << 2 === -33554432. Actual: ' + (-8388608 << 2)); +} + + +if (-16777216 << 2 !== -67108864) { + $ERROR('#89: -16777216 << 2 === -67108864. Actual: ' + (-16777216 << 2)); +} + + +if (-33554432 << 2 !== -134217728) { + $ERROR('#90: -33554432 << 2 === -134217728. Actual: ' + (-33554432 << 2)); +} + + +if (-67108864 << 2 !== -268435456) { + $ERROR('#91: -67108864 << 2 === -268435456. Actual: ' + (-67108864 << 2)); +} + + +if (-134217728 << 2 !== -536870912) { + $ERROR('#92: -134217728 << 2 === -536870912. Actual: ' + (-134217728 << 2)); +} + + +if (-268435456 << 2 !== -1073741824) { + $ERROR('#93: -268435456 << 2 === -1073741824. Actual: ' + (-268435456 << 2)); +} + + +if (-536870912 << 2 !== -2147483648) { + $ERROR('#94: -536870912 << 2 === -2147483648. Actual: ' + (-536870912 << 2)); +} + + +if (-1073741824 << 2 !== 0) { + $ERROR('#95: -1073741824 << 2 === 0. Actual: ' + (-1073741824 << 2)); +} + + +if (-2147483648 << 2 !== 0) { + $ERROR('#96: -2147483648 << 2 === 0. Actual: ' + (-2147483648 << 2)); +} + + +if (-1 << 3 !== -8) { + $ERROR('#97: -1 << 3 === -8. Actual: ' + (-1 << 3)); +} + + +if (-2 << 3 !== -16) { + $ERROR('#98: -2 << 3 === -16. Actual: ' + (-2 << 3)); +} + + +if (-4 << 3 !== -32) { + $ERROR('#99: -4 << 3 === -32. Actual: ' + (-4 << 3)); +} + + +if (-8 << 3 !== -64) { + $ERROR('#100: -8 << 3 === -64. Actual: ' + (-8 << 3)); +} + + +if (-16 << 3 !== -128) { + $ERROR('#101: -16 << 3 === -128. Actual: ' + (-16 << 3)); +} + + +if (-32 << 3 !== -256) { + $ERROR('#102: -32 << 3 === -256. Actual: ' + (-32 << 3)); +} + + +if (-64 << 3 !== -512) { + $ERROR('#103: -64 << 3 === -512. Actual: ' + (-64 << 3)); +} + + +if (-128 << 3 !== -1024) { + $ERROR('#104: -128 << 3 === -1024. Actual: ' + (-128 << 3)); +} + + +if (-256 << 3 !== -2048) { + $ERROR('#105: -256 << 3 === -2048. Actual: ' + (-256 << 3)); +} + + +if (-512 << 3 !== -4096) { + $ERROR('#106: -512 << 3 === -4096. Actual: ' + (-512 << 3)); +} + + +if (-1024 << 3 !== -8192) { + $ERROR('#107: -1024 << 3 === -8192. Actual: ' + (-1024 << 3)); +} + + +if (-2048 << 3 !== -16384) { + $ERROR('#108: -2048 << 3 === -16384. Actual: ' + (-2048 << 3)); +} + + +if (-4096 << 3 !== -32768) { + $ERROR('#109: -4096 << 3 === -32768. Actual: ' + (-4096 << 3)); +} + + +if (-8192 << 3 !== -65536) { + $ERROR('#110: -8192 << 3 === -65536. Actual: ' + (-8192 << 3)); +} + + +if (-16384 << 3 !== -131072) { + $ERROR('#111: -16384 << 3 === -131072. Actual: ' + (-16384 << 3)); +} + + +if (-32768 << 3 !== -262144) { + $ERROR('#112: -32768 << 3 === -262144. Actual: ' + (-32768 << 3)); +} + + +if (-65536 << 3 !== -524288) { + $ERROR('#113: -65536 << 3 === -524288. Actual: ' + (-65536 << 3)); +} + + +if (-131072 << 3 !== -1048576) { + $ERROR('#114: -131072 << 3 === -1048576. Actual: ' + (-131072 << 3)); +} + + +if (-262144 << 3 !== -2097152) { + $ERROR('#115: -262144 << 3 === -2097152. Actual: ' + (-262144 << 3)); +} + + +if (-524288 << 3 !== -4194304) { + $ERROR('#116: -524288 << 3 === -4194304. Actual: ' + (-524288 << 3)); +} + + +if (-1048576 << 3 !== -8388608) { + $ERROR('#117: -1048576 << 3 === -8388608. Actual: ' + (-1048576 << 3)); +} + + +if (-2097152 << 3 !== -16777216) { + $ERROR('#118: -2097152 << 3 === -16777216. Actual: ' + (-2097152 << 3)); +} + + +if (-4194304 << 3 !== -33554432) { + $ERROR('#119: -4194304 << 3 === -33554432. Actual: ' + (-4194304 << 3)); +} + + +if (-8388608 << 3 !== -67108864) { + $ERROR('#120: -8388608 << 3 === -67108864. Actual: ' + (-8388608 << 3)); +} + + +if (-16777216 << 3 !== -134217728) { + $ERROR('#121: -16777216 << 3 === -134217728. Actual: ' + (-16777216 << 3)); +} + + +if (-33554432 << 3 !== -268435456) { + $ERROR('#122: -33554432 << 3 === -268435456. Actual: ' + (-33554432 << 3)); +} + + +if (-67108864 << 3 !== -536870912) { + $ERROR('#123: -67108864 << 3 === -536870912. Actual: ' + (-67108864 << 3)); +} + + +if (-134217728 << 3 !== -1073741824) { + $ERROR('#124: -134217728 << 3 === -1073741824. Actual: ' + (-134217728 << 3)); +} + + +if (-268435456 << 3 !== -2147483648) { + $ERROR('#125: -268435456 << 3 === -2147483648. Actual: ' + (-268435456 << 3)); +} + + +if (-536870912 << 3 !== 0) { + $ERROR('#126: -536870912 << 3 === 0. Actual: ' + (-536870912 << 3)); +} + + +if (-1073741824 << 3 !== 0) { + $ERROR('#127: -1073741824 << 3 === 0. Actual: ' + (-1073741824 << 3)); +} + + +if (-2147483648 << 3 !== 0) { + $ERROR('#128: -2147483648 << 3 === 0. Actual: ' + (-2147483648 << 3)); +} + + +if (-1 << 4 !== -16) { + $ERROR('#129: -1 << 4 === -16. Actual: ' + (-1 << 4)); +} + + +if (-2 << 4 !== -32) { + $ERROR('#130: -2 << 4 === -32. Actual: ' + (-2 << 4)); +} + + +if (-4 << 4 !== -64) { + $ERROR('#131: -4 << 4 === -64. Actual: ' + (-4 << 4)); +} + + +if (-8 << 4 !== -128) { + $ERROR('#132: -8 << 4 === -128. Actual: ' + (-8 << 4)); +} + + +if (-16 << 4 !== -256) { + $ERROR('#133: -16 << 4 === -256. Actual: ' + (-16 << 4)); +} + + +if (-32 << 4 !== -512) { + $ERROR('#134: -32 << 4 === -512. Actual: ' + (-32 << 4)); +} + + +if (-64 << 4 !== -1024) { + $ERROR('#135: -64 << 4 === -1024. Actual: ' + (-64 << 4)); +} + + +if (-128 << 4 !== -2048) { + $ERROR('#136: -128 << 4 === -2048. Actual: ' + (-128 << 4)); +} + + +if (-256 << 4 !== -4096) { + $ERROR('#137: -256 << 4 === -4096. Actual: ' + (-256 << 4)); +} + + +if (-512 << 4 !== -8192) { + $ERROR('#138: -512 << 4 === -8192. Actual: ' + (-512 << 4)); +} + + +if (-1024 << 4 !== -16384) { + $ERROR('#139: -1024 << 4 === -16384. Actual: ' + (-1024 << 4)); +} + + +if (-2048 << 4 !== -32768) { + $ERROR('#140: -2048 << 4 === -32768. Actual: ' + (-2048 << 4)); +} + + +if (-4096 << 4 !== -65536) { + $ERROR('#141: -4096 << 4 === -65536. Actual: ' + (-4096 << 4)); +} + + +if (-8192 << 4 !== -131072) { + $ERROR('#142: -8192 << 4 === -131072. Actual: ' + (-8192 << 4)); +} + + +if (-16384 << 4 !== -262144) { + $ERROR('#143: -16384 << 4 === -262144. Actual: ' + (-16384 << 4)); +} + + +if (-32768 << 4 !== -524288) { + $ERROR('#144: -32768 << 4 === -524288. Actual: ' + (-32768 << 4)); +} + + +if (-65536 << 4 !== -1048576) { + $ERROR('#145: -65536 << 4 === -1048576. Actual: ' + (-65536 << 4)); +} + + +if (-131072 << 4 !== -2097152) { + $ERROR('#146: -131072 << 4 === -2097152. Actual: ' + (-131072 << 4)); +} + + +if (-262144 << 4 !== -4194304) { + $ERROR('#147: -262144 << 4 === -4194304. Actual: ' + (-262144 << 4)); +} + + +if (-524288 << 4 !== -8388608) { + $ERROR('#148: -524288 << 4 === -8388608. Actual: ' + (-524288 << 4)); +} + + +if (-1048576 << 4 !== -16777216) { + $ERROR('#149: -1048576 << 4 === -16777216. Actual: ' + (-1048576 << 4)); +} + + +if (-2097152 << 4 !== -33554432) { + $ERROR('#150: -2097152 << 4 === -33554432. Actual: ' + (-2097152 << 4)); +} + + +if (-4194304 << 4 !== -67108864) { + $ERROR('#151: -4194304 << 4 === -67108864. Actual: ' + (-4194304 << 4)); +} + + +if (-8388608 << 4 !== -134217728) { + $ERROR('#152: -8388608 << 4 === -134217728. Actual: ' + (-8388608 << 4)); +} + + +if (-16777216 << 4 !== -268435456) { + $ERROR('#153: -16777216 << 4 === -268435456. Actual: ' + (-16777216 << 4)); +} + + +if (-33554432 << 4 !== -536870912) { + $ERROR('#154: -33554432 << 4 === -536870912. Actual: ' + (-33554432 << 4)); +} + + +if (-67108864 << 4 !== -1073741824) { + $ERROR('#155: -67108864 << 4 === -1073741824. Actual: ' + (-67108864 << 4)); +} + + +if (-134217728 << 4 !== -2147483648) { + $ERROR('#156: -134217728 << 4 === -2147483648. Actual: ' + (-134217728 << 4)); +} + + +if (-268435456 << 4 !== 0) { + $ERROR('#157: -268435456 << 4 === 0. Actual: ' + (-268435456 << 4)); +} + + +if (-536870912 << 4 !== 0) { + $ERROR('#158: -536870912 << 4 === 0. Actual: ' + (-536870912 << 4)); +} + + +if (-1073741824 << 4 !== 0) { + $ERROR('#159: -1073741824 << 4 === 0. Actual: ' + (-1073741824 << 4)); +} + + +if (-2147483648 << 4 !== 0) { + $ERROR('#160: -2147483648 << 4 === 0. Actual: ' + (-2147483648 << 4)); +} + + +if (-1 << 5 !== -32) { + $ERROR('#161: -1 << 5 === -32. Actual: ' + (-1 << 5)); +} + + +if (-2 << 5 !== -64) { + $ERROR('#162: -2 << 5 === -64. Actual: ' + (-2 << 5)); +} + + +if (-4 << 5 !== -128) { + $ERROR('#163: -4 << 5 === -128. Actual: ' + (-4 << 5)); +} + + +if (-8 << 5 !== -256) { + $ERROR('#164: -8 << 5 === -256. Actual: ' + (-8 << 5)); +} + + +if (-16 << 5 !== -512) { + $ERROR('#165: -16 << 5 === -512. Actual: ' + (-16 << 5)); +} + + +if (-32 << 5 !== -1024) { + $ERROR('#166: -32 << 5 === -1024. Actual: ' + (-32 << 5)); +} + + +if (-64 << 5 !== -2048) { + $ERROR('#167: -64 << 5 === -2048. Actual: ' + (-64 << 5)); +} + + +if (-128 << 5 !== -4096) { + $ERROR('#168: -128 << 5 === -4096. Actual: ' + (-128 << 5)); +} + + +if (-256 << 5 !== -8192) { + $ERROR('#169: -256 << 5 === -8192. Actual: ' + (-256 << 5)); +} + + +if (-512 << 5 !== -16384) { + $ERROR('#170: -512 << 5 === -16384. Actual: ' + (-512 << 5)); +} + + +if (-1024 << 5 !== -32768) { + $ERROR('#171: -1024 << 5 === -32768. Actual: ' + (-1024 << 5)); +} + + +if (-2048 << 5 !== -65536) { + $ERROR('#172: -2048 << 5 === -65536. Actual: ' + (-2048 << 5)); +} + + +if (-4096 << 5 !== -131072) { + $ERROR('#173: -4096 << 5 === -131072. Actual: ' + (-4096 << 5)); +} + + +if (-8192 << 5 !== -262144) { + $ERROR('#174: -8192 << 5 === -262144. Actual: ' + (-8192 << 5)); +} + + +if (-16384 << 5 !== -524288) { + $ERROR('#175: -16384 << 5 === -524288. Actual: ' + (-16384 << 5)); +} + + +if (-32768 << 5 !== -1048576) { + $ERROR('#176: -32768 << 5 === -1048576. Actual: ' + (-32768 << 5)); +} + + +if (-65536 << 5 !== -2097152) { + $ERROR('#177: -65536 << 5 === -2097152. Actual: ' + (-65536 << 5)); +} + + +if (-131072 << 5 !== -4194304) { + $ERROR('#178: -131072 << 5 === -4194304. Actual: ' + (-131072 << 5)); +} + + +if (-262144 << 5 !== -8388608) { + $ERROR('#179: -262144 << 5 === -8388608. Actual: ' + (-262144 << 5)); +} + + +if (-524288 << 5 !== -16777216) { + $ERROR('#180: -524288 << 5 === -16777216. Actual: ' + (-524288 << 5)); +} + + +if (-1048576 << 5 !== -33554432) { + $ERROR('#181: -1048576 << 5 === -33554432. Actual: ' + (-1048576 << 5)); +} + + +if (-2097152 << 5 !== -67108864) { + $ERROR('#182: -2097152 << 5 === -67108864. Actual: ' + (-2097152 << 5)); +} + + +if (-4194304 << 5 !== -134217728) { + $ERROR('#183: -4194304 << 5 === -134217728. Actual: ' + (-4194304 << 5)); +} + + +if (-8388608 << 5 !== -268435456) { + $ERROR('#184: -8388608 << 5 === -268435456. Actual: ' + (-8388608 << 5)); +} + + +if (-16777216 << 5 !== -536870912) { + $ERROR('#185: -16777216 << 5 === -536870912. Actual: ' + (-16777216 << 5)); +} + + +if (-33554432 << 5 !== -1073741824) { + $ERROR('#186: -33554432 << 5 === -1073741824. Actual: ' + (-33554432 << 5)); +} + + +if (-67108864 << 5 !== -2147483648) { + $ERROR('#187: -67108864 << 5 === -2147483648. Actual: ' + (-67108864 << 5)); +} + + +if (-134217728 << 5 !== 0) { + $ERROR('#188: -134217728 << 5 === 0. Actual: ' + (-134217728 << 5)); +} + + +if (-268435456 << 5 !== 0) { + $ERROR('#189: -268435456 << 5 === 0. Actual: ' + (-268435456 << 5)); +} + + +if (-536870912 << 5 !== 0) { + $ERROR('#190: -536870912 << 5 === 0. Actual: ' + (-536870912 << 5)); +} + + +if (-1073741824 << 5 !== 0) { + $ERROR('#191: -1073741824 << 5 === 0. Actual: ' + (-1073741824 << 5)); +} + + +if (-2147483648 << 5 !== 0) { + $ERROR('#192: -2147483648 << 5 === 0. Actual: ' + (-2147483648 << 5)); +} + + +if (-1 << 6 !== -64) { + $ERROR('#193: -1 << 6 === -64. Actual: ' + (-1 << 6)); +} + + +if (-2 << 6 !== -128) { + $ERROR('#194: -2 << 6 === -128. Actual: ' + (-2 << 6)); +} + + +if (-4 << 6 !== -256) { + $ERROR('#195: -4 << 6 === -256. Actual: ' + (-4 << 6)); +} + + +if (-8 << 6 !== -512) { + $ERROR('#196: -8 << 6 === -512. Actual: ' + (-8 << 6)); +} + + +if (-16 << 6 !== -1024) { + $ERROR('#197: -16 << 6 === -1024. Actual: ' + (-16 << 6)); +} + + +if (-32 << 6 !== -2048) { + $ERROR('#198: -32 << 6 === -2048. Actual: ' + (-32 << 6)); +} + + +if (-64 << 6 !== -4096) { + $ERROR('#199: -64 << 6 === -4096. Actual: ' + (-64 << 6)); +} + + +if (-128 << 6 !== -8192) { + $ERROR('#200: -128 << 6 === -8192. Actual: ' + (-128 << 6)); +} + + +if (-256 << 6 !== -16384) { + $ERROR('#201: -256 << 6 === -16384. Actual: ' + (-256 << 6)); +} + + +if (-512 << 6 !== -32768) { + $ERROR('#202: -512 << 6 === -32768. Actual: ' + (-512 << 6)); +} + + +if (-1024 << 6 !== -65536) { + $ERROR('#203: -1024 << 6 === -65536. Actual: ' + (-1024 << 6)); +} + + +if (-2048 << 6 !== -131072) { + $ERROR('#204: -2048 << 6 === -131072. Actual: ' + (-2048 << 6)); +} + + +if (-4096 << 6 !== -262144) { + $ERROR('#205: -4096 << 6 === -262144. Actual: ' + (-4096 << 6)); +} + + +if (-8192 << 6 !== -524288) { + $ERROR('#206: -8192 << 6 === -524288. Actual: ' + (-8192 << 6)); +} + + +if (-16384 << 6 !== -1048576) { + $ERROR('#207: -16384 << 6 === -1048576. Actual: ' + (-16384 << 6)); +} + + +if (-32768 << 6 !== -2097152) { + $ERROR('#208: -32768 << 6 === -2097152. Actual: ' + (-32768 << 6)); +} + + +if (-65536 << 6 !== -4194304) { + $ERROR('#209: -65536 << 6 === -4194304. Actual: ' + (-65536 << 6)); +} + + +if (-131072 << 6 !== -8388608) { + $ERROR('#210: -131072 << 6 === -8388608. Actual: ' + (-131072 << 6)); +} + + +if (-262144 << 6 !== -16777216) { + $ERROR('#211: -262144 << 6 === -16777216. Actual: ' + (-262144 << 6)); +} + + +if (-524288 << 6 !== -33554432) { + $ERROR('#212: -524288 << 6 === -33554432. Actual: ' + (-524288 << 6)); +} + + +if (-1048576 << 6 !== -67108864) { + $ERROR('#213: -1048576 << 6 === -67108864. Actual: ' + (-1048576 << 6)); +} + + +if (-2097152 << 6 !== -134217728) { + $ERROR('#214: -2097152 << 6 === -134217728. Actual: ' + (-2097152 << 6)); +} + + +if (-4194304 << 6 !== -268435456) { + $ERROR('#215: -4194304 << 6 === -268435456. Actual: ' + (-4194304 << 6)); +} + + +if (-8388608 << 6 !== -536870912) { + $ERROR('#216: -8388608 << 6 === -536870912. Actual: ' + (-8388608 << 6)); +} + + +if (-16777216 << 6 !== -1073741824) { + $ERROR('#217: -16777216 << 6 === -1073741824. Actual: ' + (-16777216 << 6)); +} + + +if (-33554432 << 6 !== -2147483648) { + $ERROR('#218: -33554432 << 6 === -2147483648. Actual: ' + (-33554432 << 6)); +} + + +if (-67108864 << 6 !== 0) { + $ERROR('#219: -67108864 << 6 === 0. Actual: ' + (-67108864 << 6)); +} + + +if (-134217728 << 6 !== 0) { + $ERROR('#220: -134217728 << 6 === 0. Actual: ' + (-134217728 << 6)); +} + + +if (-268435456 << 6 !== 0) { + $ERROR('#221: -268435456 << 6 === 0. Actual: ' + (-268435456 << 6)); +} + + +if (-536870912 << 6 !== 0) { + $ERROR('#222: -536870912 << 6 === 0. Actual: ' + (-536870912 << 6)); +} + + +if (-1073741824 << 6 !== 0) { + $ERROR('#223: -1073741824 << 6 === 0. Actual: ' + (-1073741824 << 6)); +} + + +if (-2147483648 << 6 !== 0) { + $ERROR('#224: -2147483648 << 6 === 0. Actual: ' + (-2147483648 << 6)); +} + + +if (-1 << 7 !== -128) { + $ERROR('#225: -1 << 7 === -128. Actual: ' + (-1 << 7)); +} + + +if (-2 << 7 !== -256) { + $ERROR('#226: -2 << 7 === -256. Actual: ' + (-2 << 7)); +} + + +if (-4 << 7 !== -512) { + $ERROR('#227: -4 << 7 === -512. Actual: ' + (-4 << 7)); +} + + +if (-8 << 7 !== -1024) { + $ERROR('#228: -8 << 7 === -1024. Actual: ' + (-8 << 7)); +} + + +if (-16 << 7 !== -2048) { + $ERROR('#229: -16 << 7 === -2048. Actual: ' + (-16 << 7)); +} + + +if (-32 << 7 !== -4096) { + $ERROR('#230: -32 << 7 === -4096. Actual: ' + (-32 << 7)); +} + + +if (-64 << 7 !== -8192) { + $ERROR('#231: -64 << 7 === -8192. Actual: ' + (-64 << 7)); +} + + +if (-128 << 7 !== -16384) { + $ERROR('#232: -128 << 7 === -16384. Actual: ' + (-128 << 7)); +} + + +if (-256 << 7 !== -32768) { + $ERROR('#233: -256 << 7 === -32768. Actual: ' + (-256 << 7)); +} + + +if (-512 << 7 !== -65536) { + $ERROR('#234: -512 << 7 === -65536. Actual: ' + (-512 << 7)); +} + + +if (-1024 << 7 !== -131072) { + $ERROR('#235: -1024 << 7 === -131072. Actual: ' + (-1024 << 7)); +} + + +if (-2048 << 7 !== -262144) { + $ERROR('#236: -2048 << 7 === -262144. Actual: ' + (-2048 << 7)); +} + + +if (-4096 << 7 !== -524288) { + $ERROR('#237: -4096 << 7 === -524288. Actual: ' + (-4096 << 7)); +} + + +if (-8192 << 7 !== -1048576) { + $ERROR('#238: -8192 << 7 === -1048576. Actual: ' + (-8192 << 7)); +} + + +if (-16384 << 7 !== -2097152) { + $ERROR('#239: -16384 << 7 === -2097152. Actual: ' + (-16384 << 7)); +} + + +if (-32768 << 7 !== -4194304) { + $ERROR('#240: -32768 << 7 === -4194304. Actual: ' + (-32768 << 7)); +} + + +if (-65536 << 7 !== -8388608) { + $ERROR('#241: -65536 << 7 === -8388608. Actual: ' + (-65536 << 7)); +} + + +if (-131072 << 7 !== -16777216) { + $ERROR('#242: -131072 << 7 === -16777216. Actual: ' + (-131072 << 7)); +} + + +if (-262144 << 7 !== -33554432) { + $ERROR('#243: -262144 << 7 === -33554432. Actual: ' + (-262144 << 7)); +} + + +if (-524288 << 7 !== -67108864) { + $ERROR('#244: -524288 << 7 === -67108864. Actual: ' + (-524288 << 7)); +} + + +if (-1048576 << 7 !== -134217728) { + $ERROR('#245: -1048576 << 7 === -134217728. Actual: ' + (-1048576 << 7)); +} + + +if (-2097152 << 7 !== -268435456) { + $ERROR('#246: -2097152 << 7 === -268435456. Actual: ' + (-2097152 << 7)); +} + + +if (-4194304 << 7 !== -536870912) { + $ERROR('#247: -4194304 << 7 === -536870912. Actual: ' + (-4194304 << 7)); +} + + +if (-8388608 << 7 !== -1073741824) { + $ERROR('#248: -8388608 << 7 === -1073741824. Actual: ' + (-8388608 << 7)); +} + + +if (-16777216 << 7 !== -2147483648) { + $ERROR('#249: -16777216 << 7 === -2147483648. Actual: ' + (-16777216 << 7)); +} + + +if (-33554432 << 7 !== 0) { + $ERROR('#250: -33554432 << 7 === 0. Actual: ' + (-33554432 << 7)); +} + + +if (-67108864 << 7 !== 0) { + $ERROR('#251: -67108864 << 7 === 0. Actual: ' + (-67108864 << 7)); +} + + +if (-134217728 << 7 !== 0) { + $ERROR('#252: -134217728 << 7 === 0. Actual: ' + (-134217728 << 7)); +} + + +if (-268435456 << 7 !== 0) { + $ERROR('#253: -268435456 << 7 === 0. Actual: ' + (-268435456 << 7)); +} + + +if (-536870912 << 7 !== 0) { + $ERROR('#254: -536870912 << 7 === 0. Actual: ' + (-536870912 << 7)); +} + + +if (-1073741824 << 7 !== 0) { + $ERROR('#255: -1073741824 << 7 === 0. Actual: ' + (-1073741824 << 7)); +} + + +if (-2147483648 << 7 !== 0) { + $ERROR('#256: -2147483648 << 7 === 0. Actual: ' + (-2147483648 << 7)); +} + + +if (-1 << 8 !== -256) { + $ERROR('#257: -1 << 8 === -256. Actual: ' + (-1 << 8)); +} + + +if (-2 << 8 !== -512) { + $ERROR('#258: -2 << 8 === -512. Actual: ' + (-2 << 8)); +} + + +if (-4 << 8 !== -1024) { + $ERROR('#259: -4 << 8 === -1024. Actual: ' + (-4 << 8)); +} + + +if (-8 << 8 !== -2048) { + $ERROR('#260: -8 << 8 === -2048. Actual: ' + (-8 << 8)); +} + + +if (-16 << 8 !== -4096) { + $ERROR('#261: -16 << 8 === -4096. Actual: ' + (-16 << 8)); +} + + +if (-32 << 8 !== -8192) { + $ERROR('#262: -32 << 8 === -8192. Actual: ' + (-32 << 8)); +} + + +if (-64 << 8 !== -16384) { + $ERROR('#263: -64 << 8 === -16384. Actual: ' + (-64 << 8)); +} + + +if (-128 << 8 !== -32768) { + $ERROR('#264: -128 << 8 === -32768. Actual: ' + (-128 << 8)); +} + + +if (-256 << 8 !== -65536) { + $ERROR('#265: -256 << 8 === -65536. Actual: ' + (-256 << 8)); +} + + +if (-512 << 8 !== -131072) { + $ERROR('#266: -512 << 8 === -131072. Actual: ' + (-512 << 8)); +} + + +if (-1024 << 8 !== -262144) { + $ERROR('#267: -1024 << 8 === -262144. Actual: ' + (-1024 << 8)); +} + + +if (-2048 << 8 !== -524288) { + $ERROR('#268: -2048 << 8 === -524288. Actual: ' + (-2048 << 8)); +} + + +if (-4096 << 8 !== -1048576) { + $ERROR('#269: -4096 << 8 === -1048576. Actual: ' + (-4096 << 8)); +} + + +if (-8192 << 8 !== -2097152) { + $ERROR('#270: -8192 << 8 === -2097152. Actual: ' + (-8192 << 8)); +} + + +if (-16384 << 8 !== -4194304) { + $ERROR('#271: -16384 << 8 === -4194304. Actual: ' + (-16384 << 8)); +} + + +if (-32768 << 8 !== -8388608) { + $ERROR('#272: -32768 << 8 === -8388608. Actual: ' + (-32768 << 8)); +} + + +if (-65536 << 8 !== -16777216) { + $ERROR('#273: -65536 << 8 === -16777216. Actual: ' + (-65536 << 8)); +} + + +if (-131072 << 8 !== -33554432) { + $ERROR('#274: -131072 << 8 === -33554432. Actual: ' + (-131072 << 8)); +} + + +if (-262144 << 8 !== -67108864) { + $ERROR('#275: -262144 << 8 === -67108864. Actual: ' + (-262144 << 8)); +} + + +if (-524288 << 8 !== -134217728) { + $ERROR('#276: -524288 << 8 === -134217728. Actual: ' + (-524288 << 8)); +} + + +if (-1048576 << 8 !== -268435456) { + $ERROR('#277: -1048576 << 8 === -268435456. Actual: ' + (-1048576 << 8)); +} + + +if (-2097152 << 8 !== -536870912) { + $ERROR('#278: -2097152 << 8 === -536870912. Actual: ' + (-2097152 << 8)); +} + + +if (-4194304 << 8 !== -1073741824) { + $ERROR('#279: -4194304 << 8 === -1073741824. Actual: ' + (-4194304 << 8)); +} + + +if (-8388608 << 8 !== -2147483648) { + $ERROR('#280: -8388608 << 8 === -2147483648. Actual: ' + (-8388608 << 8)); +} + + +if (-16777216 << 8 !== 0) { + $ERROR('#281: -16777216 << 8 === 0. Actual: ' + (-16777216 << 8)); +} + + +if (-33554432 << 8 !== 0) { + $ERROR('#282: -33554432 << 8 === 0. Actual: ' + (-33554432 << 8)); +} + + +if (-67108864 << 8 !== 0) { + $ERROR('#283: -67108864 << 8 === 0. Actual: ' + (-67108864 << 8)); +} + + +if (-134217728 << 8 !== 0) { + $ERROR('#284: -134217728 << 8 === 0. Actual: ' + (-134217728 << 8)); +} + + +if (-268435456 << 8 !== 0) { + $ERROR('#285: -268435456 << 8 === 0. Actual: ' + (-268435456 << 8)); +} + + +if (-536870912 << 8 !== 0) { + $ERROR('#286: -536870912 << 8 === 0. Actual: ' + (-536870912 << 8)); +} + + +if (-1073741824 << 8 !== 0) { + $ERROR('#287: -1073741824 << 8 === 0. Actual: ' + (-1073741824 << 8)); +} + + +if (-2147483648 << 8 !== 0) { + $ERROR('#288: -2147483648 << 8 === 0. Actual: ' + (-2147483648 << 8)); +} + + +if (-1 << 9 !== -512) { + $ERROR('#289: -1 << 9 === -512. Actual: ' + (-1 << 9)); +} + + +if (-2 << 9 !== -1024) { + $ERROR('#290: -2 << 9 === -1024. Actual: ' + (-2 << 9)); +} + + +if (-4 << 9 !== -2048) { + $ERROR('#291: -4 << 9 === -2048. Actual: ' + (-4 << 9)); +} + + +if (-8 << 9 !== -4096) { + $ERROR('#292: -8 << 9 === -4096. Actual: ' + (-8 << 9)); +} + + +if (-16 << 9 !== -8192) { + $ERROR('#293: -16 << 9 === -8192. Actual: ' + (-16 << 9)); +} + + +if (-32 << 9 !== -16384) { + $ERROR('#294: -32 << 9 === -16384. Actual: ' + (-32 << 9)); +} + + +if (-64 << 9 !== -32768) { + $ERROR('#295: -64 << 9 === -32768. Actual: ' + (-64 << 9)); +} + + +if (-128 << 9 !== -65536) { + $ERROR('#296: -128 << 9 === -65536. Actual: ' + (-128 << 9)); +} + + +if (-256 << 9 !== -131072) { + $ERROR('#297: -256 << 9 === -131072. Actual: ' + (-256 << 9)); +} + + +if (-512 << 9 !== -262144) { + $ERROR('#298: -512 << 9 === -262144. Actual: ' + (-512 << 9)); +} + + +if (-1024 << 9 !== -524288) { + $ERROR('#299: -1024 << 9 === -524288. Actual: ' + (-1024 << 9)); +} + + +if (-2048 << 9 !== -1048576) { + $ERROR('#300: -2048 << 9 === -1048576. Actual: ' + (-2048 << 9)); +} + + +if (-4096 << 9 !== -2097152) { + $ERROR('#301: -4096 << 9 === -2097152. Actual: ' + (-4096 << 9)); +} + + +if (-8192 << 9 !== -4194304) { + $ERROR('#302: -8192 << 9 === -4194304. Actual: ' + (-8192 << 9)); +} + + +if (-16384 << 9 !== -8388608) { + $ERROR('#303: -16384 << 9 === -8388608. Actual: ' + (-16384 << 9)); +} + + +if (-32768 << 9 !== -16777216) { + $ERROR('#304: -32768 << 9 === -16777216. Actual: ' + (-32768 << 9)); +} + + +if (-65536 << 9 !== -33554432) { + $ERROR('#305: -65536 << 9 === -33554432. Actual: ' + (-65536 << 9)); +} + + +if (-131072 << 9 !== -67108864) { + $ERROR('#306: -131072 << 9 === -67108864. Actual: ' + (-131072 << 9)); +} + + +if (-262144 << 9 !== -134217728) { + $ERROR('#307: -262144 << 9 === -134217728. Actual: ' + (-262144 << 9)); +} + + +if (-524288 << 9 !== -268435456) { + $ERROR('#308: -524288 << 9 === -268435456. Actual: ' + (-524288 << 9)); +} + + +if (-1048576 << 9 !== -536870912) { + $ERROR('#309: -1048576 << 9 === -536870912. Actual: ' + (-1048576 << 9)); +} + + +if (-2097152 << 9 !== -1073741824) { + $ERROR('#310: -2097152 << 9 === -1073741824. Actual: ' + (-2097152 << 9)); +} + + +if (-4194304 << 9 !== -2147483648) { + $ERROR('#311: -4194304 << 9 === -2147483648. Actual: ' + (-4194304 << 9)); +} + + +if (-8388608 << 9 !== 0) { + $ERROR('#312: -8388608 << 9 === 0. Actual: ' + (-8388608 << 9)); +} + + +if (-16777216 << 9 !== 0) { + $ERROR('#313: -16777216 << 9 === 0. Actual: ' + (-16777216 << 9)); +} + + +if (-33554432 << 9 !== 0) { + $ERROR('#314: -33554432 << 9 === 0. Actual: ' + (-33554432 << 9)); +} + + +if (-67108864 << 9 !== 0) { + $ERROR('#315: -67108864 << 9 === 0. Actual: ' + (-67108864 << 9)); +} + + +if (-134217728 << 9 !== 0) { + $ERROR('#316: -134217728 << 9 === 0. Actual: ' + (-134217728 << 9)); +} + + +if (-268435456 << 9 !== 0) { + $ERROR('#317: -268435456 << 9 === 0. Actual: ' + (-268435456 << 9)); +} + + +if (-536870912 << 9 !== 0) { + $ERROR('#318: -536870912 << 9 === 0. Actual: ' + (-536870912 << 9)); +} + + +if (-1073741824 << 9 !== 0) { + $ERROR('#319: -1073741824 << 9 === 0. Actual: ' + (-1073741824 << 9)); +} + + +if (-2147483648 << 9 !== 0) { + $ERROR('#320: -2147483648 << 9 === 0. Actual: ' + (-2147483648 << 9)); +} + + +if (-1 << 10 !== -1024) { + $ERROR('#321: -1 << 10 === -1024. Actual: ' + (-1 << 10)); +} + + +if (-2 << 10 !== -2048) { + $ERROR('#322: -2 << 10 === -2048. Actual: ' + (-2 << 10)); +} + + +if (-4 << 10 !== -4096) { + $ERROR('#323: -4 << 10 === -4096. Actual: ' + (-4 << 10)); +} + + +if (-8 << 10 !== -8192) { + $ERROR('#324: -8 << 10 === -8192. Actual: ' + (-8 << 10)); +} + + +if (-16 << 10 !== -16384) { + $ERROR('#325: -16 << 10 === -16384. Actual: ' + (-16 << 10)); +} + + +if (-32 << 10 !== -32768) { + $ERROR('#326: -32 << 10 === -32768. Actual: ' + (-32 << 10)); +} + + +if (-64 << 10 !== -65536) { + $ERROR('#327: -64 << 10 === -65536. Actual: ' + (-64 << 10)); +} + + +if (-128 << 10 !== -131072) { + $ERROR('#328: -128 << 10 === -131072. Actual: ' + (-128 << 10)); +} + + +if (-256 << 10 !== -262144) { + $ERROR('#329: -256 << 10 === -262144. Actual: ' + (-256 << 10)); +} + + +if (-512 << 10 !== -524288) { + $ERROR('#330: -512 << 10 === -524288. Actual: ' + (-512 << 10)); +} + + +if (-1024 << 10 !== -1048576) { + $ERROR('#331: -1024 << 10 === -1048576. Actual: ' + (-1024 << 10)); +} + + +if (-2048 << 10 !== -2097152) { + $ERROR('#332: -2048 << 10 === -2097152. Actual: ' + (-2048 << 10)); +} + + +if (-4096 << 10 !== -4194304) { + $ERROR('#333: -4096 << 10 === -4194304. Actual: ' + (-4096 << 10)); +} + + +if (-8192 << 10 !== -8388608) { + $ERROR('#334: -8192 << 10 === -8388608. Actual: ' + (-8192 << 10)); +} + + +if (-16384 << 10 !== -16777216) { + $ERROR('#335: -16384 << 10 === -16777216. Actual: ' + (-16384 << 10)); +} + + +if (-32768 << 10 !== -33554432) { + $ERROR('#336: -32768 << 10 === -33554432. Actual: ' + (-32768 << 10)); +} + + +if (-65536 << 10 !== -67108864) { + $ERROR('#337: -65536 << 10 === -67108864. Actual: ' + (-65536 << 10)); +} + + +if (-131072 << 10 !== -134217728) { + $ERROR('#338: -131072 << 10 === -134217728. Actual: ' + (-131072 << 10)); +} + + +if (-262144 << 10 !== -268435456) { + $ERROR('#339: -262144 << 10 === -268435456. Actual: ' + (-262144 << 10)); +} + + +if (-524288 << 10 !== -536870912) { + $ERROR('#340: -524288 << 10 === -536870912. Actual: ' + (-524288 << 10)); +} + + +if (-1048576 << 10 !== -1073741824) { + $ERROR('#341: -1048576 << 10 === -1073741824. Actual: ' + (-1048576 << 10)); +} + + +if (-2097152 << 10 !== -2147483648) { + $ERROR('#342: -2097152 << 10 === -2147483648. Actual: ' + (-2097152 << 10)); +} + + +if (-4194304 << 10 !== 0) { + $ERROR('#343: -4194304 << 10 === 0. Actual: ' + (-4194304 << 10)); +} + + +if (-8388608 << 10 !== 0) { + $ERROR('#344: -8388608 << 10 === 0. Actual: ' + (-8388608 << 10)); +} + + +if (-16777216 << 10 !== 0) { + $ERROR('#345: -16777216 << 10 === 0. Actual: ' + (-16777216 << 10)); +} + + +if (-33554432 << 10 !== 0) { + $ERROR('#346: -33554432 << 10 === 0. Actual: ' + (-33554432 << 10)); +} + + +if (-67108864 << 10 !== 0) { + $ERROR('#347: -67108864 << 10 === 0. Actual: ' + (-67108864 << 10)); +} + + +if (-134217728 << 10 !== 0) { + $ERROR('#348: -134217728 << 10 === 0. Actual: ' + (-134217728 << 10)); +} + + +if (-268435456 << 10 !== 0) { + $ERROR('#349: -268435456 << 10 === 0. Actual: ' + (-268435456 << 10)); +} + + +if (-536870912 << 10 !== 0) { + $ERROR('#350: -536870912 << 10 === 0. Actual: ' + (-536870912 << 10)); +} + + +if (-1073741824 << 10 !== 0) { + $ERROR('#351: -1073741824 << 10 === 0. Actual: ' + (-1073741824 << 10)); +} + + +if (-2147483648 << 10 !== 0) { + $ERROR('#352: -2147483648 << 10 === 0. Actual: ' + (-2147483648 << 10)); +} + + +if (-1 << 11 !== -2048) { + $ERROR('#353: -1 << 11 === -2048. Actual: ' + (-1 << 11)); +} + + +if (-2 << 11 !== -4096) { + $ERROR('#354: -2 << 11 === -4096. Actual: ' + (-2 << 11)); +} + + +if (-4 << 11 !== -8192) { + $ERROR('#355: -4 << 11 === -8192. Actual: ' + (-4 << 11)); +} + + +if (-8 << 11 !== -16384) { + $ERROR('#356: -8 << 11 === -16384. Actual: ' + (-8 << 11)); +} + + +if (-16 << 11 !== -32768) { + $ERROR('#357: -16 << 11 === -32768. Actual: ' + (-16 << 11)); +} + + +if (-32 << 11 !== -65536) { + $ERROR('#358: -32 << 11 === -65536. Actual: ' + (-32 << 11)); +} + + +if (-64 << 11 !== -131072) { + $ERROR('#359: -64 << 11 === -131072. Actual: ' + (-64 << 11)); +} + + +if (-128 << 11 !== -262144) { + $ERROR('#360: -128 << 11 === -262144. Actual: ' + (-128 << 11)); +} + + +if (-256 << 11 !== -524288) { + $ERROR('#361: -256 << 11 === -524288. Actual: ' + (-256 << 11)); +} + + +if (-512 << 11 !== -1048576) { + $ERROR('#362: -512 << 11 === -1048576. Actual: ' + (-512 << 11)); +} + + +if (-1024 << 11 !== -2097152) { + $ERROR('#363: -1024 << 11 === -2097152. Actual: ' + (-1024 << 11)); +} + + +if (-2048 << 11 !== -4194304) { + $ERROR('#364: -2048 << 11 === -4194304. Actual: ' + (-2048 << 11)); +} + + +if (-4096 << 11 !== -8388608) { + $ERROR('#365: -4096 << 11 === -8388608. Actual: ' + (-4096 << 11)); +} + + +if (-8192 << 11 !== -16777216) { + $ERROR('#366: -8192 << 11 === -16777216. Actual: ' + (-8192 << 11)); +} + + +if (-16384 << 11 !== -33554432) { + $ERROR('#367: -16384 << 11 === -33554432. Actual: ' + (-16384 << 11)); +} + + +if (-32768 << 11 !== -67108864) { + $ERROR('#368: -32768 << 11 === -67108864. Actual: ' + (-32768 << 11)); +} + + +if (-65536 << 11 !== -134217728) { + $ERROR('#369: -65536 << 11 === -134217728. Actual: ' + (-65536 << 11)); +} + + +if (-131072 << 11 !== -268435456) { + $ERROR('#370: -131072 << 11 === -268435456. Actual: ' + (-131072 << 11)); +} + + +if (-262144 << 11 !== -536870912) { + $ERROR('#371: -262144 << 11 === -536870912. Actual: ' + (-262144 << 11)); +} + + +if (-524288 << 11 !== -1073741824) { + $ERROR('#372: -524288 << 11 === -1073741824. Actual: ' + (-524288 << 11)); +} + + +if (-1048576 << 11 !== -2147483648) { + $ERROR('#373: -1048576 << 11 === -2147483648. Actual: ' + (-1048576 << 11)); +} + + +if (-2097152 << 11 !== 0) { + $ERROR('#374: -2097152 << 11 === 0. Actual: ' + (-2097152 << 11)); +} + + +if (-4194304 << 11 !== 0) { + $ERROR('#375: -4194304 << 11 === 0. Actual: ' + (-4194304 << 11)); +} + + +if (-8388608 << 11 !== 0) { + $ERROR('#376: -8388608 << 11 === 0. Actual: ' + (-8388608 << 11)); +} + + +if (-16777216 << 11 !== 0) { + $ERROR('#377: -16777216 << 11 === 0. Actual: ' + (-16777216 << 11)); +} + + +if (-33554432 << 11 !== 0) { + $ERROR('#378: -33554432 << 11 === 0. Actual: ' + (-33554432 << 11)); +} + + +if (-67108864 << 11 !== 0) { + $ERROR('#379: -67108864 << 11 === 0. Actual: ' + (-67108864 << 11)); +} + + +if (-134217728 << 11 !== 0) { + $ERROR('#380: -134217728 << 11 === 0. Actual: ' + (-134217728 << 11)); +} + + +if (-268435456 << 11 !== 0) { + $ERROR('#381: -268435456 << 11 === 0. Actual: ' + (-268435456 << 11)); +} + + +if (-536870912 << 11 !== 0) { + $ERROR('#382: -536870912 << 11 === 0. Actual: ' + (-536870912 << 11)); +} + + +if (-1073741824 << 11 !== 0) { + $ERROR('#383: -1073741824 << 11 === 0. Actual: ' + (-1073741824 << 11)); +} + + +if (-2147483648 << 11 !== 0) { + $ERROR('#384: -2147483648 << 11 === 0. Actual: ' + (-2147483648 << 11)); +} + + +if (-1 << 12 !== -4096) { + $ERROR('#385: -1 << 12 === -4096. Actual: ' + (-1 << 12)); +} + + +if (-2 << 12 !== -8192) { + $ERROR('#386: -2 << 12 === -8192. Actual: ' + (-2 << 12)); +} + + +if (-4 << 12 !== -16384) { + $ERROR('#387: -4 << 12 === -16384. Actual: ' + (-4 << 12)); +} + + +if (-8 << 12 !== -32768) { + $ERROR('#388: -8 << 12 === -32768. Actual: ' + (-8 << 12)); +} + + +if (-16 << 12 !== -65536) { + $ERROR('#389: -16 << 12 === -65536. Actual: ' + (-16 << 12)); +} + + +if (-32 << 12 !== -131072) { + $ERROR('#390: -32 << 12 === -131072. Actual: ' + (-32 << 12)); +} + + +if (-64 << 12 !== -262144) { + $ERROR('#391: -64 << 12 === -262144. Actual: ' + (-64 << 12)); +} + + +if (-128 << 12 !== -524288) { + $ERROR('#392: -128 << 12 === -524288. Actual: ' + (-128 << 12)); +} + + +if (-256 << 12 !== -1048576) { + $ERROR('#393: -256 << 12 === -1048576. Actual: ' + (-256 << 12)); +} + + +if (-512 << 12 !== -2097152) { + $ERROR('#394: -512 << 12 === -2097152. Actual: ' + (-512 << 12)); +} + + +if (-1024 << 12 !== -4194304) { + $ERROR('#395: -1024 << 12 === -4194304. Actual: ' + (-1024 << 12)); +} + + +if (-2048 << 12 !== -8388608) { + $ERROR('#396: -2048 << 12 === -8388608. Actual: ' + (-2048 << 12)); +} + + +if (-4096 << 12 !== -16777216) { + $ERROR('#397: -4096 << 12 === -16777216. Actual: ' + (-4096 << 12)); +} + + +if (-8192 << 12 !== -33554432) { + $ERROR('#398: -8192 << 12 === -33554432. Actual: ' + (-8192 << 12)); +} + + +if (-16384 << 12 !== -67108864) { + $ERROR('#399: -16384 << 12 === -67108864. Actual: ' + (-16384 << 12)); +} + + +if (-32768 << 12 !== -134217728) { + $ERROR('#400: -32768 << 12 === -134217728. Actual: ' + (-32768 << 12)); +} + + +if (-65536 << 12 !== -268435456) { + $ERROR('#401: -65536 << 12 === -268435456. Actual: ' + (-65536 << 12)); +} + + +if (-131072 << 12 !== -536870912) { + $ERROR('#402: -131072 << 12 === -536870912. Actual: ' + (-131072 << 12)); +} + + +if (-262144 << 12 !== -1073741824) { + $ERROR('#403: -262144 << 12 === -1073741824. Actual: ' + (-262144 << 12)); +} + + +if (-524288 << 12 !== -2147483648) { + $ERROR('#404: -524288 << 12 === -2147483648. Actual: ' + (-524288 << 12)); +} + + +if (-1048576 << 12 !== 0) { + $ERROR('#405: -1048576 << 12 === 0. Actual: ' + (-1048576 << 12)); +} + + +if (-2097152 << 12 !== 0) { + $ERROR('#406: -2097152 << 12 === 0. Actual: ' + (-2097152 << 12)); +} + + +if (-4194304 << 12 !== 0) { + $ERROR('#407: -4194304 << 12 === 0. Actual: ' + (-4194304 << 12)); +} + + +if (-8388608 << 12 !== 0) { + $ERROR('#408: -8388608 << 12 === 0. Actual: ' + (-8388608 << 12)); +} + + +if (-16777216 << 12 !== 0) { + $ERROR('#409: -16777216 << 12 === 0. Actual: ' + (-16777216 << 12)); +} + + +if (-33554432 << 12 !== 0) { + $ERROR('#410: -33554432 << 12 === 0. Actual: ' + (-33554432 << 12)); +} + + +if (-67108864 << 12 !== 0) { + $ERROR('#411: -67108864 << 12 === 0. Actual: ' + (-67108864 << 12)); +} + + +if (-134217728 << 12 !== 0) { + $ERROR('#412: -134217728 << 12 === 0. Actual: ' + (-134217728 << 12)); +} + + +if (-268435456 << 12 !== 0) { + $ERROR('#413: -268435456 << 12 === 0. Actual: ' + (-268435456 << 12)); +} + + +if (-536870912 << 12 !== 0) { + $ERROR('#414: -536870912 << 12 === 0. Actual: ' + (-536870912 << 12)); +} + + +if (-1073741824 << 12 !== 0) { + $ERROR('#415: -1073741824 << 12 === 0. Actual: ' + (-1073741824 << 12)); +} + + +if (-2147483648 << 12 !== 0) { + $ERROR('#416: -2147483648 << 12 === 0. Actual: ' + (-2147483648 << 12)); +} + + +if (-1 << 13 !== -8192) { + $ERROR('#417: -1 << 13 === -8192. Actual: ' + (-1 << 13)); +} + + +if (-2 << 13 !== -16384) { + $ERROR('#418: -2 << 13 === -16384. Actual: ' + (-2 << 13)); +} + + +if (-4 << 13 !== -32768) { + $ERROR('#419: -4 << 13 === -32768. Actual: ' + (-4 << 13)); +} + + +if (-8 << 13 !== -65536) { + $ERROR('#420: -8 << 13 === -65536. Actual: ' + (-8 << 13)); +} + + +if (-16 << 13 !== -131072) { + $ERROR('#421: -16 << 13 === -131072. Actual: ' + (-16 << 13)); +} + + +if (-32 << 13 !== -262144) { + $ERROR('#422: -32 << 13 === -262144. Actual: ' + (-32 << 13)); +} + + +if (-64 << 13 !== -524288) { + $ERROR('#423: -64 << 13 === -524288. Actual: ' + (-64 << 13)); +} + + +if (-128 << 13 !== -1048576) { + $ERROR('#424: -128 << 13 === -1048576. Actual: ' + (-128 << 13)); +} + + +if (-256 << 13 !== -2097152) { + $ERROR('#425: -256 << 13 === -2097152. Actual: ' + (-256 << 13)); +} + + +if (-512 << 13 !== -4194304) { + $ERROR('#426: -512 << 13 === -4194304. Actual: ' + (-512 << 13)); +} + + +if (-1024 << 13 !== -8388608) { + $ERROR('#427: -1024 << 13 === -8388608. Actual: ' + (-1024 << 13)); +} + + +if (-2048 << 13 !== -16777216) { + $ERROR('#428: -2048 << 13 === -16777216. Actual: ' + (-2048 << 13)); +} + + +if (-4096 << 13 !== -33554432) { + $ERROR('#429: -4096 << 13 === -33554432. Actual: ' + (-4096 << 13)); +} + + +if (-8192 << 13 !== -67108864) { + $ERROR('#430: -8192 << 13 === -67108864. Actual: ' + (-8192 << 13)); +} + + +if (-16384 << 13 !== -134217728) { + $ERROR('#431: -16384 << 13 === -134217728. Actual: ' + (-16384 << 13)); +} + + +if (-32768 << 13 !== -268435456) { + $ERROR('#432: -32768 << 13 === -268435456. Actual: ' + (-32768 << 13)); +} + + +if (-65536 << 13 !== -536870912) { + $ERROR('#433: -65536 << 13 === -536870912. Actual: ' + (-65536 << 13)); +} + + +if (-131072 << 13 !== -1073741824) { + $ERROR('#434: -131072 << 13 === -1073741824. Actual: ' + (-131072 << 13)); +} + + +if (-262144 << 13 !== -2147483648) { + $ERROR('#435: -262144 << 13 === -2147483648. Actual: ' + (-262144 << 13)); +} + + +if (-524288 << 13 !== 0) { + $ERROR('#436: -524288 << 13 === 0. Actual: ' + (-524288 << 13)); +} + + +if (-1048576 << 13 !== 0) { + $ERROR('#437: -1048576 << 13 === 0. Actual: ' + (-1048576 << 13)); +} + + +if (-2097152 << 13 !== 0) { + $ERROR('#438: -2097152 << 13 === 0. Actual: ' + (-2097152 << 13)); +} + + +if (-4194304 << 13 !== 0) { + $ERROR('#439: -4194304 << 13 === 0. Actual: ' + (-4194304 << 13)); +} + + +if (-8388608 << 13 !== 0) { + $ERROR('#440: -8388608 << 13 === 0. Actual: ' + (-8388608 << 13)); +} + + +if (-16777216 << 13 !== 0) { + $ERROR('#441: -16777216 << 13 === 0. Actual: ' + (-16777216 << 13)); +} + + +if (-33554432 << 13 !== 0) { + $ERROR('#442: -33554432 << 13 === 0. Actual: ' + (-33554432 << 13)); +} + + +if (-67108864 << 13 !== 0) { + $ERROR('#443: -67108864 << 13 === 0. Actual: ' + (-67108864 << 13)); +} + + +if (-134217728 << 13 !== 0) { + $ERROR('#444: -134217728 << 13 === 0. Actual: ' + (-134217728 << 13)); +} + + +if (-268435456 << 13 !== 0) { + $ERROR('#445: -268435456 << 13 === 0. Actual: ' + (-268435456 << 13)); +} + + +if (-536870912 << 13 !== 0) { + $ERROR('#446: -536870912 << 13 === 0. Actual: ' + (-536870912 << 13)); +} + + +if (-1073741824 << 13 !== 0) { + $ERROR('#447: -1073741824 << 13 === 0. Actual: ' + (-1073741824 << 13)); +} + + +if (-2147483648 << 13 !== 0) { + $ERROR('#448: -2147483648 << 13 === 0. Actual: ' + (-2147483648 << 13)); +} + + +if (-1 << 14 !== -16384) { + $ERROR('#449: -1 << 14 === -16384. Actual: ' + (-1 << 14)); +} + + +if (-2 << 14 !== -32768) { + $ERROR('#450: -2 << 14 === -32768. Actual: ' + (-2 << 14)); +} + + +if (-4 << 14 !== -65536) { + $ERROR('#451: -4 << 14 === -65536. Actual: ' + (-4 << 14)); +} + + +if (-8 << 14 !== -131072) { + $ERROR('#452: -8 << 14 === -131072. Actual: ' + (-8 << 14)); +} + + +if (-16 << 14 !== -262144) { + $ERROR('#453: -16 << 14 === -262144. Actual: ' + (-16 << 14)); +} + + +if (-32 << 14 !== -524288) { + $ERROR('#454: -32 << 14 === -524288. Actual: ' + (-32 << 14)); +} + + +if (-64 << 14 !== -1048576) { + $ERROR('#455: -64 << 14 === -1048576. Actual: ' + (-64 << 14)); +} + + +if (-128 << 14 !== -2097152) { + $ERROR('#456: -128 << 14 === -2097152. Actual: ' + (-128 << 14)); +} + + +if (-256 << 14 !== -4194304) { + $ERROR('#457: -256 << 14 === -4194304. Actual: ' + (-256 << 14)); +} + + +if (-512 << 14 !== -8388608) { + $ERROR('#458: -512 << 14 === -8388608. Actual: ' + (-512 << 14)); +} + + +if (-1024 << 14 !== -16777216) { + $ERROR('#459: -1024 << 14 === -16777216. Actual: ' + (-1024 << 14)); +} + + +if (-2048 << 14 !== -33554432) { + $ERROR('#460: -2048 << 14 === -33554432. Actual: ' + (-2048 << 14)); +} + + +if (-4096 << 14 !== -67108864) { + $ERROR('#461: -4096 << 14 === -67108864. Actual: ' + (-4096 << 14)); +} + + +if (-8192 << 14 !== -134217728) { + $ERROR('#462: -8192 << 14 === -134217728. Actual: ' + (-8192 << 14)); +} + + +if (-16384 << 14 !== -268435456) { + $ERROR('#463: -16384 << 14 === -268435456. Actual: ' + (-16384 << 14)); +} + + +if (-32768 << 14 !== -536870912) { + $ERROR('#464: -32768 << 14 === -536870912. Actual: ' + (-32768 << 14)); +} + + +if (-65536 << 14 !== -1073741824) { + $ERROR('#465: -65536 << 14 === -1073741824. Actual: ' + (-65536 << 14)); +} + + +if (-131072 << 14 !== -2147483648) { + $ERROR('#466: -131072 << 14 === -2147483648. Actual: ' + (-131072 << 14)); +} + + +if (-262144 << 14 !== 0) { + $ERROR('#467: -262144 << 14 === 0. Actual: ' + (-262144 << 14)); +} + + +if (-524288 << 14 !== 0) { + $ERROR('#468: -524288 << 14 === 0. Actual: ' + (-524288 << 14)); +} + + +if (-1048576 << 14 !== 0) { + $ERROR('#469: -1048576 << 14 === 0. Actual: ' + (-1048576 << 14)); +} + + +if (-2097152 << 14 !== 0) { + $ERROR('#470: -2097152 << 14 === 0. Actual: ' + (-2097152 << 14)); +} + + +if (-4194304 << 14 !== 0) { + $ERROR('#471: -4194304 << 14 === 0. Actual: ' + (-4194304 << 14)); +} + + +if (-8388608 << 14 !== 0) { + $ERROR('#472: -8388608 << 14 === 0. Actual: ' + (-8388608 << 14)); +} + + +if (-16777216 << 14 !== 0) { + $ERROR('#473: -16777216 << 14 === 0. Actual: ' + (-16777216 << 14)); +} + + +if (-33554432 << 14 !== 0) { + $ERROR('#474: -33554432 << 14 === 0. Actual: ' + (-33554432 << 14)); +} + + +if (-67108864 << 14 !== 0) { + $ERROR('#475: -67108864 << 14 === 0. Actual: ' + (-67108864 << 14)); +} + + +if (-134217728 << 14 !== 0) { + $ERROR('#476: -134217728 << 14 === 0. Actual: ' + (-134217728 << 14)); +} + + +if (-268435456 << 14 !== 0) { + $ERROR('#477: -268435456 << 14 === 0. Actual: ' + (-268435456 << 14)); +} + + +if (-536870912 << 14 !== 0) { + $ERROR('#478: -536870912 << 14 === 0. Actual: ' + (-536870912 << 14)); +} + + +if (-1073741824 << 14 !== 0) { + $ERROR('#479: -1073741824 << 14 === 0. Actual: ' + (-1073741824 << 14)); +} + + +if (-2147483648 << 14 !== 0) { + $ERROR('#480: -2147483648 << 14 === 0. Actual: ' + (-2147483648 << 14)); +} + + +if (-1 << 15 !== -32768) { + $ERROR('#481: -1 << 15 === -32768. Actual: ' + (-1 << 15)); +} + + +if (-2 << 15 !== -65536) { + $ERROR('#482: -2 << 15 === -65536. Actual: ' + (-2 << 15)); +} + + +if (-4 << 15 !== -131072) { + $ERROR('#483: -4 << 15 === -131072. Actual: ' + (-4 << 15)); +} + + +if (-8 << 15 !== -262144) { + $ERROR('#484: -8 << 15 === -262144. Actual: ' + (-8 << 15)); +} + + +if (-16 << 15 !== -524288) { + $ERROR('#485: -16 << 15 === -524288. Actual: ' + (-16 << 15)); +} + + +if (-32 << 15 !== -1048576) { + $ERROR('#486: -32 << 15 === -1048576. Actual: ' + (-32 << 15)); +} + + +if (-64 << 15 !== -2097152) { + $ERROR('#487: -64 << 15 === -2097152. Actual: ' + (-64 << 15)); +} + + +if (-128 << 15 !== -4194304) { + $ERROR('#488: -128 << 15 === -4194304. Actual: ' + (-128 << 15)); +} + + +if (-256 << 15 !== -8388608) { + $ERROR('#489: -256 << 15 === -8388608. Actual: ' + (-256 << 15)); +} + + +if (-512 << 15 !== -16777216) { + $ERROR('#490: -512 << 15 === -16777216. Actual: ' + (-512 << 15)); +} + + +if (-1024 << 15 !== -33554432) { + $ERROR('#491: -1024 << 15 === -33554432. Actual: ' + (-1024 << 15)); +} + + +if (-2048 << 15 !== -67108864) { + $ERROR('#492: -2048 << 15 === -67108864. Actual: ' + (-2048 << 15)); +} + + +if (-4096 << 15 !== -134217728) { + $ERROR('#493: -4096 << 15 === -134217728. Actual: ' + (-4096 << 15)); +} + + +if (-8192 << 15 !== -268435456) { + $ERROR('#494: -8192 << 15 === -268435456. Actual: ' + (-8192 << 15)); +} + + +if (-16384 << 15 !== -536870912) { + $ERROR('#495: -16384 << 15 === -536870912. Actual: ' + (-16384 << 15)); +} + + +if (-32768 << 15 !== -1073741824) { + $ERROR('#496: -32768 << 15 === -1073741824. Actual: ' + (-32768 << 15)); +} + + +if (-65536 << 15 !== -2147483648) { + $ERROR('#497: -65536 << 15 === -2147483648. Actual: ' + (-65536 << 15)); +} + + +if (-131072 << 15 !== 0) { + $ERROR('#498: -131072 << 15 === 0. Actual: ' + (-131072 << 15)); +} + + +if (-262144 << 15 !== 0) { + $ERROR('#499: -262144 << 15 === 0. Actual: ' + (-262144 << 15)); +} + + +if (-524288 << 15 !== 0) { + $ERROR('#500: -524288 << 15 === 0. Actual: ' + (-524288 << 15)); +} + + +if (-1048576 << 15 !== 0) { + $ERROR('#501: -1048576 << 15 === 0. Actual: ' + (-1048576 << 15)); +} + + +if (-2097152 << 15 !== 0) { + $ERROR('#502: -2097152 << 15 === 0. Actual: ' + (-2097152 << 15)); +} + + +if (-4194304 << 15 !== 0) { + $ERROR('#503: -4194304 << 15 === 0. Actual: ' + (-4194304 << 15)); +} + + +if (-8388608 << 15 !== 0) { + $ERROR('#504: -8388608 << 15 === 0. Actual: ' + (-8388608 << 15)); +} + + +if (-16777216 << 15 !== 0) { + $ERROR('#505: -16777216 << 15 === 0. Actual: ' + (-16777216 << 15)); +} + + +if (-33554432 << 15 !== 0) { + $ERROR('#506: -33554432 << 15 === 0. Actual: ' + (-33554432 << 15)); +} + + +if (-67108864 << 15 !== 0) { + $ERROR('#507: -67108864 << 15 === 0. Actual: ' + (-67108864 << 15)); +} + + +if (-134217728 << 15 !== 0) { + $ERROR('#508: -134217728 << 15 === 0. Actual: ' + (-134217728 << 15)); +} + + +if (-268435456 << 15 !== 0) { + $ERROR('#509: -268435456 << 15 === 0. Actual: ' + (-268435456 << 15)); +} + + +if (-536870912 << 15 !== 0) { + $ERROR('#510: -536870912 << 15 === 0. Actual: ' + (-536870912 << 15)); +} + + +if (-1073741824 << 15 !== 0) { + $ERROR('#511: -1073741824 << 15 === 0. Actual: ' + (-1073741824 << 15)); +} + + +if (-2147483648 << 15 !== 0) { + $ERROR('#512: -2147483648 << 15 === 0. Actual: ' + (-2147483648 << 15)); +} + diff --git a/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A4_T2.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A4_T2.js new file mode 100644 index 000000000..0cdfbda0e --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A4_T2.js @@ -0,0 +1,2572 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Check operator x << y in distinct points + * + * @path ch11/11.7/11.7.1/S11.7.1_A4_T2.js + * @description ShiftExpression = 2^n - 1, n = 16...31 + */ + +//CHECK + +if (-1 << 16 !== -65536) { + $ERROR('#513: -1 << 16 === -65536. Actual: ' + (-1 << 16)); +} + + +if (-2 << 16 !== -131072) { + $ERROR('#514: -2 << 16 === -131072. Actual: ' + (-2 << 16)); +} + + +if (-4 << 16 !== -262144) { + $ERROR('#515: -4 << 16 === -262144. Actual: ' + (-4 << 16)); +} + + +if (-8 << 16 !== -524288) { + $ERROR('#516: -8 << 16 === -524288. Actual: ' + (-8 << 16)); +} + + +if (-16 << 16 !== -1048576) { + $ERROR('#517: -16 << 16 === -1048576. Actual: ' + (-16 << 16)); +} + + +if (-32 << 16 !== -2097152) { + $ERROR('#518: -32 << 16 === -2097152. Actual: ' + (-32 << 16)); +} + + +if (-64 << 16 !== -4194304) { + $ERROR('#519: -64 << 16 === -4194304. Actual: ' + (-64 << 16)); +} + + +if (-128 << 16 !== -8388608) { + $ERROR('#520: -128 << 16 === -8388608. Actual: ' + (-128 << 16)); +} + + +if (-256 << 16 !== -16777216) { + $ERROR('#521: -256 << 16 === -16777216. Actual: ' + (-256 << 16)); +} + + +if (-512 << 16 !== -33554432) { + $ERROR('#522: -512 << 16 === -33554432. Actual: ' + (-512 << 16)); +} + + +if (-1024 << 16 !== -67108864) { + $ERROR('#523: -1024 << 16 === -67108864. Actual: ' + (-1024 << 16)); +} + + +if (-2048 << 16 !== -134217728) { + $ERROR('#524: -2048 << 16 === -134217728. Actual: ' + (-2048 << 16)); +} + + +if (-4096 << 16 !== -268435456) { + $ERROR('#525: -4096 << 16 === -268435456. Actual: ' + (-4096 << 16)); +} + + +if (-8192 << 16 !== -536870912) { + $ERROR('#526: -8192 << 16 === -536870912. Actual: ' + (-8192 << 16)); +} + + +if (-16384 << 16 !== -1073741824) { + $ERROR('#527: -16384 << 16 === -1073741824. Actual: ' + (-16384 << 16)); +} + + +if (-32768 << 16 !== -2147483648) { + $ERROR('#528: -32768 << 16 === -2147483648. Actual: ' + (-32768 << 16)); +} + + +if (-65536 << 16 !== 0) { + $ERROR('#529: -65536 << 16 === 0. Actual: ' + (-65536 << 16)); +} + + +if (-131072 << 16 !== 0) { + $ERROR('#530: -131072 << 16 === 0. Actual: ' + (-131072 << 16)); +} + + +if (-262144 << 16 !== 0) { + $ERROR('#531: -262144 << 16 === 0. Actual: ' + (-262144 << 16)); +} + + +if (-524288 << 16 !== 0) { + $ERROR('#532: -524288 << 16 === 0. Actual: ' + (-524288 << 16)); +} + + +if (-1048576 << 16 !== 0) { + $ERROR('#533: -1048576 << 16 === 0. Actual: ' + (-1048576 << 16)); +} + + +if (-2097152 << 16 !== 0) { + $ERROR('#534: -2097152 << 16 === 0. Actual: ' + (-2097152 << 16)); +} + + +if (-4194304 << 16 !== 0) { + $ERROR('#535: -4194304 << 16 === 0. Actual: ' + (-4194304 << 16)); +} + + +if (-8388608 << 16 !== 0) { + $ERROR('#536: -8388608 << 16 === 0. Actual: ' + (-8388608 << 16)); +} + + +if (-16777216 << 16 !== 0) { + $ERROR('#537: -16777216 << 16 === 0. Actual: ' + (-16777216 << 16)); +} + + +if (-33554432 << 16 !== 0) { + $ERROR('#538: -33554432 << 16 === 0. Actual: ' + (-33554432 << 16)); +} + + +if (-67108864 << 16 !== 0) { + $ERROR('#539: -67108864 << 16 === 0. Actual: ' + (-67108864 << 16)); +} + + +if (-134217728 << 16 !== 0) { + $ERROR('#540: -134217728 << 16 === 0. Actual: ' + (-134217728 << 16)); +} + + +if (-268435456 << 16 !== 0) { + $ERROR('#541: -268435456 << 16 === 0. Actual: ' + (-268435456 << 16)); +} + + +if (-536870912 << 16 !== 0) { + $ERROR('#542: -536870912 << 16 === 0. Actual: ' + (-536870912 << 16)); +} + + +if (-1073741824 << 16 !== 0) { + $ERROR('#543: -1073741824 << 16 === 0. Actual: ' + (-1073741824 << 16)); +} + + +if (-2147483648 << 16 !== 0) { + $ERROR('#544: -2147483648 << 16 === 0. Actual: ' + (-2147483648 << 16)); +} + + +if (-1 << 17 !== -131072) { + $ERROR('#545: -1 << 17 === -131072. Actual: ' + (-1 << 17)); +} + + +if (-2 << 17 !== -262144) { + $ERROR('#546: -2 << 17 === -262144. Actual: ' + (-2 << 17)); +} + + +if (-4 << 17 !== -524288) { + $ERROR('#547: -4 << 17 === -524288. Actual: ' + (-4 << 17)); +} + + +if (-8 << 17 !== -1048576) { + $ERROR('#548: -8 << 17 === -1048576. Actual: ' + (-8 << 17)); +} + + +if (-16 << 17 !== -2097152) { + $ERROR('#549: -16 << 17 === -2097152. Actual: ' + (-16 << 17)); +} + + +if (-32 << 17 !== -4194304) { + $ERROR('#550: -32 << 17 === -4194304. Actual: ' + (-32 << 17)); +} + + +if (-64 << 17 !== -8388608) { + $ERROR('#551: -64 << 17 === -8388608. Actual: ' + (-64 << 17)); +} + + +if (-128 << 17 !== -16777216) { + $ERROR('#552: -128 << 17 === -16777216. Actual: ' + (-128 << 17)); +} + + +if (-256 << 17 !== -33554432) { + $ERROR('#553: -256 << 17 === -33554432. Actual: ' + (-256 << 17)); +} + + +if (-512 << 17 !== -67108864) { + $ERROR('#554: -512 << 17 === -67108864. Actual: ' + (-512 << 17)); +} + + +if (-1024 << 17 !== -134217728) { + $ERROR('#555: -1024 << 17 === -134217728. Actual: ' + (-1024 << 17)); +} + + +if (-2048 << 17 !== -268435456) { + $ERROR('#556: -2048 << 17 === -268435456. Actual: ' + (-2048 << 17)); +} + + +if (-4096 << 17 !== -536870912) { + $ERROR('#557: -4096 << 17 === -536870912. Actual: ' + (-4096 << 17)); +} + + +if (-8192 << 17 !== -1073741824) { + $ERROR('#558: -8192 << 17 === -1073741824. Actual: ' + (-8192 << 17)); +} + + +if (-16384 << 17 !== -2147483648) { + $ERROR('#559: -16384 << 17 === -2147483648. Actual: ' + (-16384 << 17)); +} + + +if (-32768 << 17 !== 0) { + $ERROR('#560: -32768 << 17 === 0. Actual: ' + (-32768 << 17)); +} + + +if (-65536 << 17 !== 0) { + $ERROR('#561: -65536 << 17 === 0. Actual: ' + (-65536 << 17)); +} + + +if (-131072 << 17 !== 0) { + $ERROR('#562: -131072 << 17 === 0. Actual: ' + (-131072 << 17)); +} + + +if (-262144 << 17 !== 0) { + $ERROR('#563: -262144 << 17 === 0. Actual: ' + (-262144 << 17)); +} + + +if (-524288 << 17 !== 0) { + $ERROR('#564: -524288 << 17 === 0. Actual: ' + (-524288 << 17)); +} + + +if (-1048576 << 17 !== 0) { + $ERROR('#565: -1048576 << 17 === 0. Actual: ' + (-1048576 << 17)); +} + + +if (-2097152 << 17 !== 0) { + $ERROR('#566: -2097152 << 17 === 0. Actual: ' + (-2097152 << 17)); +} + + +if (-4194304 << 17 !== 0) { + $ERROR('#567: -4194304 << 17 === 0. Actual: ' + (-4194304 << 17)); +} + + +if (-8388608 << 17 !== 0) { + $ERROR('#568: -8388608 << 17 === 0. Actual: ' + (-8388608 << 17)); +} + + +if (-16777216 << 17 !== 0) { + $ERROR('#569: -16777216 << 17 === 0. Actual: ' + (-16777216 << 17)); +} + + +if (-33554432 << 17 !== 0) { + $ERROR('#570: -33554432 << 17 === 0. Actual: ' + (-33554432 << 17)); +} + + +if (-67108864 << 17 !== 0) { + $ERROR('#571: -67108864 << 17 === 0. Actual: ' + (-67108864 << 17)); +} + + +if (-134217728 << 17 !== 0) { + $ERROR('#572: -134217728 << 17 === 0. Actual: ' + (-134217728 << 17)); +} + + +if (-268435456 << 17 !== 0) { + $ERROR('#573: -268435456 << 17 === 0. Actual: ' + (-268435456 << 17)); +} + + +if (-536870912 << 17 !== 0) { + $ERROR('#574: -536870912 << 17 === 0. Actual: ' + (-536870912 << 17)); +} + + +if (-1073741824 << 17 !== 0) { + $ERROR('#575: -1073741824 << 17 === 0. Actual: ' + (-1073741824 << 17)); +} + + +if (-2147483648 << 17 !== 0) { + $ERROR('#576: -2147483648 << 17 === 0. Actual: ' + (-2147483648 << 17)); +} + + +if (-1 << 18 !== -262144) { + $ERROR('#577: -1 << 18 === -262144. Actual: ' + (-1 << 18)); +} + + +if (-2 << 18 !== -524288) { + $ERROR('#578: -2 << 18 === -524288. Actual: ' + (-2 << 18)); +} + + +if (-4 << 18 !== -1048576) { + $ERROR('#579: -4 << 18 === -1048576. Actual: ' + (-4 << 18)); +} + + +if (-8 << 18 !== -2097152) { + $ERROR('#580: -8 << 18 === -2097152. Actual: ' + (-8 << 18)); +} + + +if (-16 << 18 !== -4194304) { + $ERROR('#581: -16 << 18 === -4194304. Actual: ' + (-16 << 18)); +} + + +if (-32 << 18 !== -8388608) { + $ERROR('#582: -32 << 18 === -8388608. Actual: ' + (-32 << 18)); +} + + +if (-64 << 18 !== -16777216) { + $ERROR('#583: -64 << 18 === -16777216. Actual: ' + (-64 << 18)); +} + + +if (-128 << 18 !== -33554432) { + $ERROR('#584: -128 << 18 === -33554432. Actual: ' + (-128 << 18)); +} + + +if (-256 << 18 !== -67108864) { + $ERROR('#585: -256 << 18 === -67108864. Actual: ' + (-256 << 18)); +} + + +if (-512 << 18 !== -134217728) { + $ERROR('#586: -512 << 18 === -134217728. Actual: ' + (-512 << 18)); +} + + +if (-1024 << 18 !== -268435456) { + $ERROR('#587: -1024 << 18 === -268435456. Actual: ' + (-1024 << 18)); +} + + +if (-2048 << 18 !== -536870912) { + $ERROR('#588: -2048 << 18 === -536870912. Actual: ' + (-2048 << 18)); +} + + +if (-4096 << 18 !== -1073741824) { + $ERROR('#589: -4096 << 18 === -1073741824. Actual: ' + (-4096 << 18)); +} + + +if (-8192 << 18 !== -2147483648) { + $ERROR('#590: -8192 << 18 === -2147483648. Actual: ' + (-8192 << 18)); +} + + +if (-16384 << 18 !== 0) { + $ERROR('#591: -16384 << 18 === 0. Actual: ' + (-16384 << 18)); +} + + +if (-32768 << 18 !== 0) { + $ERROR('#592: -32768 << 18 === 0. Actual: ' + (-32768 << 18)); +} + + +if (-65536 << 18 !== 0) { + $ERROR('#593: -65536 << 18 === 0. Actual: ' + (-65536 << 18)); +} + + +if (-131072 << 18 !== 0) { + $ERROR('#594: -131072 << 18 === 0. Actual: ' + (-131072 << 18)); +} + + +if (-262144 << 18 !== 0) { + $ERROR('#595: -262144 << 18 === 0. Actual: ' + (-262144 << 18)); +} + + +if (-524288 << 18 !== 0) { + $ERROR('#596: -524288 << 18 === 0. Actual: ' + (-524288 << 18)); +} + + +if (-1048576 << 18 !== 0) { + $ERROR('#597: -1048576 << 18 === 0. Actual: ' + (-1048576 << 18)); +} + + +if (-2097152 << 18 !== 0) { + $ERROR('#598: -2097152 << 18 === 0. Actual: ' + (-2097152 << 18)); +} + + +if (-4194304 << 18 !== 0) { + $ERROR('#599: -4194304 << 18 === 0. Actual: ' + (-4194304 << 18)); +} + + +if (-8388608 << 18 !== 0) { + $ERROR('#600: -8388608 << 18 === 0. Actual: ' + (-8388608 << 18)); +} + + +if (-16777216 << 18 !== 0) { + $ERROR('#601: -16777216 << 18 === 0. Actual: ' + (-16777216 << 18)); +} + + +if (-33554432 << 18 !== 0) { + $ERROR('#602: -33554432 << 18 === 0. Actual: ' + (-33554432 << 18)); +} + + +if (-67108864 << 18 !== 0) { + $ERROR('#603: -67108864 << 18 === 0. Actual: ' + (-67108864 << 18)); +} + + +if (-134217728 << 18 !== 0) { + $ERROR('#604: -134217728 << 18 === 0. Actual: ' + (-134217728 << 18)); +} + + +if (-268435456 << 18 !== 0) { + $ERROR('#605: -268435456 << 18 === 0. Actual: ' + (-268435456 << 18)); +} + + +if (-536870912 << 18 !== 0) { + $ERROR('#606: -536870912 << 18 === 0. Actual: ' + (-536870912 << 18)); +} + + +if (-1073741824 << 18 !== 0) { + $ERROR('#607: -1073741824 << 18 === 0. Actual: ' + (-1073741824 << 18)); +} + + +if (-2147483648 << 18 !== 0) { + $ERROR('#608: -2147483648 << 18 === 0. Actual: ' + (-2147483648 << 18)); +} + + +if (-1 << 19 !== -524288) { + $ERROR('#609: -1 << 19 === -524288. Actual: ' + (-1 << 19)); +} + + +if (-2 << 19 !== -1048576) { + $ERROR('#610: -2 << 19 === -1048576. Actual: ' + (-2 << 19)); +} + + +if (-4 << 19 !== -2097152) { + $ERROR('#611: -4 << 19 === -2097152. Actual: ' + (-4 << 19)); +} + + +if (-8 << 19 !== -4194304) { + $ERROR('#612: -8 << 19 === -4194304. Actual: ' + (-8 << 19)); +} + + +if (-16 << 19 !== -8388608) { + $ERROR('#613: -16 << 19 === -8388608. Actual: ' + (-16 << 19)); +} + + +if (-32 << 19 !== -16777216) { + $ERROR('#614: -32 << 19 === -16777216. Actual: ' + (-32 << 19)); +} + + +if (-64 << 19 !== -33554432) { + $ERROR('#615: -64 << 19 === -33554432. Actual: ' + (-64 << 19)); +} + + +if (-128 << 19 !== -67108864) { + $ERROR('#616: -128 << 19 === -67108864. Actual: ' + (-128 << 19)); +} + + +if (-256 << 19 !== -134217728) { + $ERROR('#617: -256 << 19 === -134217728. Actual: ' + (-256 << 19)); +} + + +if (-512 << 19 !== -268435456) { + $ERROR('#618: -512 << 19 === -268435456. Actual: ' + (-512 << 19)); +} + + +if (-1024 << 19 !== -536870912) { + $ERROR('#619: -1024 << 19 === -536870912. Actual: ' + (-1024 << 19)); +} + + +if (-2048 << 19 !== -1073741824) { + $ERROR('#620: -2048 << 19 === -1073741824. Actual: ' + (-2048 << 19)); +} + + +if (-4096 << 19 !== -2147483648) { + $ERROR('#621: -4096 << 19 === -2147483648. Actual: ' + (-4096 << 19)); +} + + +if (-8192 << 19 !== 0) { + $ERROR('#622: -8192 << 19 === 0. Actual: ' + (-8192 << 19)); +} + + +if (-16384 << 19 !== 0) { + $ERROR('#623: -16384 << 19 === 0. Actual: ' + (-16384 << 19)); +} + + +if (-32768 << 19 !== 0) { + $ERROR('#624: -32768 << 19 === 0. Actual: ' + (-32768 << 19)); +} + + +if (-65536 << 19 !== 0) { + $ERROR('#625: -65536 << 19 === 0. Actual: ' + (-65536 << 19)); +} + + +if (-131072 << 19 !== 0) { + $ERROR('#626: -131072 << 19 === 0. Actual: ' + (-131072 << 19)); +} + + +if (-262144 << 19 !== 0) { + $ERROR('#627: -262144 << 19 === 0. Actual: ' + (-262144 << 19)); +} + + +if (-524288 << 19 !== 0) { + $ERROR('#628: -524288 << 19 === 0. Actual: ' + (-524288 << 19)); +} + + +if (-1048576 << 19 !== 0) { + $ERROR('#629: -1048576 << 19 === 0. Actual: ' + (-1048576 << 19)); +} + + +if (-2097152 << 19 !== 0) { + $ERROR('#630: -2097152 << 19 === 0. Actual: ' + (-2097152 << 19)); +} + + +if (-4194304 << 19 !== 0) { + $ERROR('#631: -4194304 << 19 === 0. Actual: ' + (-4194304 << 19)); +} + + +if (-8388608 << 19 !== 0) { + $ERROR('#632: -8388608 << 19 === 0. Actual: ' + (-8388608 << 19)); +} + + +if (-16777216 << 19 !== 0) { + $ERROR('#633: -16777216 << 19 === 0. Actual: ' + (-16777216 << 19)); +} + + +if (-33554432 << 19 !== 0) { + $ERROR('#634: -33554432 << 19 === 0. Actual: ' + (-33554432 << 19)); +} + + +if (-67108864 << 19 !== 0) { + $ERROR('#635: -67108864 << 19 === 0. Actual: ' + (-67108864 << 19)); +} + + +if (-134217728 << 19 !== 0) { + $ERROR('#636: -134217728 << 19 === 0. Actual: ' + (-134217728 << 19)); +} + + +if (-268435456 << 19 !== 0) { + $ERROR('#637: -268435456 << 19 === 0. Actual: ' + (-268435456 << 19)); +} + + +if (-536870912 << 19 !== 0) { + $ERROR('#638: -536870912 << 19 === 0. Actual: ' + (-536870912 << 19)); +} + + +if (-1073741824 << 19 !== 0) { + $ERROR('#639: -1073741824 << 19 === 0. Actual: ' + (-1073741824 << 19)); +} + + +if (-2147483648 << 19 !== 0) { + $ERROR('#640: -2147483648 << 19 === 0. Actual: ' + (-2147483648 << 19)); +} + + +if (-1 << 20 !== -1048576) { + $ERROR('#641: -1 << 20 === -1048576. Actual: ' + (-1 << 20)); +} + + +if (-2 << 20 !== -2097152) { + $ERROR('#642: -2 << 20 === -2097152. Actual: ' + (-2 << 20)); +} + + +if (-4 << 20 !== -4194304) { + $ERROR('#643: -4 << 20 === -4194304. Actual: ' + (-4 << 20)); +} + + +if (-8 << 20 !== -8388608) { + $ERROR('#644: -8 << 20 === -8388608. Actual: ' + (-8 << 20)); +} + + +if (-16 << 20 !== -16777216) { + $ERROR('#645: -16 << 20 === -16777216. Actual: ' + (-16 << 20)); +} + + +if (-32 << 20 !== -33554432) { + $ERROR('#646: -32 << 20 === -33554432. Actual: ' + (-32 << 20)); +} + + +if (-64 << 20 !== -67108864) { + $ERROR('#647: -64 << 20 === -67108864. Actual: ' + (-64 << 20)); +} + + +if (-128 << 20 !== -134217728) { + $ERROR('#648: -128 << 20 === -134217728. Actual: ' + (-128 << 20)); +} + + +if (-256 << 20 !== -268435456) { + $ERROR('#649: -256 << 20 === -268435456. Actual: ' + (-256 << 20)); +} + + +if (-512 << 20 !== -536870912) { + $ERROR('#650: -512 << 20 === -536870912. Actual: ' + (-512 << 20)); +} + + +if (-1024 << 20 !== -1073741824) { + $ERROR('#651: -1024 << 20 === -1073741824. Actual: ' + (-1024 << 20)); +} + + +if (-2048 << 20 !== -2147483648) { + $ERROR('#652: -2048 << 20 === -2147483648. Actual: ' + (-2048 << 20)); +} + + +if (-4096 << 20 !== 0) { + $ERROR('#653: -4096 << 20 === 0. Actual: ' + (-4096 << 20)); +} + + +if (-8192 << 20 !== 0) { + $ERROR('#654: -8192 << 20 === 0. Actual: ' + (-8192 << 20)); +} + + +if (-16384 << 20 !== 0) { + $ERROR('#655: -16384 << 20 === 0. Actual: ' + (-16384 << 20)); +} + + +if (-32768 << 20 !== 0) { + $ERROR('#656: -32768 << 20 === 0. Actual: ' + (-32768 << 20)); +} + + +if (-65536 << 20 !== 0) { + $ERROR('#657: -65536 << 20 === 0. Actual: ' + (-65536 << 20)); +} + + +if (-131072 << 20 !== 0) { + $ERROR('#658: -131072 << 20 === 0. Actual: ' + (-131072 << 20)); +} + + +if (-262144 << 20 !== 0) { + $ERROR('#659: -262144 << 20 === 0. Actual: ' + (-262144 << 20)); +} + + +if (-524288 << 20 !== 0) { + $ERROR('#660: -524288 << 20 === 0. Actual: ' + (-524288 << 20)); +} + + +if (-1048576 << 20 !== 0) { + $ERROR('#661: -1048576 << 20 === 0. Actual: ' + (-1048576 << 20)); +} + + +if (-2097152 << 20 !== 0) { + $ERROR('#662: -2097152 << 20 === 0. Actual: ' + (-2097152 << 20)); +} + + +if (-4194304 << 20 !== 0) { + $ERROR('#663: -4194304 << 20 === 0. Actual: ' + (-4194304 << 20)); +} + + +if (-8388608 << 20 !== 0) { + $ERROR('#664: -8388608 << 20 === 0. Actual: ' + (-8388608 << 20)); +} + + +if (-16777216 << 20 !== 0) { + $ERROR('#665: -16777216 << 20 === 0. Actual: ' + (-16777216 << 20)); +} + + +if (-33554432 << 20 !== 0) { + $ERROR('#666: -33554432 << 20 === 0. Actual: ' + (-33554432 << 20)); +} + + +if (-67108864 << 20 !== 0) { + $ERROR('#667: -67108864 << 20 === 0. Actual: ' + (-67108864 << 20)); +} + + +if (-134217728 << 20 !== 0) { + $ERROR('#668: -134217728 << 20 === 0. Actual: ' + (-134217728 << 20)); +} + + +if (-268435456 << 20 !== 0) { + $ERROR('#669: -268435456 << 20 === 0. Actual: ' + (-268435456 << 20)); +} + + +if (-536870912 << 20 !== 0) { + $ERROR('#670: -536870912 << 20 === 0. Actual: ' + (-536870912 << 20)); +} + + +if (-1073741824 << 20 !== 0) { + $ERROR('#671: -1073741824 << 20 === 0. Actual: ' + (-1073741824 << 20)); +} + + +if (-2147483648 << 20 !== 0) { + $ERROR('#672: -2147483648 << 20 === 0. Actual: ' + (-2147483648 << 20)); +} + + +if (-1 << 21 !== -2097152) { + $ERROR('#673: -1 << 21 === -2097152. Actual: ' + (-1 << 21)); +} + + +if (-2 << 21 !== -4194304) { + $ERROR('#674: -2 << 21 === -4194304. Actual: ' + (-2 << 21)); +} + + +if (-4 << 21 !== -8388608) { + $ERROR('#675: -4 << 21 === -8388608. Actual: ' + (-4 << 21)); +} + + +if (-8 << 21 !== -16777216) { + $ERROR('#676: -8 << 21 === -16777216. Actual: ' + (-8 << 21)); +} + + +if (-16 << 21 !== -33554432) { + $ERROR('#677: -16 << 21 === -33554432. Actual: ' + (-16 << 21)); +} + + +if (-32 << 21 !== -67108864) { + $ERROR('#678: -32 << 21 === -67108864. Actual: ' + (-32 << 21)); +} + + +if (-64 << 21 !== -134217728) { + $ERROR('#679: -64 << 21 === -134217728. Actual: ' + (-64 << 21)); +} + + +if (-128 << 21 !== -268435456) { + $ERROR('#680: -128 << 21 === -268435456. Actual: ' + (-128 << 21)); +} + + +if (-256 << 21 !== -536870912) { + $ERROR('#681: -256 << 21 === -536870912. Actual: ' + (-256 << 21)); +} + + +if (-512 << 21 !== -1073741824) { + $ERROR('#682: -512 << 21 === -1073741824. Actual: ' + (-512 << 21)); +} + + +if (-1024 << 21 !== -2147483648) { + $ERROR('#683: -1024 << 21 === -2147483648. Actual: ' + (-1024 << 21)); +} + + +if (-2048 << 21 !== 0) { + $ERROR('#684: -2048 << 21 === 0. Actual: ' + (-2048 << 21)); +} + + +if (-4096 << 21 !== 0) { + $ERROR('#685: -4096 << 21 === 0. Actual: ' + (-4096 << 21)); +} + + +if (-8192 << 21 !== 0) { + $ERROR('#686: -8192 << 21 === 0. Actual: ' + (-8192 << 21)); +} + + +if (-16384 << 21 !== 0) { + $ERROR('#687: -16384 << 21 === 0. Actual: ' + (-16384 << 21)); +} + + +if (-32768 << 21 !== 0) { + $ERROR('#688: -32768 << 21 === 0. Actual: ' + (-32768 << 21)); +} + + +if (-65536 << 21 !== 0) { + $ERROR('#689: -65536 << 21 === 0. Actual: ' + (-65536 << 21)); +} + + +if (-131072 << 21 !== 0) { + $ERROR('#690: -131072 << 21 === 0. Actual: ' + (-131072 << 21)); +} + + +if (-262144 << 21 !== 0) { + $ERROR('#691: -262144 << 21 === 0. Actual: ' + (-262144 << 21)); +} + + +if (-524288 << 21 !== 0) { + $ERROR('#692: -524288 << 21 === 0. Actual: ' + (-524288 << 21)); +} + + +if (-1048576 << 21 !== 0) { + $ERROR('#693: -1048576 << 21 === 0. Actual: ' + (-1048576 << 21)); +} + + +if (-2097152 << 21 !== 0) { + $ERROR('#694: -2097152 << 21 === 0. Actual: ' + (-2097152 << 21)); +} + + +if (-4194304 << 21 !== 0) { + $ERROR('#695: -4194304 << 21 === 0. Actual: ' + (-4194304 << 21)); +} + + +if (-8388608 << 21 !== 0) { + $ERROR('#696: -8388608 << 21 === 0. Actual: ' + (-8388608 << 21)); +} + + +if (-16777216 << 21 !== 0) { + $ERROR('#697: -16777216 << 21 === 0. Actual: ' + (-16777216 << 21)); +} + + +if (-33554432 << 21 !== 0) { + $ERROR('#698: -33554432 << 21 === 0. Actual: ' + (-33554432 << 21)); +} + + +if (-67108864 << 21 !== 0) { + $ERROR('#699: -67108864 << 21 === 0. Actual: ' + (-67108864 << 21)); +} + + +if (-134217728 << 21 !== 0) { + $ERROR('#700: -134217728 << 21 === 0. Actual: ' + (-134217728 << 21)); +} + + +if (-268435456 << 21 !== 0) { + $ERROR('#701: -268435456 << 21 === 0. Actual: ' + (-268435456 << 21)); +} + + +if (-536870912 << 21 !== 0) { + $ERROR('#702: -536870912 << 21 === 0. Actual: ' + (-536870912 << 21)); +} + + +if (-1073741824 << 21 !== 0) { + $ERROR('#703: -1073741824 << 21 === 0. Actual: ' + (-1073741824 << 21)); +} + + +if (-2147483648 << 21 !== 0) { + $ERROR('#704: -2147483648 << 21 === 0. Actual: ' + (-2147483648 << 21)); +} + + +if (-1 << 22 !== -4194304) { + $ERROR('#705: -1 << 22 === -4194304. Actual: ' + (-1 << 22)); +} + + +if (-2 << 22 !== -8388608) { + $ERROR('#706: -2 << 22 === -8388608. Actual: ' + (-2 << 22)); +} + + +if (-4 << 22 !== -16777216) { + $ERROR('#707: -4 << 22 === -16777216. Actual: ' + (-4 << 22)); +} + + +if (-8 << 22 !== -33554432) { + $ERROR('#708: -8 << 22 === -33554432. Actual: ' + (-8 << 22)); +} + + +if (-16 << 22 !== -67108864) { + $ERROR('#709: -16 << 22 === -67108864. Actual: ' + (-16 << 22)); +} + + +if (-32 << 22 !== -134217728) { + $ERROR('#710: -32 << 22 === -134217728. Actual: ' + (-32 << 22)); +} + + +if (-64 << 22 !== -268435456) { + $ERROR('#711: -64 << 22 === -268435456. Actual: ' + (-64 << 22)); +} + + +if (-128 << 22 !== -536870912) { + $ERROR('#712: -128 << 22 === -536870912. Actual: ' + (-128 << 22)); +} + + +if (-256 << 22 !== -1073741824) { + $ERROR('#713: -256 << 22 === -1073741824. Actual: ' + (-256 << 22)); +} + + +if (-512 << 22 !== -2147483648) { + $ERROR('#714: -512 << 22 === -2147483648. Actual: ' + (-512 << 22)); +} + + +if (-1024 << 22 !== 0) { + $ERROR('#715: -1024 << 22 === 0. Actual: ' + (-1024 << 22)); +} + + +if (-2048 << 22 !== 0) { + $ERROR('#716: -2048 << 22 === 0. Actual: ' + (-2048 << 22)); +} + + +if (-4096 << 22 !== 0) { + $ERROR('#717: -4096 << 22 === 0. Actual: ' + (-4096 << 22)); +} + + +if (-8192 << 22 !== 0) { + $ERROR('#718: -8192 << 22 === 0. Actual: ' + (-8192 << 22)); +} + + +if (-16384 << 22 !== 0) { + $ERROR('#719: -16384 << 22 === 0. Actual: ' + (-16384 << 22)); +} + + +if (-32768 << 22 !== 0) { + $ERROR('#720: -32768 << 22 === 0. Actual: ' + (-32768 << 22)); +} + + +if (-65536 << 22 !== 0) { + $ERROR('#721: -65536 << 22 === 0. Actual: ' + (-65536 << 22)); +} + + +if (-131072 << 22 !== 0) { + $ERROR('#722: -131072 << 22 === 0. Actual: ' + (-131072 << 22)); +} + + +if (-262144 << 22 !== 0) { + $ERROR('#723: -262144 << 22 === 0. Actual: ' + (-262144 << 22)); +} + + +if (-524288 << 22 !== 0) { + $ERROR('#724: -524288 << 22 === 0. Actual: ' + (-524288 << 22)); +} + + +if (-1048576 << 22 !== 0) { + $ERROR('#725: -1048576 << 22 === 0. Actual: ' + (-1048576 << 22)); +} + + +if (-2097152 << 22 !== 0) { + $ERROR('#726: -2097152 << 22 === 0. Actual: ' + (-2097152 << 22)); +} + + +if (-4194304 << 22 !== 0) { + $ERROR('#727: -4194304 << 22 === 0. Actual: ' + (-4194304 << 22)); +} + + +if (-8388608 << 22 !== 0) { + $ERROR('#728: -8388608 << 22 === 0. Actual: ' + (-8388608 << 22)); +} + + +if (-16777216 << 22 !== 0) { + $ERROR('#729: -16777216 << 22 === 0. Actual: ' + (-16777216 << 22)); +} + + +if (-33554432 << 22 !== 0) { + $ERROR('#730: -33554432 << 22 === 0. Actual: ' + (-33554432 << 22)); +} + + +if (-67108864 << 22 !== 0) { + $ERROR('#731: -67108864 << 22 === 0. Actual: ' + (-67108864 << 22)); +} + + +if (-134217728 << 22 !== 0) { + $ERROR('#732: -134217728 << 22 === 0. Actual: ' + (-134217728 << 22)); +} + + +if (-268435456 << 22 !== 0) { + $ERROR('#733: -268435456 << 22 === 0. Actual: ' + (-268435456 << 22)); +} + + +if (-536870912 << 22 !== 0) { + $ERROR('#734: -536870912 << 22 === 0. Actual: ' + (-536870912 << 22)); +} + + +if (-1073741824 << 22 !== 0) { + $ERROR('#735: -1073741824 << 22 === 0. Actual: ' + (-1073741824 << 22)); +} + + +if (-2147483648 << 22 !== 0) { + $ERROR('#736: -2147483648 << 22 === 0. Actual: ' + (-2147483648 << 22)); +} + + +if (-1 << 23 !== -8388608) { + $ERROR('#737: -1 << 23 === -8388608. Actual: ' + (-1 << 23)); +} + + +if (-2 << 23 !== -16777216) { + $ERROR('#738: -2 << 23 === -16777216. Actual: ' + (-2 << 23)); +} + + +if (-4 << 23 !== -33554432) { + $ERROR('#739: -4 << 23 === -33554432. Actual: ' + (-4 << 23)); +} + + +if (-8 << 23 !== -67108864) { + $ERROR('#740: -8 << 23 === -67108864. Actual: ' + (-8 << 23)); +} + + +if (-16 << 23 !== -134217728) { + $ERROR('#741: -16 << 23 === -134217728. Actual: ' + (-16 << 23)); +} + + +if (-32 << 23 !== -268435456) { + $ERROR('#742: -32 << 23 === -268435456. Actual: ' + (-32 << 23)); +} + + +if (-64 << 23 !== -536870912) { + $ERROR('#743: -64 << 23 === -536870912. Actual: ' + (-64 << 23)); +} + + +if (-128 << 23 !== -1073741824) { + $ERROR('#744: -128 << 23 === -1073741824. Actual: ' + (-128 << 23)); +} + + +if (-256 << 23 !== -2147483648) { + $ERROR('#745: -256 << 23 === -2147483648. Actual: ' + (-256 << 23)); +} + + +if (-512 << 23 !== 0) { + $ERROR('#746: -512 << 23 === 0. Actual: ' + (-512 << 23)); +} + + +if (-1024 << 23 !== 0) { + $ERROR('#747: -1024 << 23 === 0. Actual: ' + (-1024 << 23)); +} + + +if (-2048 << 23 !== 0) { + $ERROR('#748: -2048 << 23 === 0. Actual: ' + (-2048 << 23)); +} + + +if (-4096 << 23 !== 0) { + $ERROR('#749: -4096 << 23 === 0. Actual: ' + (-4096 << 23)); +} + + +if (-8192 << 23 !== 0) { + $ERROR('#750: -8192 << 23 === 0. Actual: ' + (-8192 << 23)); +} + + +if (-16384 << 23 !== 0) { + $ERROR('#751: -16384 << 23 === 0. Actual: ' + (-16384 << 23)); +} + + +if (-32768 << 23 !== 0) { + $ERROR('#752: -32768 << 23 === 0. Actual: ' + (-32768 << 23)); +} + + +if (-65536 << 23 !== 0) { + $ERROR('#753: -65536 << 23 === 0. Actual: ' + (-65536 << 23)); +} + + +if (-131072 << 23 !== 0) { + $ERROR('#754: -131072 << 23 === 0. Actual: ' + (-131072 << 23)); +} + + +if (-262144 << 23 !== 0) { + $ERROR('#755: -262144 << 23 === 0. Actual: ' + (-262144 << 23)); +} + + +if (-524288 << 23 !== 0) { + $ERROR('#756: -524288 << 23 === 0. Actual: ' + (-524288 << 23)); +} + + +if (-1048576 << 23 !== 0) { + $ERROR('#757: -1048576 << 23 === 0. Actual: ' + (-1048576 << 23)); +} + + +if (-2097152 << 23 !== 0) { + $ERROR('#758: -2097152 << 23 === 0. Actual: ' + (-2097152 << 23)); +} + + +if (-4194304 << 23 !== 0) { + $ERROR('#759: -4194304 << 23 === 0. Actual: ' + (-4194304 << 23)); +} + + +if (-8388608 << 23 !== 0) { + $ERROR('#760: -8388608 << 23 === 0. Actual: ' + (-8388608 << 23)); +} + + +if (-16777216 << 23 !== 0) { + $ERROR('#761: -16777216 << 23 === 0. Actual: ' + (-16777216 << 23)); +} + + +if (-33554432 << 23 !== 0) { + $ERROR('#762: -33554432 << 23 === 0. Actual: ' + (-33554432 << 23)); +} + + +if (-67108864 << 23 !== 0) { + $ERROR('#763: -67108864 << 23 === 0. Actual: ' + (-67108864 << 23)); +} + + +if (-134217728 << 23 !== 0) { + $ERROR('#764: -134217728 << 23 === 0. Actual: ' + (-134217728 << 23)); +} + + +if (-268435456 << 23 !== 0) { + $ERROR('#765: -268435456 << 23 === 0. Actual: ' + (-268435456 << 23)); +} + + +if (-536870912 << 23 !== 0) { + $ERROR('#766: -536870912 << 23 === 0. Actual: ' + (-536870912 << 23)); +} + + +if (-1073741824 << 23 !== 0) { + $ERROR('#767: -1073741824 << 23 === 0. Actual: ' + (-1073741824 << 23)); +} + + +if (-2147483648 << 23 !== 0) { + $ERROR('#768: -2147483648 << 23 === 0. Actual: ' + (-2147483648 << 23)); +} + + +if (-1 << 24 !== -16777216) { + $ERROR('#769: -1 << 24 === -16777216. Actual: ' + (-1 << 24)); +} + + +if (-2 << 24 !== -33554432) { + $ERROR('#770: -2 << 24 === -33554432. Actual: ' + (-2 << 24)); +} + + +if (-4 << 24 !== -67108864) { + $ERROR('#771: -4 << 24 === -67108864. Actual: ' + (-4 << 24)); +} + + +if (-8 << 24 !== -134217728) { + $ERROR('#772: -8 << 24 === -134217728. Actual: ' + (-8 << 24)); +} + + +if (-16 << 24 !== -268435456) { + $ERROR('#773: -16 << 24 === -268435456. Actual: ' + (-16 << 24)); +} + + +if (-32 << 24 !== -536870912) { + $ERROR('#774: -32 << 24 === -536870912. Actual: ' + (-32 << 24)); +} + + +if (-64 << 24 !== -1073741824) { + $ERROR('#775: -64 << 24 === -1073741824. Actual: ' + (-64 << 24)); +} + + +if (-128 << 24 !== -2147483648) { + $ERROR('#776: -128 << 24 === -2147483648. Actual: ' + (-128 << 24)); +} + + +if (-256 << 24 !== 0) { + $ERROR('#777: -256 << 24 === 0. Actual: ' + (-256 << 24)); +} + + +if (-512 << 24 !== 0) { + $ERROR('#778: -512 << 24 === 0. Actual: ' + (-512 << 24)); +} + + +if (-1024 << 24 !== 0) { + $ERROR('#779: -1024 << 24 === 0. Actual: ' + (-1024 << 24)); +} + + +if (-2048 << 24 !== 0) { + $ERROR('#780: -2048 << 24 === 0. Actual: ' + (-2048 << 24)); +} + + +if (-4096 << 24 !== 0) { + $ERROR('#781: -4096 << 24 === 0. Actual: ' + (-4096 << 24)); +} + + +if (-8192 << 24 !== 0) { + $ERROR('#782: -8192 << 24 === 0. Actual: ' + (-8192 << 24)); +} + + +if (-16384 << 24 !== 0) { + $ERROR('#783: -16384 << 24 === 0. Actual: ' + (-16384 << 24)); +} + + +if (-32768 << 24 !== 0) { + $ERROR('#784: -32768 << 24 === 0. Actual: ' + (-32768 << 24)); +} + + +if (-65536 << 24 !== 0) { + $ERROR('#785: -65536 << 24 === 0. Actual: ' + (-65536 << 24)); +} + + +if (-131072 << 24 !== 0) { + $ERROR('#786: -131072 << 24 === 0. Actual: ' + (-131072 << 24)); +} + + +if (-262144 << 24 !== 0) { + $ERROR('#787: -262144 << 24 === 0. Actual: ' + (-262144 << 24)); +} + + +if (-524288 << 24 !== 0) { + $ERROR('#788: -524288 << 24 === 0. Actual: ' + (-524288 << 24)); +} + + +if (-1048576 << 24 !== 0) { + $ERROR('#789: -1048576 << 24 === 0. Actual: ' + (-1048576 << 24)); +} + + +if (-2097152 << 24 !== 0) { + $ERROR('#790: -2097152 << 24 === 0. Actual: ' + (-2097152 << 24)); +} + + +if (-4194304 << 24 !== 0) { + $ERROR('#791: -4194304 << 24 === 0. Actual: ' + (-4194304 << 24)); +} + + +if (-8388608 << 24 !== 0) { + $ERROR('#792: -8388608 << 24 === 0. Actual: ' + (-8388608 << 24)); +} + + +if (-16777216 << 24 !== 0) { + $ERROR('#793: -16777216 << 24 === 0. Actual: ' + (-16777216 << 24)); +} + + +if (-33554432 << 24 !== 0) { + $ERROR('#794: -33554432 << 24 === 0. Actual: ' + (-33554432 << 24)); +} + + +if (-67108864 << 24 !== 0) { + $ERROR('#795: -67108864 << 24 === 0. Actual: ' + (-67108864 << 24)); +} + + +if (-134217728 << 24 !== 0) { + $ERROR('#796: -134217728 << 24 === 0. Actual: ' + (-134217728 << 24)); +} + + +if (-268435456 << 24 !== 0) { + $ERROR('#797: -268435456 << 24 === 0. Actual: ' + (-268435456 << 24)); +} + + +if (-536870912 << 24 !== 0) { + $ERROR('#798: -536870912 << 24 === 0. Actual: ' + (-536870912 << 24)); +} + + +if (-1073741824 << 24 !== 0) { + $ERROR('#799: -1073741824 << 24 === 0. Actual: ' + (-1073741824 << 24)); +} + + +if (-2147483648 << 24 !== 0) { + $ERROR('#800: -2147483648 << 24 === 0. Actual: ' + (-2147483648 << 24)); +} + + +if (-1 << 25 !== -33554432) { + $ERROR('#801: -1 << 25 === -33554432. Actual: ' + (-1 << 25)); +} + + +if (-2 << 25 !== -67108864) { + $ERROR('#802: -2 << 25 === -67108864. Actual: ' + (-2 << 25)); +} + + +if (-4 << 25 !== -134217728) { + $ERROR('#803: -4 << 25 === -134217728. Actual: ' + (-4 << 25)); +} + + +if (-8 << 25 !== -268435456) { + $ERROR('#804: -8 << 25 === -268435456. Actual: ' + (-8 << 25)); +} + + +if (-16 << 25 !== -536870912) { + $ERROR('#805: -16 << 25 === -536870912. Actual: ' + (-16 << 25)); +} + + +if (-32 << 25 !== -1073741824) { + $ERROR('#806: -32 << 25 === -1073741824. Actual: ' + (-32 << 25)); +} + + +if (-64 << 25 !== -2147483648) { + $ERROR('#807: -64 << 25 === -2147483648. Actual: ' + (-64 << 25)); +} + + +if (-128 << 25 !== 0) { + $ERROR('#808: -128 << 25 === 0. Actual: ' + (-128 << 25)); +} + + +if (-256 << 25 !== 0) { + $ERROR('#809: -256 << 25 === 0. Actual: ' + (-256 << 25)); +} + + +if (-512 << 25 !== 0) { + $ERROR('#810: -512 << 25 === 0. Actual: ' + (-512 << 25)); +} + + +if (-1024 << 25 !== 0) { + $ERROR('#811: -1024 << 25 === 0. Actual: ' + (-1024 << 25)); +} + + +if (-2048 << 25 !== 0) { + $ERROR('#812: -2048 << 25 === 0. Actual: ' + (-2048 << 25)); +} + + +if (-4096 << 25 !== 0) { + $ERROR('#813: -4096 << 25 === 0. Actual: ' + (-4096 << 25)); +} + + +if (-8192 << 25 !== 0) { + $ERROR('#814: -8192 << 25 === 0. Actual: ' + (-8192 << 25)); +} + + +if (-16384 << 25 !== 0) { + $ERROR('#815: -16384 << 25 === 0. Actual: ' + (-16384 << 25)); +} + + +if (-32768 << 25 !== 0) { + $ERROR('#816: -32768 << 25 === 0. Actual: ' + (-32768 << 25)); +} + + +if (-65536 << 25 !== 0) { + $ERROR('#817: -65536 << 25 === 0. Actual: ' + (-65536 << 25)); +} + + +if (-131072 << 25 !== 0) { + $ERROR('#818: -131072 << 25 === 0. Actual: ' + (-131072 << 25)); +} + + +if (-262144 << 25 !== 0) { + $ERROR('#819: -262144 << 25 === 0. Actual: ' + (-262144 << 25)); +} + + +if (-524288 << 25 !== 0) { + $ERROR('#820: -524288 << 25 === 0. Actual: ' + (-524288 << 25)); +} + + +if (-1048576 << 25 !== 0) { + $ERROR('#821: -1048576 << 25 === 0. Actual: ' + (-1048576 << 25)); +} + + +if (-2097152 << 25 !== 0) { + $ERROR('#822: -2097152 << 25 === 0. Actual: ' + (-2097152 << 25)); +} + + +if (-4194304 << 25 !== 0) { + $ERROR('#823: -4194304 << 25 === 0. Actual: ' + (-4194304 << 25)); +} + + +if (-8388608 << 25 !== 0) { + $ERROR('#824: -8388608 << 25 === 0. Actual: ' + (-8388608 << 25)); +} + + +if (-16777216 << 25 !== 0) { + $ERROR('#825: -16777216 << 25 === 0. Actual: ' + (-16777216 << 25)); +} + + +if (-33554432 << 25 !== 0) { + $ERROR('#826: -33554432 << 25 === 0. Actual: ' + (-33554432 << 25)); +} + + +if (-67108864 << 25 !== 0) { + $ERROR('#827: -67108864 << 25 === 0. Actual: ' + (-67108864 << 25)); +} + + +if (-134217728 << 25 !== 0) { + $ERROR('#828: -134217728 << 25 === 0. Actual: ' + (-134217728 << 25)); +} + + +if (-268435456 << 25 !== 0) { + $ERROR('#829: -268435456 << 25 === 0. Actual: ' + (-268435456 << 25)); +} + + +if (-536870912 << 25 !== 0) { + $ERROR('#830: -536870912 << 25 === 0. Actual: ' + (-536870912 << 25)); +} + + +if (-1073741824 << 25 !== 0) { + $ERROR('#831: -1073741824 << 25 === 0. Actual: ' + (-1073741824 << 25)); +} + + +if (-2147483648 << 25 !== 0) { + $ERROR('#832: -2147483648 << 25 === 0. Actual: ' + (-2147483648 << 25)); +} + + +if (-1 << 26 !== -67108864) { + $ERROR('#833: -1 << 26 === -67108864. Actual: ' + (-1 << 26)); +} + + +if (-2 << 26 !== -134217728) { + $ERROR('#834: -2 << 26 === -134217728. Actual: ' + (-2 << 26)); +} + + +if (-4 << 26 !== -268435456) { + $ERROR('#835: -4 << 26 === -268435456. Actual: ' + (-4 << 26)); +} + + +if (-8 << 26 !== -536870912) { + $ERROR('#836: -8 << 26 === -536870912. Actual: ' + (-8 << 26)); +} + + +if (-16 << 26 !== -1073741824) { + $ERROR('#837: -16 << 26 === -1073741824. Actual: ' + (-16 << 26)); +} + + +if (-32 << 26 !== -2147483648) { + $ERROR('#838: -32 << 26 === -2147483648. Actual: ' + (-32 << 26)); +} + + +if (-64 << 26 !== 0) { + $ERROR('#839: -64 << 26 === 0. Actual: ' + (-64 << 26)); +} + + +if (-128 << 26 !== 0) { + $ERROR('#840: -128 << 26 === 0. Actual: ' + (-128 << 26)); +} + + +if (-256 << 26 !== 0) { + $ERROR('#841: -256 << 26 === 0. Actual: ' + (-256 << 26)); +} + + +if (-512 << 26 !== 0) { + $ERROR('#842: -512 << 26 === 0. Actual: ' + (-512 << 26)); +} + + +if (-1024 << 26 !== 0) { + $ERROR('#843: -1024 << 26 === 0. Actual: ' + (-1024 << 26)); +} + + +if (-2048 << 26 !== 0) { + $ERROR('#844: -2048 << 26 === 0. Actual: ' + (-2048 << 26)); +} + + +if (-4096 << 26 !== 0) { + $ERROR('#845: -4096 << 26 === 0. Actual: ' + (-4096 << 26)); +} + + +if (-8192 << 26 !== 0) { + $ERROR('#846: -8192 << 26 === 0. Actual: ' + (-8192 << 26)); +} + + +if (-16384 << 26 !== 0) { + $ERROR('#847: -16384 << 26 === 0. Actual: ' + (-16384 << 26)); +} + + +if (-32768 << 26 !== 0) { + $ERROR('#848: -32768 << 26 === 0. Actual: ' + (-32768 << 26)); +} + + +if (-65536 << 26 !== 0) { + $ERROR('#849: -65536 << 26 === 0. Actual: ' + (-65536 << 26)); +} + + +if (-131072 << 26 !== 0) { + $ERROR('#850: -131072 << 26 === 0. Actual: ' + (-131072 << 26)); +} + + +if (-262144 << 26 !== 0) { + $ERROR('#851: -262144 << 26 === 0. Actual: ' + (-262144 << 26)); +} + + +if (-524288 << 26 !== 0) { + $ERROR('#852: -524288 << 26 === 0. Actual: ' + (-524288 << 26)); +} + + +if (-1048576 << 26 !== 0) { + $ERROR('#853: -1048576 << 26 === 0. Actual: ' + (-1048576 << 26)); +} + + +if (-2097152 << 26 !== 0) { + $ERROR('#854: -2097152 << 26 === 0. Actual: ' + (-2097152 << 26)); +} + + +if (-4194304 << 26 !== 0) { + $ERROR('#855: -4194304 << 26 === 0. Actual: ' + (-4194304 << 26)); +} + + +if (-8388608 << 26 !== 0) { + $ERROR('#856: -8388608 << 26 === 0. Actual: ' + (-8388608 << 26)); +} + + +if (-16777216 << 26 !== 0) { + $ERROR('#857: -16777216 << 26 === 0. Actual: ' + (-16777216 << 26)); +} + + +if (-33554432 << 26 !== 0) { + $ERROR('#858: -33554432 << 26 === 0. Actual: ' + (-33554432 << 26)); +} + + +if (-67108864 << 26 !== 0) { + $ERROR('#859: -67108864 << 26 === 0. Actual: ' + (-67108864 << 26)); +} + + +if (-134217728 << 26 !== 0) { + $ERROR('#860: -134217728 << 26 === 0. Actual: ' + (-134217728 << 26)); +} + + +if (-268435456 << 26 !== 0) { + $ERROR('#861: -268435456 << 26 === 0. Actual: ' + (-268435456 << 26)); +} + + +if (-536870912 << 26 !== 0) { + $ERROR('#862: -536870912 << 26 === 0. Actual: ' + (-536870912 << 26)); +} + + +if (-1073741824 << 26 !== 0) { + $ERROR('#863: -1073741824 << 26 === 0. Actual: ' + (-1073741824 << 26)); +} + + +if (-2147483648 << 26 !== 0) { + $ERROR('#864: -2147483648 << 26 === 0. Actual: ' + (-2147483648 << 26)); +} + + +if (-1 << 27 !== -134217728) { + $ERROR('#865: -1 << 27 === -134217728. Actual: ' + (-1 << 27)); +} + + +if (-2 << 27 !== -268435456) { + $ERROR('#866: -2 << 27 === -268435456. Actual: ' + (-2 << 27)); +} + + +if (-4 << 27 !== -536870912) { + $ERROR('#867: -4 << 27 === -536870912. Actual: ' + (-4 << 27)); +} + + +if (-8 << 27 !== -1073741824) { + $ERROR('#868: -8 << 27 === -1073741824. Actual: ' + (-8 << 27)); +} + + +if (-16 << 27 !== -2147483648) { + $ERROR('#869: -16 << 27 === -2147483648. Actual: ' + (-16 << 27)); +} + + +if (-32 << 27 !== 0) { + $ERROR('#870: -32 << 27 === 0. Actual: ' + (-32 << 27)); +} + + +if (-64 << 27 !== 0) { + $ERROR('#871: -64 << 27 === 0. Actual: ' + (-64 << 27)); +} + + +if (-128 << 27 !== 0) { + $ERROR('#872: -128 << 27 === 0. Actual: ' + (-128 << 27)); +} + + +if (-256 << 27 !== 0) { + $ERROR('#873: -256 << 27 === 0. Actual: ' + (-256 << 27)); +} + + +if (-512 << 27 !== 0) { + $ERROR('#874: -512 << 27 === 0. Actual: ' + (-512 << 27)); +} + + +if (-1024 << 27 !== 0) { + $ERROR('#875: -1024 << 27 === 0. Actual: ' + (-1024 << 27)); +} + + +if (-2048 << 27 !== 0) { + $ERROR('#876: -2048 << 27 === 0. Actual: ' + (-2048 << 27)); +} + + +if (-4096 << 27 !== 0) { + $ERROR('#877: -4096 << 27 === 0. Actual: ' + (-4096 << 27)); +} + + +if (-8192 << 27 !== 0) { + $ERROR('#878: -8192 << 27 === 0. Actual: ' + (-8192 << 27)); +} + + +if (-16384 << 27 !== 0) { + $ERROR('#879: -16384 << 27 === 0. Actual: ' + (-16384 << 27)); +} + + +if (-32768 << 27 !== 0) { + $ERROR('#880: -32768 << 27 === 0. Actual: ' + (-32768 << 27)); +} + + +if (-65536 << 27 !== 0) { + $ERROR('#881: -65536 << 27 === 0. Actual: ' + (-65536 << 27)); +} + + +if (-131072 << 27 !== 0) { + $ERROR('#882: -131072 << 27 === 0. Actual: ' + (-131072 << 27)); +} + + +if (-262144 << 27 !== 0) { + $ERROR('#883: -262144 << 27 === 0. Actual: ' + (-262144 << 27)); +} + + +if (-524288 << 27 !== 0) { + $ERROR('#884: -524288 << 27 === 0. Actual: ' + (-524288 << 27)); +} + + +if (-1048576 << 27 !== 0) { + $ERROR('#885: -1048576 << 27 === 0. Actual: ' + (-1048576 << 27)); +} + + +if (-2097152 << 27 !== 0) { + $ERROR('#886: -2097152 << 27 === 0. Actual: ' + (-2097152 << 27)); +} + + +if (-4194304 << 27 !== 0) { + $ERROR('#887: -4194304 << 27 === 0. Actual: ' + (-4194304 << 27)); +} + + +if (-8388608 << 27 !== 0) { + $ERROR('#888: -8388608 << 27 === 0. Actual: ' + (-8388608 << 27)); +} + + +if (-16777216 << 27 !== 0) { + $ERROR('#889: -16777216 << 27 === 0. Actual: ' + (-16777216 << 27)); +} + + +if (-33554432 << 27 !== 0) { + $ERROR('#890: -33554432 << 27 === 0. Actual: ' + (-33554432 << 27)); +} + + +if (-67108864 << 27 !== 0) { + $ERROR('#891: -67108864 << 27 === 0. Actual: ' + (-67108864 << 27)); +} + + +if (-134217728 << 27 !== 0) { + $ERROR('#892: -134217728 << 27 === 0. Actual: ' + (-134217728 << 27)); +} + + +if (-268435456 << 27 !== 0) { + $ERROR('#893: -268435456 << 27 === 0. Actual: ' + (-268435456 << 27)); +} + + +if (-536870912 << 27 !== 0) { + $ERROR('#894: -536870912 << 27 === 0. Actual: ' + (-536870912 << 27)); +} + + +if (-1073741824 << 27 !== 0) { + $ERROR('#895: -1073741824 << 27 === 0. Actual: ' + (-1073741824 << 27)); +} + + +if (-2147483648 << 27 !== 0) { + $ERROR('#896: -2147483648 << 27 === 0. Actual: ' + (-2147483648 << 27)); +} + + +if (-1 << 28 !== -268435456) { + $ERROR('#897: -1 << 28 === -268435456. Actual: ' + (-1 << 28)); +} + + +if (-2 << 28 !== -536870912) { + $ERROR('#898: -2 << 28 === -536870912. Actual: ' + (-2 << 28)); +} + + +if (-4 << 28 !== -1073741824) { + $ERROR('#899: -4 << 28 === -1073741824. Actual: ' + (-4 << 28)); +} + + +if (-8 << 28 !== -2147483648) { + $ERROR('#900: -8 << 28 === -2147483648. Actual: ' + (-8 << 28)); +} + + +if (-16 << 28 !== 0) { + $ERROR('#901: -16 << 28 === 0. Actual: ' + (-16 << 28)); +} + + +if (-32 << 28 !== 0) { + $ERROR('#902: -32 << 28 === 0. Actual: ' + (-32 << 28)); +} + + +if (-64 << 28 !== 0) { + $ERROR('#903: -64 << 28 === 0. Actual: ' + (-64 << 28)); +} + + +if (-128 << 28 !== 0) { + $ERROR('#904: -128 << 28 === 0. Actual: ' + (-128 << 28)); +} + + +if (-256 << 28 !== 0) { + $ERROR('#905: -256 << 28 === 0. Actual: ' + (-256 << 28)); +} + + +if (-512 << 28 !== 0) { + $ERROR('#906: -512 << 28 === 0. Actual: ' + (-512 << 28)); +} + + +if (-1024 << 28 !== 0) { + $ERROR('#907: -1024 << 28 === 0. Actual: ' + (-1024 << 28)); +} + + +if (-2048 << 28 !== 0) { + $ERROR('#908: -2048 << 28 === 0. Actual: ' + (-2048 << 28)); +} + + +if (-4096 << 28 !== 0) { + $ERROR('#909: -4096 << 28 === 0. Actual: ' + (-4096 << 28)); +} + + +if (-8192 << 28 !== 0) { + $ERROR('#910: -8192 << 28 === 0. Actual: ' + (-8192 << 28)); +} + + +if (-16384 << 28 !== 0) { + $ERROR('#911: -16384 << 28 === 0. Actual: ' + (-16384 << 28)); +} + + +if (-32768 << 28 !== 0) { + $ERROR('#912: -32768 << 28 === 0. Actual: ' + (-32768 << 28)); +} + + +if (-65536 << 28 !== 0) { + $ERROR('#913: -65536 << 28 === 0. Actual: ' + (-65536 << 28)); +} + + +if (-131072 << 28 !== 0) { + $ERROR('#914: -131072 << 28 === 0. Actual: ' + (-131072 << 28)); +} + + +if (-262144 << 28 !== 0) { + $ERROR('#915: -262144 << 28 === 0. Actual: ' + (-262144 << 28)); +} + + +if (-524288 << 28 !== 0) { + $ERROR('#916: -524288 << 28 === 0. Actual: ' + (-524288 << 28)); +} + + +if (-1048576 << 28 !== 0) { + $ERROR('#917: -1048576 << 28 === 0. Actual: ' + (-1048576 << 28)); +} + + +if (-2097152 << 28 !== 0) { + $ERROR('#918: -2097152 << 28 === 0. Actual: ' + (-2097152 << 28)); +} + + +if (-4194304 << 28 !== 0) { + $ERROR('#919: -4194304 << 28 === 0. Actual: ' + (-4194304 << 28)); +} + + +if (-8388608 << 28 !== 0) { + $ERROR('#920: -8388608 << 28 === 0. Actual: ' + (-8388608 << 28)); +} + + +if (-16777216 << 28 !== 0) { + $ERROR('#921: -16777216 << 28 === 0. Actual: ' + (-16777216 << 28)); +} + + +if (-33554432 << 28 !== 0) { + $ERROR('#922: -33554432 << 28 === 0. Actual: ' + (-33554432 << 28)); +} + + +if (-67108864 << 28 !== 0) { + $ERROR('#923: -67108864 << 28 === 0. Actual: ' + (-67108864 << 28)); +} + + +if (-134217728 << 28 !== 0) { + $ERROR('#924: -134217728 << 28 === 0. Actual: ' + (-134217728 << 28)); +} + + +if (-268435456 << 28 !== 0) { + $ERROR('#925: -268435456 << 28 === 0. Actual: ' + (-268435456 << 28)); +} + + +if (-536870912 << 28 !== 0) { + $ERROR('#926: -536870912 << 28 === 0. Actual: ' + (-536870912 << 28)); +} + + +if (-1073741824 << 28 !== 0) { + $ERROR('#927: -1073741824 << 28 === 0. Actual: ' + (-1073741824 << 28)); +} + + +if (-2147483648 << 28 !== 0) { + $ERROR('#928: -2147483648 << 28 === 0. Actual: ' + (-2147483648 << 28)); +} + + +if (-1 << 29 !== -536870912) { + $ERROR('#929: -1 << 29 === -536870912. Actual: ' + (-1 << 29)); +} + + +if (-2 << 29 !== -1073741824) { + $ERROR('#930: -2 << 29 === -1073741824. Actual: ' + (-2 << 29)); +} + + +if (-4 << 29 !== -2147483648) { + $ERROR('#931: -4 << 29 === -2147483648. Actual: ' + (-4 << 29)); +} + + +if (-8 << 29 !== 0) { + $ERROR('#932: -8 << 29 === 0. Actual: ' + (-8 << 29)); +} + + +if (-16 << 29 !== 0) { + $ERROR('#933: -16 << 29 === 0. Actual: ' + (-16 << 29)); +} + + +if (-32 << 29 !== 0) { + $ERROR('#934: -32 << 29 === 0. Actual: ' + (-32 << 29)); +} + + +if (-64 << 29 !== 0) { + $ERROR('#935: -64 << 29 === 0. Actual: ' + (-64 << 29)); +} + + +if (-128 << 29 !== 0) { + $ERROR('#936: -128 << 29 === 0. Actual: ' + (-128 << 29)); +} + + +if (-256 << 29 !== 0) { + $ERROR('#937: -256 << 29 === 0. Actual: ' + (-256 << 29)); +} + + +if (-512 << 29 !== 0) { + $ERROR('#938: -512 << 29 === 0. Actual: ' + (-512 << 29)); +} + + +if (-1024 << 29 !== 0) { + $ERROR('#939: -1024 << 29 === 0. Actual: ' + (-1024 << 29)); +} + + +if (-2048 << 29 !== 0) { + $ERROR('#940: -2048 << 29 === 0. Actual: ' + (-2048 << 29)); +} + + +if (-4096 << 29 !== 0) { + $ERROR('#941: -4096 << 29 === 0. Actual: ' + (-4096 << 29)); +} + + +if (-8192 << 29 !== 0) { + $ERROR('#942: -8192 << 29 === 0. Actual: ' + (-8192 << 29)); +} + + +if (-16384 << 29 !== 0) { + $ERROR('#943: -16384 << 29 === 0. Actual: ' + (-16384 << 29)); +} + + +if (-32768 << 29 !== 0) { + $ERROR('#944: -32768 << 29 === 0. Actual: ' + (-32768 << 29)); +} + + +if (-65536 << 29 !== 0) { + $ERROR('#945: -65536 << 29 === 0. Actual: ' + (-65536 << 29)); +} + + +if (-131072 << 29 !== 0) { + $ERROR('#946: -131072 << 29 === 0. Actual: ' + (-131072 << 29)); +} + + +if (-262144 << 29 !== 0) { + $ERROR('#947: -262144 << 29 === 0. Actual: ' + (-262144 << 29)); +} + + +if (-524288 << 29 !== 0) { + $ERROR('#948: -524288 << 29 === 0. Actual: ' + (-524288 << 29)); +} + + +if (-1048576 << 29 !== 0) { + $ERROR('#949: -1048576 << 29 === 0. Actual: ' + (-1048576 << 29)); +} + + +if (-2097152 << 29 !== 0) { + $ERROR('#950: -2097152 << 29 === 0. Actual: ' + (-2097152 << 29)); +} + + +if (-4194304 << 29 !== 0) { + $ERROR('#951: -4194304 << 29 === 0. Actual: ' + (-4194304 << 29)); +} + + +if (-8388608 << 29 !== 0) { + $ERROR('#952: -8388608 << 29 === 0. Actual: ' + (-8388608 << 29)); +} + + +if (-16777216 << 29 !== 0) { + $ERROR('#953: -16777216 << 29 === 0. Actual: ' + (-16777216 << 29)); +} + + +if (-33554432 << 29 !== 0) { + $ERROR('#954: -33554432 << 29 === 0. Actual: ' + (-33554432 << 29)); +} + + +if (-67108864 << 29 !== 0) { + $ERROR('#955: -67108864 << 29 === 0. Actual: ' + (-67108864 << 29)); +} + + +if (-134217728 << 29 !== 0) { + $ERROR('#956: -134217728 << 29 === 0. Actual: ' + (-134217728 << 29)); +} + + +if (-268435456 << 29 !== 0) { + $ERROR('#957: -268435456 << 29 === 0. Actual: ' + (-268435456 << 29)); +} + + +if (-536870912 << 29 !== 0) { + $ERROR('#958: -536870912 << 29 === 0. Actual: ' + (-536870912 << 29)); +} + + +if (-1073741824 << 29 !== 0) { + $ERROR('#959: -1073741824 << 29 === 0. Actual: ' + (-1073741824 << 29)); +} + + +if (-2147483648 << 29 !== 0) { + $ERROR('#960: -2147483648 << 29 === 0. Actual: ' + (-2147483648 << 29)); +} + + +if (-1 << 30 !== -1073741824) { + $ERROR('#961: -1 << 30 === -1073741824. Actual: ' + (-1 << 30)); +} + + +if (-2 << 30 !== -2147483648) { + $ERROR('#962: -2 << 30 === -2147483648. Actual: ' + (-2 << 30)); +} + + +if (-4 << 30 !== 0) { + $ERROR('#963: -4 << 30 === 0. Actual: ' + (-4 << 30)); +} + + +if (-8 << 30 !== 0) { + $ERROR('#964: -8 << 30 === 0. Actual: ' + (-8 << 30)); +} + + +if (-16 << 30 !== 0) { + $ERROR('#965: -16 << 30 === 0. Actual: ' + (-16 << 30)); +} + + +if (-32 << 30 !== 0) { + $ERROR('#966: -32 << 30 === 0. Actual: ' + (-32 << 30)); +} + + +if (-64 << 30 !== 0) { + $ERROR('#967: -64 << 30 === 0. Actual: ' + (-64 << 30)); +} + + +if (-128 << 30 !== 0) { + $ERROR('#968: -128 << 30 === 0. Actual: ' + (-128 << 30)); +} + + +if (-256 << 30 !== 0) { + $ERROR('#969: -256 << 30 === 0. Actual: ' + (-256 << 30)); +} + + +if (-512 << 30 !== 0) { + $ERROR('#970: -512 << 30 === 0. Actual: ' + (-512 << 30)); +} + + +if (-1024 << 30 !== 0) { + $ERROR('#971: -1024 << 30 === 0. Actual: ' + (-1024 << 30)); +} + + +if (-2048 << 30 !== 0) { + $ERROR('#972: -2048 << 30 === 0. Actual: ' + (-2048 << 30)); +} + + +if (-4096 << 30 !== 0) { + $ERROR('#973: -4096 << 30 === 0. Actual: ' + (-4096 << 30)); +} + + +if (-8192 << 30 !== 0) { + $ERROR('#974: -8192 << 30 === 0. Actual: ' + (-8192 << 30)); +} + + +if (-16384 << 30 !== 0) { + $ERROR('#975: -16384 << 30 === 0. Actual: ' + (-16384 << 30)); +} + + +if (-32768 << 30 !== 0) { + $ERROR('#976: -32768 << 30 === 0. Actual: ' + (-32768 << 30)); +} + + +if (-65536 << 30 !== 0) { + $ERROR('#977: -65536 << 30 === 0. Actual: ' + (-65536 << 30)); +} + + +if (-131072 << 30 !== 0) { + $ERROR('#978: -131072 << 30 === 0. Actual: ' + (-131072 << 30)); +} + + +if (-262144 << 30 !== 0) { + $ERROR('#979: -262144 << 30 === 0. Actual: ' + (-262144 << 30)); +} + + +if (-524288 << 30 !== 0) { + $ERROR('#980: -524288 << 30 === 0. Actual: ' + (-524288 << 30)); +} + + +if (-1048576 << 30 !== 0) { + $ERROR('#981: -1048576 << 30 === 0. Actual: ' + (-1048576 << 30)); +} + + +if (-2097152 << 30 !== 0) { + $ERROR('#982: -2097152 << 30 === 0. Actual: ' + (-2097152 << 30)); +} + + +if (-4194304 << 30 !== 0) { + $ERROR('#983: -4194304 << 30 === 0. Actual: ' + (-4194304 << 30)); +} + + +if (-8388608 << 30 !== 0) { + $ERROR('#984: -8388608 << 30 === 0. Actual: ' + (-8388608 << 30)); +} + + +if (-16777216 << 30 !== 0) { + $ERROR('#985: -16777216 << 30 === 0. Actual: ' + (-16777216 << 30)); +} + + +if (-33554432 << 30 !== 0) { + $ERROR('#986: -33554432 << 30 === 0. Actual: ' + (-33554432 << 30)); +} + + +if (-67108864 << 30 !== 0) { + $ERROR('#987: -67108864 << 30 === 0. Actual: ' + (-67108864 << 30)); +} + + +if (-134217728 << 30 !== 0) { + $ERROR('#988: -134217728 << 30 === 0. Actual: ' + (-134217728 << 30)); +} + + +if (-268435456 << 30 !== 0) { + $ERROR('#989: -268435456 << 30 === 0. Actual: ' + (-268435456 << 30)); +} + + +if (-536870912 << 30 !== 0) { + $ERROR('#990: -536870912 << 30 === 0. Actual: ' + (-536870912 << 30)); +} + + +if (-1073741824 << 30 !== 0) { + $ERROR('#991: -1073741824 << 30 === 0. Actual: ' + (-1073741824 << 30)); +} + + +if (-2147483648 << 30 !== 0) { + $ERROR('#992: -2147483648 << 30 === 0. Actual: ' + (-2147483648 << 30)); +} + + +if (-1 << 31 !== -2147483648) { + $ERROR('#993: -1 << 31 === -2147483648. Actual: ' + (-1 << 31)); +} + + +if (-2 << 31 !== 0) { + $ERROR('#994: -2 << 31 === 0. Actual: ' + (-2 << 31)); +} + + +if (-4 << 31 !== 0) { + $ERROR('#995: -4 << 31 === 0. Actual: ' + (-4 << 31)); +} + + +if (-8 << 31 !== 0) { + $ERROR('#996: -8 << 31 === 0. Actual: ' + (-8 << 31)); +} + + +if (-16 << 31 !== 0) { + $ERROR('#997: -16 << 31 === 0. Actual: ' + (-16 << 31)); +} + + +if (-32 << 31 !== 0) { + $ERROR('#998: -32 << 31 === 0. Actual: ' + (-32 << 31)); +} + + +if (-64 << 31 !== 0) { + $ERROR('#999: -64 << 31 === 0. Actual: ' + (-64 << 31)); +} + + +if (-128 << 31 !== 0) { + $ERROR('#1000: -128 << 31 === 0. Actual: ' + (-128 << 31)); +} + + +if (-256 << 31 !== 0) { + $ERROR('#1001: -256 << 31 === 0. Actual: ' + (-256 << 31)); +} + + +if (-512 << 31 !== 0) { + $ERROR('#1002: -512 << 31 === 0. Actual: ' + (-512 << 31)); +} + + +if (-1024 << 31 !== 0) { + $ERROR('#1003: -1024 << 31 === 0. Actual: ' + (-1024 << 31)); +} + + +if (-2048 << 31 !== 0) { + $ERROR('#1004: -2048 << 31 === 0. Actual: ' + (-2048 << 31)); +} + + +if (-4096 << 31 !== 0) { + $ERROR('#1005: -4096 << 31 === 0. Actual: ' + (-4096 << 31)); +} + + +if (-8192 << 31 !== 0) { + $ERROR('#1006: -8192 << 31 === 0. Actual: ' + (-8192 << 31)); +} + + +if (-16384 << 31 !== 0) { + $ERROR('#1007: -16384 << 31 === 0. Actual: ' + (-16384 << 31)); +} + + +if (-32768 << 31 !== 0) { + $ERROR('#1008: -32768 << 31 === 0. Actual: ' + (-32768 << 31)); +} + + +if (-65536 << 31 !== 0) { + $ERROR('#1009: -65536 << 31 === 0. Actual: ' + (-65536 << 31)); +} + + +if (-131072 << 31 !== 0) { + $ERROR('#1010: -131072 << 31 === 0. Actual: ' + (-131072 << 31)); +} + + +if (-262144 << 31 !== 0) { + $ERROR('#1011: -262144 << 31 === 0. Actual: ' + (-262144 << 31)); +} + + +if (-524288 << 31 !== 0) { + $ERROR('#1012: -524288 << 31 === 0. Actual: ' + (-524288 << 31)); +} + + +if (-1048576 << 31 !== 0) { + $ERROR('#1013: -1048576 << 31 === 0. Actual: ' + (-1048576 << 31)); +} + + +if (-2097152 << 31 !== 0) { + $ERROR('#1014: -2097152 << 31 === 0. Actual: ' + (-2097152 << 31)); +} + + +if (-4194304 << 31 !== 0) { + $ERROR('#1015: -4194304 << 31 === 0. Actual: ' + (-4194304 << 31)); +} + + +if (-8388608 << 31 !== 0) { + $ERROR('#1016: -8388608 << 31 === 0. Actual: ' + (-8388608 << 31)); +} + + +if (-16777216 << 31 !== 0) { + $ERROR('#1017: -16777216 << 31 === 0. Actual: ' + (-16777216 << 31)); +} + + +if (-33554432 << 31 !== 0) { + $ERROR('#1018: -33554432 << 31 === 0. Actual: ' + (-33554432 << 31)); +} + + +if (-67108864 << 31 !== 0) { + $ERROR('#1019: -67108864 << 31 === 0. Actual: ' + (-67108864 << 31)); +} + + +if (-134217728 << 31 !== 0) { + $ERROR('#1020: -134217728 << 31 === 0. Actual: ' + (-134217728 << 31)); +} + + +if (-268435456 << 31 !== 0) { + $ERROR('#1021: -268435456 << 31 === 0. Actual: ' + (-268435456 << 31)); +} + + +if (-536870912 << 31 !== 0) { + $ERROR('#1022: -536870912 << 31 === 0. Actual: ' + (-536870912 << 31)); +} + + +if (-1073741824 << 31 !== 0) { + $ERROR('#1023: -1073741824 << 31 === 0. Actual: ' + (-1073741824 << 31)); +} + + +if (-2147483648 << 31 !== 0) { + $ERROR('#1024: -2147483648 << 31 === 0. Actual: ' + (-2147483648 << 31)); +} + + diff --git a/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A4_T3.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A4_T3.js new file mode 100644 index 000000000..5357d1857 --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A4_T3.js @@ -0,0 +1,2571 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Check operator x << y in distinct points + * + * @path ch11/11.7/11.7.1/S11.7.1_A4_T3.js + * @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 !== 2) { + $ERROR('#34: 1 << 1 === 2. Actual: ' + (1 << 1)); +} + + +if (3 << 1 !== 6) { + $ERROR('#35: 3 << 1 === 6. Actual: ' + (3 << 1)); +} + + +if (7 << 1 !== 14) { + $ERROR('#36: 7 << 1 === 14. Actual: ' + (7 << 1)); +} + + +if (15 << 1 !== 30) { + $ERROR('#37: 15 << 1 === 30. Actual: ' + (15 << 1)); +} + + +if (31 << 1 !== 62) { + $ERROR('#38: 31 << 1 === 62. Actual: ' + (31 << 1)); +} + + +if (63 << 1 !== 126) { + $ERROR('#39: 63 << 1 === 126. Actual: ' + (63 << 1)); +} + + +if (127 << 1 !== 254) { + $ERROR('#40: 127 << 1 === 254. Actual: ' + (127 << 1)); +} + + +if (255 << 1 !== 510) { + $ERROR('#41: 255 << 1 === 510. Actual: ' + (255 << 1)); +} + + +if (511 << 1 !== 1022) { + $ERROR('#42: 511 << 1 === 1022. Actual: ' + (511 << 1)); +} + + +if (1023 << 1 !== 2046) { + $ERROR('#43: 1023 << 1 === 2046. Actual: ' + (1023 << 1)); +} + + +if (2047 << 1 !== 4094) { + $ERROR('#44: 2047 << 1 === 4094. Actual: ' + (2047 << 1)); +} + + +if (4095 << 1 !== 8190) { + $ERROR('#45: 4095 << 1 === 8190. Actual: ' + (4095 << 1)); +} + + +if (8191 << 1 !== 16382) { + $ERROR('#46: 8191 << 1 === 16382. Actual: ' + (8191 << 1)); +} + + +if (16383 << 1 !== 32766) { + $ERROR('#47: 16383 << 1 === 32766. Actual: ' + (16383 << 1)); +} + + +if (32767 << 1 !== 65534) { + $ERROR('#48: 32767 << 1 === 65534. Actual: ' + (32767 << 1)); +} + + +if (65535 << 1 !== 131070) { + $ERROR('#49: 65535 << 1 === 131070. Actual: ' + (65535 << 1)); +} + + +if (131071 << 1 !== 262142) { + $ERROR('#50: 131071 << 1 === 262142. Actual: ' + (131071 << 1)); +} + + +if (262143 << 1 !== 524286) { + $ERROR('#51: 262143 << 1 === 524286. Actual: ' + (262143 << 1)); +} + + +if (524287 << 1 !== 1048574) { + $ERROR('#52: 524287 << 1 === 1048574. Actual: ' + (524287 << 1)); +} + + +if (1048575 << 1 !== 2097150) { + $ERROR('#53: 1048575 << 1 === 2097150. Actual: ' + (1048575 << 1)); +} + + +if (2097151 << 1 !== 4194302) { + $ERROR('#54: 2097151 << 1 === 4194302. Actual: ' + (2097151 << 1)); +} + + +if (4194303 << 1 !== 8388606) { + $ERROR('#55: 4194303 << 1 === 8388606. Actual: ' + (4194303 << 1)); +} + + +if (8388607 << 1 !== 16777214) { + $ERROR('#56: 8388607 << 1 === 16777214. Actual: ' + (8388607 << 1)); +} + + +if (16777215 << 1 !== 33554430) { + $ERROR('#57: 16777215 << 1 === 33554430. Actual: ' + (16777215 << 1)); +} + + +if (33554431 << 1 !== 67108862) { + $ERROR('#58: 33554431 << 1 === 67108862. Actual: ' + (33554431 << 1)); +} + + +if (67108863 << 1 !== 134217726) { + $ERROR('#59: 67108863 << 1 === 134217726. Actual: ' + (67108863 << 1)); +} + + +if (134217727 << 1 !== 268435454) { + $ERROR('#60: 134217727 << 1 === 268435454. Actual: ' + (134217727 << 1)); +} + + +if (268435455 << 1 !== 536870910) { + $ERROR('#61: 268435455 << 1 === 536870910. Actual: ' + (268435455 << 1)); +} + + +if (536870911 << 1 !== 1073741822) { + $ERROR('#62: 536870911 << 1 === 1073741822. Actual: ' + (536870911 << 1)); +} + + +if (1073741823 << 1 !== 2147483646) { + $ERROR('#63: 1073741823 << 1 === 2147483646. Actual: ' + (1073741823 << 1)); +} + + +if (2147483647 << 1 !== -2) { + $ERROR('#64: 2147483647 << 1 === -2. Actual: ' + (2147483647 << 1)); +} + + +if (0 << 2 !== 0) { + $ERROR('#65: 0 << 2 === 0. Actual: ' + (0 << 2)); +} + + +if (1 << 2 !== 4) { + $ERROR('#66: 1 << 2 === 4. Actual: ' + (1 << 2)); +} + + +if (3 << 2 !== 12) { + $ERROR('#67: 3 << 2 === 12. Actual: ' + (3 << 2)); +} + + +if (7 << 2 !== 28) { + $ERROR('#68: 7 << 2 === 28. Actual: ' + (7 << 2)); +} + + +if (15 << 2 !== 60) { + $ERROR('#69: 15 << 2 === 60. Actual: ' + (15 << 2)); +} + + +if (31 << 2 !== 124) { + $ERROR('#70: 31 << 2 === 124. Actual: ' + (31 << 2)); +} + + +if (63 << 2 !== 252) { + $ERROR('#71: 63 << 2 === 252. Actual: ' + (63 << 2)); +} + + +if (127 << 2 !== 508) { + $ERROR('#72: 127 << 2 === 508. Actual: ' + (127 << 2)); +} + + +if (255 << 2 !== 1020) { + $ERROR('#73: 255 << 2 === 1020. Actual: ' + (255 << 2)); +} + + +if (511 << 2 !== 2044) { + $ERROR('#74: 511 << 2 === 2044. Actual: ' + (511 << 2)); +} + + +if (1023 << 2 !== 4092) { + $ERROR('#75: 1023 << 2 === 4092. Actual: ' + (1023 << 2)); +} + + +if (2047 << 2 !== 8188) { + $ERROR('#76: 2047 << 2 === 8188. Actual: ' + (2047 << 2)); +} + + +if (4095 << 2 !== 16380) { + $ERROR('#77: 4095 << 2 === 16380. Actual: ' + (4095 << 2)); +} + + +if (8191 << 2 !== 32764) { + $ERROR('#78: 8191 << 2 === 32764. Actual: ' + (8191 << 2)); +} + + +if (16383 << 2 !== 65532) { + $ERROR('#79: 16383 << 2 === 65532. Actual: ' + (16383 << 2)); +} + + +if (32767 << 2 !== 131068) { + $ERROR('#80: 32767 << 2 === 131068. Actual: ' + (32767 << 2)); +} + + +if (65535 << 2 !== 262140) { + $ERROR('#81: 65535 << 2 === 262140. Actual: ' + (65535 << 2)); +} + + +if (131071 << 2 !== 524284) { + $ERROR('#82: 131071 << 2 === 524284. Actual: ' + (131071 << 2)); +} + + +if (262143 << 2 !== 1048572) { + $ERROR('#83: 262143 << 2 === 1048572. Actual: ' + (262143 << 2)); +} + + +if (524287 << 2 !== 2097148) { + $ERROR('#84: 524287 << 2 === 2097148. Actual: ' + (524287 << 2)); +} + + +if (1048575 << 2 !== 4194300) { + $ERROR('#85: 1048575 << 2 === 4194300. Actual: ' + (1048575 << 2)); +} + + +if (2097151 << 2 !== 8388604) { + $ERROR('#86: 2097151 << 2 === 8388604. Actual: ' + (2097151 << 2)); +} + + +if (4194303 << 2 !== 16777212) { + $ERROR('#87: 4194303 << 2 === 16777212. Actual: ' + (4194303 << 2)); +} + + +if (8388607 << 2 !== 33554428) { + $ERROR('#88: 8388607 << 2 === 33554428. Actual: ' + (8388607 << 2)); +} + + +if (16777215 << 2 !== 67108860) { + $ERROR('#89: 16777215 << 2 === 67108860. Actual: ' + (16777215 << 2)); +} + + +if (33554431 << 2 !== 134217724) { + $ERROR('#90: 33554431 << 2 === 134217724. Actual: ' + (33554431 << 2)); +} + + +if (67108863 << 2 !== 268435452) { + $ERROR('#91: 67108863 << 2 === 268435452. Actual: ' + (67108863 << 2)); +} + + +if (134217727 << 2 !== 536870908) { + $ERROR('#92: 134217727 << 2 === 536870908. Actual: ' + (134217727 << 2)); +} + + +if (268435455 << 2 !== 1073741820) { + $ERROR('#93: 268435455 << 2 === 1073741820. Actual: ' + (268435455 << 2)); +} + + +if (536870911 << 2 !== 2147483644) { + $ERROR('#94: 536870911 << 2 === 2147483644. Actual: ' + (536870911 << 2)); +} + + +if (1073741823 << 2 !== -4) { + $ERROR('#95: 1073741823 << 2 === -4. Actual: ' + (1073741823 << 2)); +} + + +if (2147483647 << 2 !== -4) { + $ERROR('#96: 2147483647 << 2 === -4. Actual: ' + (2147483647 << 2)); +} + + +if (0 << 3 !== 0) { + $ERROR('#97: 0 << 3 === 0. Actual: ' + (0 << 3)); +} + + +if (1 << 3 !== 8) { + $ERROR('#98: 1 << 3 === 8. Actual: ' + (1 << 3)); +} + + +if (3 << 3 !== 24) { + $ERROR('#99: 3 << 3 === 24. Actual: ' + (3 << 3)); +} + + +if (7 << 3 !== 56) { + $ERROR('#100: 7 << 3 === 56. Actual: ' + (7 << 3)); +} + + +if (15 << 3 !== 120) { + $ERROR('#101: 15 << 3 === 120. Actual: ' + (15 << 3)); +} + + +if (31 << 3 !== 248) { + $ERROR('#102: 31 << 3 === 248. Actual: ' + (31 << 3)); +} + + +if (63 << 3 !== 504) { + $ERROR('#103: 63 << 3 === 504. Actual: ' + (63 << 3)); +} + + +if (127 << 3 !== 1016) { + $ERROR('#104: 127 << 3 === 1016. Actual: ' + (127 << 3)); +} + + +if (255 << 3 !== 2040) { + $ERROR('#105: 255 << 3 === 2040. Actual: ' + (255 << 3)); +} + + +if (511 << 3 !== 4088) { + $ERROR('#106: 511 << 3 === 4088. Actual: ' + (511 << 3)); +} + + +if (1023 << 3 !== 8184) { + $ERROR('#107: 1023 << 3 === 8184. Actual: ' + (1023 << 3)); +} + + +if (2047 << 3 !== 16376) { + $ERROR('#108: 2047 << 3 === 16376. Actual: ' + (2047 << 3)); +} + + +if (4095 << 3 !== 32760) { + $ERROR('#109: 4095 << 3 === 32760. Actual: ' + (4095 << 3)); +} + + +if (8191 << 3 !== 65528) { + $ERROR('#110: 8191 << 3 === 65528. Actual: ' + (8191 << 3)); +} + + +if (16383 << 3 !== 131064) { + $ERROR('#111: 16383 << 3 === 131064. Actual: ' + (16383 << 3)); +} + + +if (32767 << 3 !== 262136) { + $ERROR('#112: 32767 << 3 === 262136. Actual: ' + (32767 << 3)); +} + + +if (65535 << 3 !== 524280) { + $ERROR('#113: 65535 << 3 === 524280. Actual: ' + (65535 << 3)); +} + + +if (131071 << 3 !== 1048568) { + $ERROR('#114: 131071 << 3 === 1048568. Actual: ' + (131071 << 3)); +} + + +if (262143 << 3 !== 2097144) { + $ERROR('#115: 262143 << 3 === 2097144. Actual: ' + (262143 << 3)); +} + + +if (524287 << 3 !== 4194296) { + $ERROR('#116: 524287 << 3 === 4194296. Actual: ' + (524287 << 3)); +} + + +if (1048575 << 3 !== 8388600) { + $ERROR('#117: 1048575 << 3 === 8388600. Actual: ' + (1048575 << 3)); +} + + +if (2097151 << 3 !== 16777208) { + $ERROR('#118: 2097151 << 3 === 16777208. Actual: ' + (2097151 << 3)); +} + + +if (4194303 << 3 !== 33554424) { + $ERROR('#119: 4194303 << 3 === 33554424. Actual: ' + (4194303 << 3)); +} + + +if (8388607 << 3 !== 67108856) { + $ERROR('#120: 8388607 << 3 === 67108856. Actual: ' + (8388607 << 3)); +} + + +if (16777215 << 3 !== 134217720) { + $ERROR('#121: 16777215 << 3 === 134217720. Actual: ' + (16777215 << 3)); +} + + +if (33554431 << 3 !== 268435448) { + $ERROR('#122: 33554431 << 3 === 268435448. Actual: ' + (33554431 << 3)); +} + + +if (67108863 << 3 !== 536870904) { + $ERROR('#123: 67108863 << 3 === 536870904. Actual: ' + (67108863 << 3)); +} + + +if (134217727 << 3 !== 1073741816) { + $ERROR('#124: 134217727 << 3 === 1073741816. Actual: ' + (134217727 << 3)); +} + + +if (268435455 << 3 !== 2147483640) { + $ERROR('#125: 268435455 << 3 === 2147483640. Actual: ' + (268435455 << 3)); +} + + +if (536870911 << 3 !== -8) { + $ERROR('#126: 536870911 << 3 === -8. Actual: ' + (536870911 << 3)); +} + + +if (1073741823 << 3 !== -8) { + $ERROR('#127: 1073741823 << 3 === -8. Actual: ' + (1073741823 << 3)); +} + + +if (2147483647 << 3 !== -8) { + $ERROR('#128: 2147483647 << 3 === -8. Actual: ' + (2147483647 << 3)); +} + + +if (0 << 4 !== 0) { + $ERROR('#129: 0 << 4 === 0. Actual: ' + (0 << 4)); +} + + +if (1 << 4 !== 16) { + $ERROR('#130: 1 << 4 === 16. Actual: ' + (1 << 4)); +} + + +if (3 << 4 !== 48) { + $ERROR('#131: 3 << 4 === 48. Actual: ' + (3 << 4)); +} + + +if (7 << 4 !== 112) { + $ERROR('#132: 7 << 4 === 112. Actual: ' + (7 << 4)); +} + + +if (15 << 4 !== 240) { + $ERROR('#133: 15 << 4 === 240. Actual: ' + (15 << 4)); +} + + +if (31 << 4 !== 496) { + $ERROR('#134: 31 << 4 === 496. Actual: ' + (31 << 4)); +} + + +if (63 << 4 !== 1008) { + $ERROR('#135: 63 << 4 === 1008. Actual: ' + (63 << 4)); +} + + +if (127 << 4 !== 2032) { + $ERROR('#136: 127 << 4 === 2032. Actual: ' + (127 << 4)); +} + + +if (255 << 4 !== 4080) { + $ERROR('#137: 255 << 4 === 4080. Actual: ' + (255 << 4)); +} + + +if (511 << 4 !== 8176) { + $ERROR('#138: 511 << 4 === 8176. Actual: ' + (511 << 4)); +} + + +if (1023 << 4 !== 16368) { + $ERROR('#139: 1023 << 4 === 16368. Actual: ' + (1023 << 4)); +} + + +if (2047 << 4 !== 32752) { + $ERROR('#140: 2047 << 4 === 32752. Actual: ' + (2047 << 4)); +} + + +if (4095 << 4 !== 65520) { + $ERROR('#141: 4095 << 4 === 65520. Actual: ' + (4095 << 4)); +} + + +if (8191 << 4 !== 131056) { + $ERROR('#142: 8191 << 4 === 131056. Actual: ' + (8191 << 4)); +} + + +if (16383 << 4 !== 262128) { + $ERROR('#143: 16383 << 4 === 262128. Actual: ' + (16383 << 4)); +} + + +if (32767 << 4 !== 524272) { + $ERROR('#144: 32767 << 4 === 524272. Actual: ' + (32767 << 4)); +} + + +if (65535 << 4 !== 1048560) { + $ERROR('#145: 65535 << 4 === 1048560. Actual: ' + (65535 << 4)); +} + + +if (131071 << 4 !== 2097136) { + $ERROR('#146: 131071 << 4 === 2097136. Actual: ' + (131071 << 4)); +} + + +if (262143 << 4 !== 4194288) { + $ERROR('#147: 262143 << 4 === 4194288. Actual: ' + (262143 << 4)); +} + + +if (524287 << 4 !== 8388592) { + $ERROR('#148: 524287 << 4 === 8388592. Actual: ' + (524287 << 4)); +} + + +if (1048575 << 4 !== 16777200) { + $ERROR('#149: 1048575 << 4 === 16777200. Actual: ' + (1048575 << 4)); +} + + +if (2097151 << 4 !== 33554416) { + $ERROR('#150: 2097151 << 4 === 33554416. Actual: ' + (2097151 << 4)); +} + + +if (4194303 << 4 !== 67108848) { + $ERROR('#151: 4194303 << 4 === 67108848. Actual: ' + (4194303 << 4)); +} + + +if (8388607 << 4 !== 134217712) { + $ERROR('#152: 8388607 << 4 === 134217712. Actual: ' + (8388607 << 4)); +} + + +if (16777215 << 4 !== 268435440) { + $ERROR('#153: 16777215 << 4 === 268435440. Actual: ' + (16777215 << 4)); +} + + +if (33554431 << 4 !== 536870896) { + $ERROR('#154: 33554431 << 4 === 536870896. Actual: ' + (33554431 << 4)); +} + + +if (67108863 << 4 !== 1073741808) { + $ERROR('#155: 67108863 << 4 === 1073741808. Actual: ' + (67108863 << 4)); +} + + +if (134217727 << 4 !== 2147483632) { + $ERROR('#156: 134217727 << 4 === 2147483632. Actual: ' + (134217727 << 4)); +} + + +if (268435455 << 4 !== -16) { + $ERROR('#157: 268435455 << 4 === -16. Actual: ' + (268435455 << 4)); +} + + +if (536870911 << 4 !== -16) { + $ERROR('#158: 536870911 << 4 === -16. Actual: ' + (536870911 << 4)); +} + + +if (1073741823 << 4 !== -16) { + $ERROR('#159: 1073741823 << 4 === -16. Actual: ' + (1073741823 << 4)); +} + + +if (2147483647 << 4 !== -16) { + $ERROR('#160: 2147483647 << 4 === -16. Actual: ' + (2147483647 << 4)); +} + + +if (0 << 5 !== 0) { + $ERROR('#161: 0 << 5 === 0. Actual: ' + (0 << 5)); +} + + +if (1 << 5 !== 32) { + $ERROR('#162: 1 << 5 === 32. Actual: ' + (1 << 5)); +} + + +if (3 << 5 !== 96) { + $ERROR('#163: 3 << 5 === 96. Actual: ' + (3 << 5)); +} + + +if (7 << 5 !== 224) { + $ERROR('#164: 7 << 5 === 224. Actual: ' + (7 << 5)); +} + + +if (15 << 5 !== 480) { + $ERROR('#165: 15 << 5 === 480. Actual: ' + (15 << 5)); +} + + +if (31 << 5 !== 992) { + $ERROR('#166: 31 << 5 === 992. Actual: ' + (31 << 5)); +} + + +if (63 << 5 !== 2016) { + $ERROR('#167: 63 << 5 === 2016. Actual: ' + (63 << 5)); +} + + +if (127 << 5 !== 4064) { + $ERROR('#168: 127 << 5 === 4064. Actual: ' + (127 << 5)); +} + + +if (255 << 5 !== 8160) { + $ERROR('#169: 255 << 5 === 8160. Actual: ' + (255 << 5)); +} + + +if (511 << 5 !== 16352) { + $ERROR('#170: 511 << 5 === 16352. Actual: ' + (511 << 5)); +} + + +if (1023 << 5 !== 32736) { + $ERROR('#171: 1023 << 5 === 32736. Actual: ' + (1023 << 5)); +} + + +if (2047 << 5 !== 65504) { + $ERROR('#172: 2047 << 5 === 65504. Actual: ' + (2047 << 5)); +} + + +if (4095 << 5 !== 131040) { + $ERROR('#173: 4095 << 5 === 131040. Actual: ' + (4095 << 5)); +} + + +if (8191 << 5 !== 262112) { + $ERROR('#174: 8191 << 5 === 262112. Actual: ' + (8191 << 5)); +} + + +if (16383 << 5 !== 524256) { + $ERROR('#175: 16383 << 5 === 524256. Actual: ' + (16383 << 5)); +} + + +if (32767 << 5 !== 1048544) { + $ERROR('#176: 32767 << 5 === 1048544. Actual: ' + (32767 << 5)); +} + + +if (65535 << 5 !== 2097120) { + $ERROR('#177: 65535 << 5 === 2097120. Actual: ' + (65535 << 5)); +} + + +if (131071 << 5 !== 4194272) { + $ERROR('#178: 131071 << 5 === 4194272. Actual: ' + (131071 << 5)); +} + + +if (262143 << 5 !== 8388576) { + $ERROR('#179: 262143 << 5 === 8388576. Actual: ' + (262143 << 5)); +} + + +if (524287 << 5 !== 16777184) { + $ERROR('#180: 524287 << 5 === 16777184. Actual: ' + (524287 << 5)); +} + + +if (1048575 << 5 !== 33554400) { + $ERROR('#181: 1048575 << 5 === 33554400. Actual: ' + (1048575 << 5)); +} + + +if (2097151 << 5 !== 67108832) { + $ERROR('#182: 2097151 << 5 === 67108832. Actual: ' + (2097151 << 5)); +} + + +if (4194303 << 5 !== 134217696) { + $ERROR('#183: 4194303 << 5 === 134217696. Actual: ' + (4194303 << 5)); +} + + +if (8388607 << 5 !== 268435424) { + $ERROR('#184: 8388607 << 5 === 268435424. Actual: ' + (8388607 << 5)); +} + + +if (16777215 << 5 !== 536870880) { + $ERROR('#185: 16777215 << 5 === 536870880. Actual: ' + (16777215 << 5)); +} + + +if (33554431 << 5 !== 1073741792) { + $ERROR('#186: 33554431 << 5 === 1073741792. Actual: ' + (33554431 << 5)); +} + + +if (67108863 << 5 !== 2147483616) { + $ERROR('#187: 67108863 << 5 === 2147483616. Actual: ' + (67108863 << 5)); +} + + +if (134217727 << 5 !== -32) { + $ERROR('#188: 134217727 << 5 === -32. Actual: ' + (134217727 << 5)); +} + + +if (268435455 << 5 !== -32) { + $ERROR('#189: 268435455 << 5 === -32. Actual: ' + (268435455 << 5)); +} + + +if (536870911 << 5 !== -32) { + $ERROR('#190: 536870911 << 5 === -32. Actual: ' + (536870911 << 5)); +} + + +if (1073741823 << 5 !== -32) { + $ERROR('#191: 1073741823 << 5 === -32. Actual: ' + (1073741823 << 5)); +} + + +if (2147483647 << 5 !== -32) { + $ERROR('#192: 2147483647 << 5 === -32. Actual: ' + (2147483647 << 5)); +} + + +if (0 << 6 !== 0) { + $ERROR('#193: 0 << 6 === 0. Actual: ' + (0 << 6)); +} + + +if (1 << 6 !== 64) { + $ERROR('#194: 1 << 6 === 64. Actual: ' + (1 << 6)); +} + + +if (3 << 6 !== 192) { + $ERROR('#195: 3 << 6 === 192. Actual: ' + (3 << 6)); +} + + +if (7 << 6 !== 448) { + $ERROR('#196: 7 << 6 === 448. Actual: ' + (7 << 6)); +} + + +if (15 << 6 !== 960) { + $ERROR('#197: 15 << 6 === 960. Actual: ' + (15 << 6)); +} + + +if (31 << 6 !== 1984) { + $ERROR('#198: 31 << 6 === 1984. Actual: ' + (31 << 6)); +} + + +if (63 << 6 !== 4032) { + $ERROR('#199: 63 << 6 === 4032. Actual: ' + (63 << 6)); +} + + +if (127 << 6 !== 8128) { + $ERROR('#200: 127 << 6 === 8128. Actual: ' + (127 << 6)); +} + + +if (255 << 6 !== 16320) { + $ERROR('#201: 255 << 6 === 16320. Actual: ' + (255 << 6)); +} + + +if (511 << 6 !== 32704) { + $ERROR('#202: 511 << 6 === 32704. Actual: ' + (511 << 6)); +} + + +if (1023 << 6 !== 65472) { + $ERROR('#203: 1023 << 6 === 65472. Actual: ' + (1023 << 6)); +} + + +if (2047 << 6 !== 131008) { + $ERROR('#204: 2047 << 6 === 131008. Actual: ' + (2047 << 6)); +} + + +if (4095 << 6 !== 262080) { + $ERROR('#205: 4095 << 6 === 262080. Actual: ' + (4095 << 6)); +} + + +if (8191 << 6 !== 524224) { + $ERROR('#206: 8191 << 6 === 524224. Actual: ' + (8191 << 6)); +} + + +if (16383 << 6 !== 1048512) { + $ERROR('#207: 16383 << 6 === 1048512. Actual: ' + (16383 << 6)); +} + + +if (32767 << 6 !== 2097088) { + $ERROR('#208: 32767 << 6 === 2097088. Actual: ' + (32767 << 6)); +} + + +if (65535 << 6 !== 4194240) { + $ERROR('#209: 65535 << 6 === 4194240. Actual: ' + (65535 << 6)); +} + + +if (131071 << 6 !== 8388544) { + $ERROR('#210: 131071 << 6 === 8388544. Actual: ' + (131071 << 6)); +} + + +if (262143 << 6 !== 16777152) { + $ERROR('#211: 262143 << 6 === 16777152. Actual: ' + (262143 << 6)); +} + + +if (524287 << 6 !== 33554368) { + $ERROR('#212: 524287 << 6 === 33554368. Actual: ' + (524287 << 6)); +} + + +if (1048575 << 6 !== 67108800) { + $ERROR('#213: 1048575 << 6 === 67108800. Actual: ' + (1048575 << 6)); +} + + +if (2097151 << 6 !== 134217664) { + $ERROR('#214: 2097151 << 6 === 134217664. Actual: ' + (2097151 << 6)); +} + + +if (4194303 << 6 !== 268435392) { + $ERROR('#215: 4194303 << 6 === 268435392. Actual: ' + (4194303 << 6)); +} + + +if (8388607 << 6 !== 536870848) { + $ERROR('#216: 8388607 << 6 === 536870848. Actual: ' + (8388607 << 6)); +} + + +if (16777215 << 6 !== 1073741760) { + $ERROR('#217: 16777215 << 6 === 1073741760. Actual: ' + (16777215 << 6)); +} + + +if (33554431 << 6 !== 2147483584) { + $ERROR('#218: 33554431 << 6 === 2147483584. Actual: ' + (33554431 << 6)); +} + + +if (67108863 << 6 !== -64) { + $ERROR('#219: 67108863 << 6 === -64. Actual: ' + (67108863 << 6)); +} + + +if (134217727 << 6 !== -64) { + $ERROR('#220: 134217727 << 6 === -64. Actual: ' + (134217727 << 6)); +} + + +if (268435455 << 6 !== -64) { + $ERROR('#221: 268435455 << 6 === -64. Actual: ' + (268435455 << 6)); +} + + +if (536870911 << 6 !== -64) { + $ERROR('#222: 536870911 << 6 === -64. Actual: ' + (536870911 << 6)); +} + + +if (1073741823 << 6 !== -64) { + $ERROR('#223: 1073741823 << 6 === -64. Actual: ' + (1073741823 << 6)); +} + + +if (2147483647 << 6 !== -64) { + $ERROR('#224: 2147483647 << 6 === -64. Actual: ' + (2147483647 << 6)); +} + + +if (0 << 7 !== 0) { + $ERROR('#225: 0 << 7 === 0. Actual: ' + (0 << 7)); +} + + +if (1 << 7 !== 128) { + $ERROR('#226: 1 << 7 === 128. Actual: ' + (1 << 7)); +} + + +if (3 << 7 !== 384) { + $ERROR('#227: 3 << 7 === 384. Actual: ' + (3 << 7)); +} + + +if (7 << 7 !== 896) { + $ERROR('#228: 7 << 7 === 896. Actual: ' + (7 << 7)); +} + + +if (15 << 7 !== 1920) { + $ERROR('#229: 15 << 7 === 1920. Actual: ' + (15 << 7)); +} + + +if (31 << 7 !== 3968) { + $ERROR('#230: 31 << 7 === 3968. Actual: ' + (31 << 7)); +} + + +if (63 << 7 !== 8064) { + $ERROR('#231: 63 << 7 === 8064. Actual: ' + (63 << 7)); +} + + +if (127 << 7 !== 16256) { + $ERROR('#232: 127 << 7 === 16256. Actual: ' + (127 << 7)); +} + + +if (255 << 7 !== 32640) { + $ERROR('#233: 255 << 7 === 32640. Actual: ' + (255 << 7)); +} + + +if (511 << 7 !== 65408) { + $ERROR('#234: 511 << 7 === 65408. Actual: ' + (511 << 7)); +} + + +if (1023 << 7 !== 130944) { + $ERROR('#235: 1023 << 7 === 130944. Actual: ' + (1023 << 7)); +} + + +if (2047 << 7 !== 262016) { + $ERROR('#236: 2047 << 7 === 262016. Actual: ' + (2047 << 7)); +} + + +if (4095 << 7 !== 524160) { + $ERROR('#237: 4095 << 7 === 524160. Actual: ' + (4095 << 7)); +} + + +if (8191 << 7 !== 1048448) { + $ERROR('#238: 8191 << 7 === 1048448. Actual: ' + (8191 << 7)); +} + + +if (16383 << 7 !== 2097024) { + $ERROR('#239: 16383 << 7 === 2097024. Actual: ' + (16383 << 7)); +} + + +if (32767 << 7 !== 4194176) { + $ERROR('#240: 32767 << 7 === 4194176. Actual: ' + (32767 << 7)); +} + + +if (65535 << 7 !== 8388480) { + $ERROR('#241: 65535 << 7 === 8388480. Actual: ' + (65535 << 7)); +} + + +if (131071 << 7 !== 16777088) { + $ERROR('#242: 131071 << 7 === 16777088. Actual: ' + (131071 << 7)); +} + + +if (262143 << 7 !== 33554304) { + $ERROR('#243: 262143 << 7 === 33554304. Actual: ' + (262143 << 7)); +} + + +if (524287 << 7 !== 67108736) { + $ERROR('#244: 524287 << 7 === 67108736. Actual: ' + (524287 << 7)); +} + + +if (1048575 << 7 !== 134217600) { + $ERROR('#245: 1048575 << 7 === 134217600. Actual: ' + (1048575 << 7)); +} + + +if (2097151 << 7 !== 268435328) { + $ERROR('#246: 2097151 << 7 === 268435328. Actual: ' + (2097151 << 7)); +} + + +if (4194303 << 7 !== 536870784) { + $ERROR('#247: 4194303 << 7 === 536870784. Actual: ' + (4194303 << 7)); +} + + +if (8388607 << 7 !== 1073741696) { + $ERROR('#248: 8388607 << 7 === 1073741696. Actual: ' + (8388607 << 7)); +} + + +if (16777215 << 7 !== 2147483520) { + $ERROR('#249: 16777215 << 7 === 2147483520. Actual: ' + (16777215 << 7)); +} + + +if (33554431 << 7 !== -128) { + $ERROR('#250: 33554431 << 7 === -128. Actual: ' + (33554431 << 7)); +} + + +if (67108863 << 7 !== -128) { + $ERROR('#251: 67108863 << 7 === -128. Actual: ' + (67108863 << 7)); +} + + +if (134217727 << 7 !== -128) { + $ERROR('#252: 134217727 << 7 === -128. Actual: ' + (134217727 << 7)); +} + + +if (268435455 << 7 !== -128) { + $ERROR('#253: 268435455 << 7 === -128. Actual: ' + (268435455 << 7)); +} + + +if (536870911 << 7 !== -128) { + $ERROR('#254: 536870911 << 7 === -128. Actual: ' + (536870911 << 7)); +} + + +if (1073741823 << 7 !== -128) { + $ERROR('#255: 1073741823 << 7 === -128. Actual: ' + (1073741823 << 7)); +} + + +if (2147483647 << 7 !== -128) { + $ERROR('#256: 2147483647 << 7 === -128. Actual: ' + (2147483647 << 7)); +} + + +if (0 << 8 !== 0) { + $ERROR('#257: 0 << 8 === 0. Actual: ' + (0 << 8)); +} + + +if (1 << 8 !== 256) { + $ERROR('#258: 1 << 8 === 256. Actual: ' + (1 << 8)); +} + + +if (3 << 8 !== 768) { + $ERROR('#259: 3 << 8 === 768. Actual: ' + (3 << 8)); +} + + +if (7 << 8 !== 1792) { + $ERROR('#260: 7 << 8 === 1792. Actual: ' + (7 << 8)); +} + + +if (15 << 8 !== 3840) { + $ERROR('#261: 15 << 8 === 3840. Actual: ' + (15 << 8)); +} + + +if (31 << 8 !== 7936) { + $ERROR('#262: 31 << 8 === 7936. Actual: ' + (31 << 8)); +} + + +if (63 << 8 !== 16128) { + $ERROR('#263: 63 << 8 === 16128. Actual: ' + (63 << 8)); +} + + +if (127 << 8 !== 32512) { + $ERROR('#264: 127 << 8 === 32512. Actual: ' + (127 << 8)); +} + + +if (255 << 8 !== 65280) { + $ERROR('#265: 255 << 8 === 65280. Actual: ' + (255 << 8)); +} + + +if (511 << 8 !== 130816) { + $ERROR('#266: 511 << 8 === 130816. Actual: ' + (511 << 8)); +} + + +if (1023 << 8 !== 261888) { + $ERROR('#267: 1023 << 8 === 261888. Actual: ' + (1023 << 8)); +} + + +if (2047 << 8 !== 524032) { + $ERROR('#268: 2047 << 8 === 524032. Actual: ' + (2047 << 8)); +} + + +if (4095 << 8 !== 1048320) { + $ERROR('#269: 4095 << 8 === 1048320. Actual: ' + (4095 << 8)); +} + + +if (8191 << 8 !== 2096896) { + $ERROR('#270: 8191 << 8 === 2096896. Actual: ' + (8191 << 8)); +} + + +if (16383 << 8 !== 4194048) { + $ERROR('#271: 16383 << 8 === 4194048. Actual: ' + (16383 << 8)); +} + + +if (32767 << 8 !== 8388352) { + $ERROR('#272: 32767 << 8 === 8388352. Actual: ' + (32767 << 8)); +} + + +if (65535 << 8 !== 16776960) { + $ERROR('#273: 65535 << 8 === 16776960. Actual: ' + (65535 << 8)); +} + + +if (131071 << 8 !== 33554176) { + $ERROR('#274: 131071 << 8 === 33554176. Actual: ' + (131071 << 8)); +} + + +if (262143 << 8 !== 67108608) { + $ERROR('#275: 262143 << 8 === 67108608. Actual: ' + (262143 << 8)); +} + + +if (524287 << 8 !== 134217472) { + $ERROR('#276: 524287 << 8 === 134217472. Actual: ' + (524287 << 8)); +} + + +if (1048575 << 8 !== 268435200) { + $ERROR('#277: 1048575 << 8 === 268435200. Actual: ' + (1048575 << 8)); +} + + +if (2097151 << 8 !== 536870656) { + $ERROR('#278: 2097151 << 8 === 536870656. Actual: ' + (2097151 << 8)); +} + + +if (4194303 << 8 !== 1073741568) { + $ERROR('#279: 4194303 << 8 === 1073741568. Actual: ' + (4194303 << 8)); +} + + +if (8388607 << 8 !== 2147483392) { + $ERROR('#280: 8388607 << 8 === 2147483392. Actual: ' + (8388607 << 8)); +} + + +if (16777215 << 8 !== -256) { + $ERROR('#281: 16777215 << 8 === -256. Actual: ' + (16777215 << 8)); +} + + +if (33554431 << 8 !== -256) { + $ERROR('#282: 33554431 << 8 === -256. Actual: ' + (33554431 << 8)); +} + + +if (67108863 << 8 !== -256) { + $ERROR('#283: 67108863 << 8 === -256. Actual: ' + (67108863 << 8)); +} + + +if (134217727 << 8 !== -256) { + $ERROR('#284: 134217727 << 8 === -256. Actual: ' + (134217727 << 8)); +} + + +if (268435455 << 8 !== -256) { + $ERROR('#285: 268435455 << 8 === -256. Actual: ' + (268435455 << 8)); +} + + +if (536870911 << 8 !== -256) { + $ERROR('#286: 536870911 << 8 === -256. Actual: ' + (536870911 << 8)); +} + + +if (1073741823 << 8 !== -256) { + $ERROR('#287: 1073741823 << 8 === -256. Actual: ' + (1073741823 << 8)); +} + + +if (2147483647 << 8 !== -256) { + $ERROR('#288: 2147483647 << 8 === -256. Actual: ' + (2147483647 << 8)); +} + + +if (0 << 9 !== 0) { + $ERROR('#289: 0 << 9 === 0. Actual: ' + (0 << 9)); +} + + +if (1 << 9 !== 512) { + $ERROR('#290: 1 << 9 === 512. Actual: ' + (1 << 9)); +} + + +if (3 << 9 !== 1536) { + $ERROR('#291: 3 << 9 === 1536. Actual: ' + (3 << 9)); +} + + +if (7 << 9 !== 3584) { + $ERROR('#292: 7 << 9 === 3584. Actual: ' + (7 << 9)); +} + + +if (15 << 9 !== 7680) { + $ERROR('#293: 15 << 9 === 7680. Actual: ' + (15 << 9)); +} + + +if (31 << 9 !== 15872) { + $ERROR('#294: 31 << 9 === 15872. Actual: ' + (31 << 9)); +} + + +if (63 << 9 !== 32256) { + $ERROR('#295: 63 << 9 === 32256. Actual: ' + (63 << 9)); +} + + +if (127 << 9 !== 65024) { + $ERROR('#296: 127 << 9 === 65024. Actual: ' + (127 << 9)); +} + + +if (255 << 9 !== 130560) { + $ERROR('#297: 255 << 9 === 130560. Actual: ' + (255 << 9)); +} + + +if (511 << 9 !== 261632) { + $ERROR('#298: 511 << 9 === 261632. Actual: ' + (511 << 9)); +} + + +if (1023 << 9 !== 523776) { + $ERROR('#299: 1023 << 9 === 523776. Actual: ' + (1023 << 9)); +} + + +if (2047 << 9 !== 1048064) { + $ERROR('#300: 2047 << 9 === 1048064. Actual: ' + (2047 << 9)); +} + + +if (4095 << 9 !== 2096640) { + $ERROR('#301: 4095 << 9 === 2096640. Actual: ' + (4095 << 9)); +} + + +if (8191 << 9 !== 4193792) { + $ERROR('#302: 8191 << 9 === 4193792. Actual: ' + (8191 << 9)); +} + + +if (16383 << 9 !== 8388096) { + $ERROR('#303: 16383 << 9 === 8388096. Actual: ' + (16383 << 9)); +} + + +if (32767 << 9 !== 16776704) { + $ERROR('#304: 32767 << 9 === 16776704. Actual: ' + (32767 << 9)); +} + + +if (65535 << 9 !== 33553920) { + $ERROR('#305: 65535 << 9 === 33553920. Actual: ' + (65535 << 9)); +} + + +if (131071 << 9 !== 67108352) { + $ERROR('#306: 131071 << 9 === 67108352. Actual: ' + (131071 << 9)); +} + + +if (262143 << 9 !== 134217216) { + $ERROR('#307: 262143 << 9 === 134217216. Actual: ' + (262143 << 9)); +} + + +if (524287 << 9 !== 268434944) { + $ERROR('#308: 524287 << 9 === 268434944. Actual: ' + (524287 << 9)); +} + + +if (1048575 << 9 !== 536870400) { + $ERROR('#309: 1048575 << 9 === 536870400. Actual: ' + (1048575 << 9)); +} + + +if (2097151 << 9 !== 1073741312) { + $ERROR('#310: 2097151 << 9 === 1073741312. Actual: ' + (2097151 << 9)); +} + + +if (4194303 << 9 !== 2147483136) { + $ERROR('#311: 4194303 << 9 === 2147483136. Actual: ' + (4194303 << 9)); +} + + +if (8388607 << 9 !== -512) { + $ERROR('#312: 8388607 << 9 === -512. Actual: ' + (8388607 << 9)); +} + + +if (16777215 << 9 !== -512) { + $ERROR('#313: 16777215 << 9 === -512. Actual: ' + (16777215 << 9)); +} + + +if (33554431 << 9 !== -512) { + $ERROR('#314: 33554431 << 9 === -512. Actual: ' + (33554431 << 9)); +} + + +if (67108863 << 9 !== -512) { + $ERROR('#315: 67108863 << 9 === -512. Actual: ' + (67108863 << 9)); +} + + +if (134217727 << 9 !== -512) { + $ERROR('#316: 134217727 << 9 === -512. Actual: ' + (134217727 << 9)); +} + + +if (268435455 << 9 !== -512) { + $ERROR('#317: 268435455 << 9 === -512. Actual: ' + (268435455 << 9)); +} + + +if (536870911 << 9 !== -512) { + $ERROR('#318: 536870911 << 9 === -512. Actual: ' + (536870911 << 9)); +} + + +if (1073741823 << 9 !== -512) { + $ERROR('#319: 1073741823 << 9 === -512. Actual: ' + (1073741823 << 9)); +} + + +if (2147483647 << 9 !== -512) { + $ERROR('#320: 2147483647 << 9 === -512. Actual: ' + (2147483647 << 9)); +} + + +if (0 << 10 !== 0) { + $ERROR('#321: 0 << 10 === 0. Actual: ' + (0 << 10)); +} + + +if (1 << 10 !== 1024) { + $ERROR('#322: 1 << 10 === 1024. Actual: ' + (1 << 10)); +} + + +if (3 << 10 !== 3072) { + $ERROR('#323: 3 << 10 === 3072. Actual: ' + (3 << 10)); +} + + +if (7 << 10 !== 7168) { + $ERROR('#324: 7 << 10 === 7168. Actual: ' + (7 << 10)); +} + + +if (15 << 10 !== 15360) { + $ERROR('#325: 15 << 10 === 15360. Actual: ' + (15 << 10)); +} + + +if (31 << 10 !== 31744) { + $ERROR('#326: 31 << 10 === 31744. Actual: ' + (31 << 10)); +} + + +if (63 << 10 !== 64512) { + $ERROR('#327: 63 << 10 === 64512. Actual: ' + (63 << 10)); +} + + +if (127 << 10 !== 130048) { + $ERROR('#328: 127 << 10 === 130048. Actual: ' + (127 << 10)); +} + + +if (255 << 10 !== 261120) { + $ERROR('#329: 255 << 10 === 261120. Actual: ' + (255 << 10)); +} + + +if (511 << 10 !== 523264) { + $ERROR('#330: 511 << 10 === 523264. Actual: ' + (511 << 10)); +} + + +if (1023 << 10 !== 1047552) { + $ERROR('#331: 1023 << 10 === 1047552. Actual: ' + (1023 << 10)); +} + + +if (2047 << 10 !== 2096128) { + $ERROR('#332: 2047 << 10 === 2096128. Actual: ' + (2047 << 10)); +} + + +if (4095 << 10 !== 4193280) { + $ERROR('#333: 4095 << 10 === 4193280. Actual: ' + (4095 << 10)); +} + + +if (8191 << 10 !== 8387584) { + $ERROR('#334: 8191 << 10 === 8387584. Actual: ' + (8191 << 10)); +} + + +if (16383 << 10 !== 16776192) { + $ERROR('#335: 16383 << 10 === 16776192. Actual: ' + (16383 << 10)); +} + + +if (32767 << 10 !== 33553408) { + $ERROR('#336: 32767 << 10 === 33553408. Actual: ' + (32767 << 10)); +} + + +if (65535 << 10 !== 67107840) { + $ERROR('#337: 65535 << 10 === 67107840. Actual: ' + (65535 << 10)); +} + + +if (131071 << 10 !== 134216704) { + $ERROR('#338: 131071 << 10 === 134216704. Actual: ' + (131071 << 10)); +} + + +if (262143 << 10 !== 268434432) { + $ERROR('#339: 262143 << 10 === 268434432. Actual: ' + (262143 << 10)); +} + + +if (524287 << 10 !== 536869888) { + $ERROR('#340: 524287 << 10 === 536869888. Actual: ' + (524287 << 10)); +} + + +if (1048575 << 10 !== 1073740800) { + $ERROR('#341: 1048575 << 10 === 1073740800. Actual: ' + (1048575 << 10)); +} + + +if (2097151 << 10 !== 2147482624) { + $ERROR('#342: 2097151 << 10 === 2147482624. Actual: ' + (2097151 << 10)); +} + + +if (4194303 << 10 !== -1024) { + $ERROR('#343: 4194303 << 10 === -1024. Actual: ' + (4194303 << 10)); +} + + +if (8388607 << 10 !== -1024) { + $ERROR('#344: 8388607 << 10 === -1024. Actual: ' + (8388607 << 10)); +} + + +if (16777215 << 10 !== -1024) { + $ERROR('#345: 16777215 << 10 === -1024. Actual: ' + (16777215 << 10)); +} + + +if (33554431 << 10 !== -1024) { + $ERROR('#346: 33554431 << 10 === -1024. Actual: ' + (33554431 << 10)); +} + + +if (67108863 << 10 !== -1024) { + $ERROR('#347: 67108863 << 10 === -1024. Actual: ' + (67108863 << 10)); +} + + +if (134217727 << 10 !== -1024) { + $ERROR('#348: 134217727 << 10 === -1024. Actual: ' + (134217727 << 10)); +} + + +if (268435455 << 10 !== -1024) { + $ERROR('#349: 268435455 << 10 === -1024. Actual: ' + (268435455 << 10)); +} + + +if (536870911 << 10 !== -1024) { + $ERROR('#350: 536870911 << 10 === -1024. Actual: ' + (536870911 << 10)); +} + + +if (1073741823 << 10 !== -1024) { + $ERROR('#351: 1073741823 << 10 === -1024. Actual: ' + (1073741823 << 10)); +} + + +if (2147483647 << 10 !== -1024) { + $ERROR('#352: 2147483647 << 10 === -1024. Actual: ' + (2147483647 << 10)); +} + + +if (0 << 11 !== 0) { + $ERROR('#353: 0 << 11 === 0. Actual: ' + (0 << 11)); +} + + +if (1 << 11 !== 2048) { + $ERROR('#354: 1 << 11 === 2048. Actual: ' + (1 << 11)); +} + + +if (3 << 11 !== 6144) { + $ERROR('#355: 3 << 11 === 6144. Actual: ' + (3 << 11)); +} + + +if (7 << 11 !== 14336) { + $ERROR('#356: 7 << 11 === 14336. Actual: ' + (7 << 11)); +} + + +if (15 << 11 !== 30720) { + $ERROR('#357: 15 << 11 === 30720. Actual: ' + (15 << 11)); +} + + +if (31 << 11 !== 63488) { + $ERROR('#358: 31 << 11 === 63488. Actual: ' + (31 << 11)); +} + + +if (63 << 11 !== 129024) { + $ERROR('#359: 63 << 11 === 129024. Actual: ' + (63 << 11)); +} + + +if (127 << 11 !== 260096) { + $ERROR('#360: 127 << 11 === 260096. Actual: ' + (127 << 11)); +} + + +if (255 << 11 !== 522240) { + $ERROR('#361: 255 << 11 === 522240. Actual: ' + (255 << 11)); +} + + +if (511 << 11 !== 1046528) { + $ERROR('#362: 511 << 11 === 1046528. Actual: ' + (511 << 11)); +} + + +if (1023 << 11 !== 2095104) { + $ERROR('#363: 1023 << 11 === 2095104. Actual: ' + (1023 << 11)); +} + + +if (2047 << 11 !== 4192256) { + $ERROR('#364: 2047 << 11 === 4192256. Actual: ' + (2047 << 11)); +} + + +if (4095 << 11 !== 8386560) { + $ERROR('#365: 4095 << 11 === 8386560. Actual: ' + (4095 << 11)); +} + + +if (8191 << 11 !== 16775168) { + $ERROR('#366: 8191 << 11 === 16775168. Actual: ' + (8191 << 11)); +} + + +if (16383 << 11 !== 33552384) { + $ERROR('#367: 16383 << 11 === 33552384. Actual: ' + (16383 << 11)); +} + + +if (32767 << 11 !== 67106816) { + $ERROR('#368: 32767 << 11 === 67106816. Actual: ' + (32767 << 11)); +} + + +if (65535 << 11 !== 134215680) { + $ERROR('#369: 65535 << 11 === 134215680. Actual: ' + (65535 << 11)); +} + + +if (131071 << 11 !== 268433408) { + $ERROR('#370: 131071 << 11 === 268433408. Actual: ' + (131071 << 11)); +} + + +if (262143 << 11 !== 536868864) { + $ERROR('#371: 262143 << 11 === 536868864. Actual: ' + (262143 << 11)); +} + + +if (524287 << 11 !== 1073739776) { + $ERROR('#372: 524287 << 11 === 1073739776. Actual: ' + (524287 << 11)); +} + + +if (1048575 << 11 !== 2147481600) { + $ERROR('#373: 1048575 << 11 === 2147481600. Actual: ' + (1048575 << 11)); +} + + +if (2097151 << 11 !== -2048) { + $ERROR('#374: 2097151 << 11 === -2048. Actual: ' + (2097151 << 11)); +} + + +if (4194303 << 11 !== -2048) { + $ERROR('#375: 4194303 << 11 === -2048. Actual: ' + (4194303 << 11)); +} + + +if (8388607 << 11 !== -2048) { + $ERROR('#376: 8388607 << 11 === -2048. Actual: ' + (8388607 << 11)); +} + + +if (16777215 << 11 !== -2048) { + $ERROR('#377: 16777215 << 11 === -2048. Actual: ' + (16777215 << 11)); +} + + +if (33554431 << 11 !== -2048) { + $ERROR('#378: 33554431 << 11 === -2048. Actual: ' + (33554431 << 11)); +} + + +if (67108863 << 11 !== -2048) { + $ERROR('#379: 67108863 << 11 === -2048. Actual: ' + (67108863 << 11)); +} + + +if (134217727 << 11 !== -2048) { + $ERROR('#380: 134217727 << 11 === -2048. Actual: ' + (134217727 << 11)); +} + + +if (268435455 << 11 !== -2048) { + $ERROR('#381: 268435455 << 11 === -2048. Actual: ' + (268435455 << 11)); +} + + +if (536870911 << 11 !== -2048) { + $ERROR('#382: 536870911 << 11 === -2048. Actual: ' + (536870911 << 11)); +} + + +if (1073741823 << 11 !== -2048) { + $ERROR('#383: 1073741823 << 11 === -2048. Actual: ' + (1073741823 << 11)); +} + + +if (2147483647 << 11 !== -2048) { + $ERROR('#384: 2147483647 << 11 === -2048. Actual: ' + (2147483647 << 11)); +} + + +if (0 << 12 !== 0) { + $ERROR('#385: 0 << 12 === 0. Actual: ' + (0 << 12)); +} + + +if (1 << 12 !== 4096) { + $ERROR('#386: 1 << 12 === 4096. Actual: ' + (1 << 12)); +} + + +if (3 << 12 !== 12288) { + $ERROR('#387: 3 << 12 === 12288. Actual: ' + (3 << 12)); +} + + +if (7 << 12 !== 28672) { + $ERROR('#388: 7 << 12 === 28672. Actual: ' + (7 << 12)); +} + + +if (15 << 12 !== 61440) { + $ERROR('#389: 15 << 12 === 61440. Actual: ' + (15 << 12)); +} + + +if (31 << 12 !== 126976) { + $ERROR('#390: 31 << 12 === 126976. Actual: ' + (31 << 12)); +} + + +if (63 << 12 !== 258048) { + $ERROR('#391: 63 << 12 === 258048. Actual: ' + (63 << 12)); +} + + +if (127 << 12 !== 520192) { + $ERROR('#392: 127 << 12 === 520192. Actual: ' + (127 << 12)); +} + + +if (255 << 12 !== 1044480) { + $ERROR('#393: 255 << 12 === 1044480. Actual: ' + (255 << 12)); +} + + +if (511 << 12 !== 2093056) { + $ERROR('#394: 511 << 12 === 2093056. Actual: ' + (511 << 12)); +} + + +if (1023 << 12 !== 4190208) { + $ERROR('#395: 1023 << 12 === 4190208. Actual: ' + (1023 << 12)); +} + + +if (2047 << 12 !== 8384512) { + $ERROR('#396: 2047 << 12 === 8384512. Actual: ' + (2047 << 12)); +} + + +if (4095 << 12 !== 16773120) { + $ERROR('#397: 4095 << 12 === 16773120. Actual: ' + (4095 << 12)); +} + + +if (8191 << 12 !== 33550336) { + $ERROR('#398: 8191 << 12 === 33550336. Actual: ' + (8191 << 12)); +} + + +if (16383 << 12 !== 67104768) { + $ERROR('#399: 16383 << 12 === 67104768. Actual: ' + (16383 << 12)); +} + + +if (32767 << 12 !== 134213632) { + $ERROR('#400: 32767 << 12 === 134213632. Actual: ' + (32767 << 12)); +} + + +if (65535 << 12 !== 268431360) { + $ERROR('#401: 65535 << 12 === 268431360. Actual: ' + (65535 << 12)); +} + + +if (131071 << 12 !== 536866816) { + $ERROR('#402: 131071 << 12 === 536866816. Actual: ' + (131071 << 12)); +} + + +if (262143 << 12 !== 1073737728) { + $ERROR('#403: 262143 << 12 === 1073737728. Actual: ' + (262143 << 12)); +} + + +if (524287 << 12 !== 2147479552) { + $ERROR('#404: 524287 << 12 === 2147479552. Actual: ' + (524287 << 12)); +} + + +if (1048575 << 12 !== -4096) { + $ERROR('#405: 1048575 << 12 === -4096. Actual: ' + (1048575 << 12)); +} + + +if (2097151 << 12 !== -4096) { + $ERROR('#406: 2097151 << 12 === -4096. Actual: ' + (2097151 << 12)); +} + + +if (4194303 << 12 !== -4096) { + $ERROR('#407: 4194303 << 12 === -4096. Actual: ' + (4194303 << 12)); +} + + +if (8388607 << 12 !== -4096) { + $ERROR('#408: 8388607 << 12 === -4096. Actual: ' + (8388607 << 12)); +} + + +if (16777215 << 12 !== -4096) { + $ERROR('#409: 16777215 << 12 === -4096. Actual: ' + (16777215 << 12)); +} + + +if (33554431 << 12 !== -4096) { + $ERROR('#410: 33554431 << 12 === -4096. Actual: ' + (33554431 << 12)); +} + + +if (67108863 << 12 !== -4096) { + $ERROR('#411: 67108863 << 12 === -4096. Actual: ' + (67108863 << 12)); +} + + +if (134217727 << 12 !== -4096) { + $ERROR('#412: 134217727 << 12 === -4096. Actual: ' + (134217727 << 12)); +} + + +if (268435455 << 12 !== -4096) { + $ERROR('#413: 268435455 << 12 === -4096. Actual: ' + (268435455 << 12)); +} + + +if (536870911 << 12 !== -4096) { + $ERROR('#414: 536870911 << 12 === -4096. Actual: ' + (536870911 << 12)); +} + + +if (1073741823 << 12 !== -4096) { + $ERROR('#415: 1073741823 << 12 === -4096. Actual: ' + (1073741823 << 12)); +} + + +if (2147483647 << 12 !== -4096) { + $ERROR('#416: 2147483647 << 12 === -4096. Actual: ' + (2147483647 << 12)); +} + + +if (0 << 13 !== 0) { + $ERROR('#417: 0 << 13 === 0. Actual: ' + (0 << 13)); +} + + +if (1 << 13 !== 8192) { + $ERROR('#418: 1 << 13 === 8192. Actual: ' + (1 << 13)); +} + + +if (3 << 13 !== 24576) { + $ERROR('#419: 3 << 13 === 24576. Actual: ' + (3 << 13)); +} + + +if (7 << 13 !== 57344) { + $ERROR('#420: 7 << 13 === 57344. Actual: ' + (7 << 13)); +} + + +if (15 << 13 !== 122880) { + $ERROR('#421: 15 << 13 === 122880. Actual: ' + (15 << 13)); +} + + +if (31 << 13 !== 253952) { + $ERROR('#422: 31 << 13 === 253952. Actual: ' + (31 << 13)); +} + + +if (63 << 13 !== 516096) { + $ERROR('#423: 63 << 13 === 516096. Actual: ' + (63 << 13)); +} + + +if (127 << 13 !== 1040384) { + $ERROR('#424: 127 << 13 === 1040384. Actual: ' + (127 << 13)); +} + + +if (255 << 13 !== 2088960) { + $ERROR('#425: 255 << 13 === 2088960. Actual: ' + (255 << 13)); +} + + +if (511 << 13 !== 4186112) { + $ERROR('#426: 511 << 13 === 4186112. Actual: ' + (511 << 13)); +} + + +if (1023 << 13 !== 8380416) { + $ERROR('#427: 1023 << 13 === 8380416. Actual: ' + (1023 << 13)); +} + + +if (2047 << 13 !== 16769024) { + $ERROR('#428: 2047 << 13 === 16769024. Actual: ' + (2047 << 13)); +} + + +if (4095 << 13 !== 33546240) { + $ERROR('#429: 4095 << 13 === 33546240. Actual: ' + (4095 << 13)); +} + + +if (8191 << 13 !== 67100672) { + $ERROR('#430: 8191 << 13 === 67100672. Actual: ' + (8191 << 13)); +} + + +if (16383 << 13 !== 134209536) { + $ERROR('#431: 16383 << 13 === 134209536. Actual: ' + (16383 << 13)); +} + + +if (32767 << 13 !== 268427264) { + $ERROR('#432: 32767 << 13 === 268427264. Actual: ' + (32767 << 13)); +} + + +if (65535 << 13 !== 536862720) { + $ERROR('#433: 65535 << 13 === 536862720. Actual: ' + (65535 << 13)); +} + + +if (131071 << 13 !== 1073733632) { + $ERROR('#434: 131071 << 13 === 1073733632. Actual: ' + (131071 << 13)); +} + + +if (262143 << 13 !== 2147475456) { + $ERROR('#435: 262143 << 13 === 2147475456. Actual: ' + (262143 << 13)); +} + + +if (524287 << 13 !== -8192) { + $ERROR('#436: 524287 << 13 === -8192. Actual: ' + (524287 << 13)); +} + + +if (1048575 << 13 !== -8192) { + $ERROR('#437: 1048575 << 13 === -8192. Actual: ' + (1048575 << 13)); +} + + +if (2097151 << 13 !== -8192) { + $ERROR('#438: 2097151 << 13 === -8192. Actual: ' + (2097151 << 13)); +} + + +if (4194303 << 13 !== -8192) { + $ERROR('#439: 4194303 << 13 === -8192. Actual: ' + (4194303 << 13)); +} + + +if (8388607 << 13 !== -8192) { + $ERROR('#440: 8388607 << 13 === -8192. Actual: ' + (8388607 << 13)); +} + + +if (16777215 << 13 !== -8192) { + $ERROR('#441: 16777215 << 13 === -8192. Actual: ' + (16777215 << 13)); +} + + +if (33554431 << 13 !== -8192) { + $ERROR('#442: 33554431 << 13 === -8192. Actual: ' + (33554431 << 13)); +} + + +if (67108863 << 13 !== -8192) { + $ERROR('#443: 67108863 << 13 === -8192. Actual: ' + (67108863 << 13)); +} + + +if (134217727 << 13 !== -8192) { + $ERROR('#444: 134217727 << 13 === -8192. Actual: ' + (134217727 << 13)); +} + + +if (268435455 << 13 !== -8192) { + $ERROR('#445: 268435455 << 13 === -8192. Actual: ' + (268435455 << 13)); +} + + +if (536870911 << 13 !== -8192) { + $ERROR('#446: 536870911 << 13 === -8192. Actual: ' + (536870911 << 13)); +} + + +if (1073741823 << 13 !== -8192) { + $ERROR('#447: 1073741823 << 13 === -8192. Actual: ' + (1073741823 << 13)); +} + + +if (2147483647 << 13 !== -8192) { + $ERROR('#448: 2147483647 << 13 === -8192. Actual: ' + (2147483647 << 13)); +} + + +if (0 << 14 !== 0) { + $ERROR('#449: 0 << 14 === 0. Actual: ' + (0 << 14)); +} + + +if (1 << 14 !== 16384) { + $ERROR('#450: 1 << 14 === 16384. Actual: ' + (1 << 14)); +} + + +if (3 << 14 !== 49152) { + $ERROR('#451: 3 << 14 === 49152. Actual: ' + (3 << 14)); +} + + +if (7 << 14 !== 114688) { + $ERROR('#452: 7 << 14 === 114688. Actual: ' + (7 << 14)); +} + + +if (15 << 14 !== 245760) { + $ERROR('#453: 15 << 14 === 245760. Actual: ' + (15 << 14)); +} + + +if (31 << 14 !== 507904) { + $ERROR('#454: 31 << 14 === 507904. Actual: ' + (31 << 14)); +} + + +if (63 << 14 !== 1032192) { + $ERROR('#455: 63 << 14 === 1032192. Actual: ' + (63 << 14)); +} + + +if (127 << 14 !== 2080768) { + $ERROR('#456: 127 << 14 === 2080768. Actual: ' + (127 << 14)); +} + + +if (255 << 14 !== 4177920) { + $ERROR('#457: 255 << 14 === 4177920. Actual: ' + (255 << 14)); +} + + +if (511 << 14 !== 8372224) { + $ERROR('#458: 511 << 14 === 8372224. Actual: ' + (511 << 14)); +} + + +if (1023 << 14 !== 16760832) { + $ERROR('#459: 1023 << 14 === 16760832. Actual: ' + (1023 << 14)); +} + + +if (2047 << 14 !== 33538048) { + $ERROR('#460: 2047 << 14 === 33538048. Actual: ' + (2047 << 14)); +} + + +if (4095 << 14 !== 67092480) { + $ERROR('#461: 4095 << 14 === 67092480. Actual: ' + (4095 << 14)); +} + + +if (8191 << 14 !== 134201344) { + $ERROR('#462: 8191 << 14 === 134201344. Actual: ' + (8191 << 14)); +} + + +if (16383 << 14 !== 268419072) { + $ERROR('#463: 16383 << 14 === 268419072. Actual: ' + (16383 << 14)); +} + + +if (32767 << 14 !== 536854528) { + $ERROR('#464: 32767 << 14 === 536854528. Actual: ' + (32767 << 14)); +} + + +if (65535 << 14 !== 1073725440) { + $ERROR('#465: 65535 << 14 === 1073725440. Actual: ' + (65535 << 14)); +} + + +if (131071 << 14 !== 2147467264) { + $ERROR('#466: 131071 << 14 === 2147467264. Actual: ' + (131071 << 14)); +} + + +if (262143 << 14 !== -16384) { + $ERROR('#467: 262143 << 14 === -16384. Actual: ' + (262143 << 14)); +} + + +if (524287 << 14 !== -16384) { + $ERROR('#468: 524287 << 14 === -16384. Actual: ' + (524287 << 14)); +} + + +if (1048575 << 14 !== -16384) { + $ERROR('#469: 1048575 << 14 === -16384. Actual: ' + (1048575 << 14)); +} + + +if (2097151 << 14 !== -16384) { + $ERROR('#470: 2097151 << 14 === -16384. Actual: ' + (2097151 << 14)); +} + + +if (4194303 << 14 !== -16384) { + $ERROR('#471: 4194303 << 14 === -16384. Actual: ' + (4194303 << 14)); +} + + +if (8388607 << 14 !== -16384) { + $ERROR('#472: 8388607 << 14 === -16384. Actual: ' + (8388607 << 14)); +} + + +if (16777215 << 14 !== -16384) { + $ERROR('#473: 16777215 << 14 === -16384. Actual: ' + (16777215 << 14)); +} + + +if (33554431 << 14 !== -16384) { + $ERROR('#474: 33554431 << 14 === -16384. Actual: ' + (33554431 << 14)); +} + + +if (67108863 << 14 !== -16384) { + $ERROR('#475: 67108863 << 14 === -16384. Actual: ' + (67108863 << 14)); +} + + +if (134217727 << 14 !== -16384) { + $ERROR('#476: 134217727 << 14 === -16384. Actual: ' + (134217727 << 14)); +} + + +if (268435455 << 14 !== -16384) { + $ERROR('#477: 268435455 << 14 === -16384. Actual: ' + (268435455 << 14)); +} + + +if (536870911 << 14 !== -16384) { + $ERROR('#478: 536870911 << 14 === -16384. Actual: ' + (536870911 << 14)); +} + + +if (1073741823 << 14 !== -16384) { + $ERROR('#479: 1073741823 << 14 === -16384. Actual: ' + (1073741823 << 14)); +} + + +if (2147483647 << 14 !== -16384) { + $ERROR('#480: 2147483647 << 14 === -16384. Actual: ' + (2147483647 << 14)); +} + + +if (0 << 15 !== 0) { + $ERROR('#481: 0 << 15 === 0. Actual: ' + (0 << 15)); +} + + +if (1 << 15 !== 32768) { + $ERROR('#482: 1 << 15 === 32768. Actual: ' + (1 << 15)); +} + + +if (3 << 15 !== 98304) { + $ERROR('#483: 3 << 15 === 98304. Actual: ' + (3 << 15)); +} + + +if (7 << 15 !== 229376) { + $ERROR('#484: 7 << 15 === 229376. Actual: ' + (7 << 15)); +} + + +if (15 << 15 !== 491520) { + $ERROR('#485: 15 << 15 === 491520. Actual: ' + (15 << 15)); +} + + +if (31 << 15 !== 1015808) { + $ERROR('#486: 31 << 15 === 1015808. Actual: ' + (31 << 15)); +} + + +if (63 << 15 !== 2064384) { + $ERROR('#487: 63 << 15 === 2064384. Actual: ' + (63 << 15)); +} + + +if (127 << 15 !== 4161536) { + $ERROR('#488: 127 << 15 === 4161536. Actual: ' + (127 << 15)); +} + + +if (255 << 15 !== 8355840) { + $ERROR('#489: 255 << 15 === 8355840. Actual: ' + (255 << 15)); +} + + +if (511 << 15 !== 16744448) { + $ERROR('#490: 511 << 15 === 16744448. Actual: ' + (511 << 15)); +} + + +if (1023 << 15 !== 33521664) { + $ERROR('#491: 1023 << 15 === 33521664. Actual: ' + (1023 << 15)); +} + + +if (2047 << 15 !== 67076096) { + $ERROR('#492: 2047 << 15 === 67076096. Actual: ' + (2047 << 15)); +} + + +if (4095 << 15 !== 134184960) { + $ERROR('#493: 4095 << 15 === 134184960. Actual: ' + (4095 << 15)); +} + + +if (8191 << 15 !== 268402688) { + $ERROR('#494: 8191 << 15 === 268402688. Actual: ' + (8191 << 15)); +} + + +if (16383 << 15 !== 536838144) { + $ERROR('#495: 16383 << 15 === 536838144. Actual: ' + (16383 << 15)); +} + + +if (32767 << 15 !== 1073709056) { + $ERROR('#496: 32767 << 15 === 1073709056. Actual: ' + (32767 << 15)); +} + + +if (65535 << 15 !== 2147450880) { + $ERROR('#497: 65535 << 15 === 2147450880. Actual: ' + (65535 << 15)); +} + + +if (131071 << 15 !== -32768) { + $ERROR('#498: 131071 << 15 === -32768. Actual: ' + (131071 << 15)); +} + + +if (262143 << 15 !== -32768) { + $ERROR('#499: 262143 << 15 === -32768. Actual: ' + (262143 << 15)); +} + + +if (524287 << 15 !== -32768) { + $ERROR('#500: 524287 << 15 === -32768. Actual: ' + (524287 << 15)); +} + + +if (1048575 << 15 !== -32768) { + $ERROR('#501: 1048575 << 15 === -32768. Actual: ' + (1048575 << 15)); +} + + +if (2097151 << 15 !== -32768) { + $ERROR('#502: 2097151 << 15 === -32768. Actual: ' + (2097151 << 15)); +} + + +if (4194303 << 15 !== -32768) { + $ERROR('#503: 4194303 << 15 === -32768. Actual: ' + (4194303 << 15)); +} + + +if (8388607 << 15 !== -32768) { + $ERROR('#504: 8388607 << 15 === -32768. Actual: ' + (8388607 << 15)); +} + + +if (16777215 << 15 !== -32768) { + $ERROR('#505: 16777215 << 15 === -32768. Actual: ' + (16777215 << 15)); +} + + +if (33554431 << 15 !== -32768) { + $ERROR('#506: 33554431 << 15 === -32768. Actual: ' + (33554431 << 15)); +} + + +if (67108863 << 15 !== -32768) { + $ERROR('#507: 67108863 << 15 === -32768. Actual: ' + (67108863 << 15)); +} + + +if (134217727 << 15 !== -32768) { + $ERROR('#508: 134217727 << 15 === -32768. Actual: ' + (134217727 << 15)); +} + + +if (268435455 << 15 !== -32768) { + $ERROR('#509: 268435455 << 15 === -32768. Actual: ' + (268435455 << 15)); +} + + +if (536870911 << 15 !== -32768) { + $ERROR('#510: 536870911 << 15 === -32768. Actual: ' + (536870911 << 15)); +} + + +if (1073741823 << 15 !== -32768) { + $ERROR('#511: 1073741823 << 15 === -32768. Actual: ' + (1073741823 << 15)); +} + + +if (2147483647 << 15 !== -32768) { + $ERROR('#512: 2147483647 << 15 === -32768. Actual: ' + (2147483647 << 15)); +} + diff --git a/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A4_T4.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A4_T4.js new file mode 100644 index 000000000..15082a7cc --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A4_T4.js @@ -0,0 +1,2571 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Check operator x << y in distinct points + * + * @path ch11/11.7/11.7.1/S11.7.1_A4_T4.js + * @description ShiftExpression = 2^n - 1, n = 16...31 + */ + +//CHECK + +if (0 << 16 !== 0) { + $ERROR('#513: 0 << 16 === 0. Actual: ' + (0 << 16)); +} + + +if (1 << 16 !== 65536) { + $ERROR('#514: 1 << 16 === 65536. Actual: ' + (1 << 16)); +} + + +if (3 << 16 !== 196608) { + $ERROR('#515: 3 << 16 === 196608. Actual: ' + (3 << 16)); +} + + +if (7 << 16 !== 458752) { + $ERROR('#516: 7 << 16 === 458752. Actual: ' + (7 << 16)); +} + + +if (15 << 16 !== 983040) { + $ERROR('#517: 15 << 16 === 983040. Actual: ' + (15 << 16)); +} + + +if (31 << 16 !== 2031616) { + $ERROR('#518: 31 << 16 === 2031616. Actual: ' + (31 << 16)); +} + + +if (63 << 16 !== 4128768) { + $ERROR('#519: 63 << 16 === 4128768. Actual: ' + (63 << 16)); +} + + +if (127 << 16 !== 8323072) { + $ERROR('#520: 127 << 16 === 8323072. Actual: ' + (127 << 16)); +} + + +if (255 << 16 !== 16711680) { + $ERROR('#521: 255 << 16 === 16711680. Actual: ' + (255 << 16)); +} + + +if (511 << 16 !== 33488896) { + $ERROR('#522: 511 << 16 === 33488896. Actual: ' + (511 << 16)); +} + + +if (1023 << 16 !== 67043328) { + $ERROR('#523: 1023 << 16 === 67043328. Actual: ' + (1023 << 16)); +} + + +if (2047 << 16 !== 134152192) { + $ERROR('#524: 2047 << 16 === 134152192. Actual: ' + (2047 << 16)); +} + + +if (4095 << 16 !== 268369920) { + $ERROR('#525: 4095 << 16 === 268369920. Actual: ' + (4095 << 16)); +} + + +if (8191 << 16 !== 536805376) { + $ERROR('#526: 8191 << 16 === 536805376. Actual: ' + (8191 << 16)); +} + + +if (16383 << 16 !== 1073676288) { + $ERROR('#527: 16383 << 16 === 1073676288. Actual: ' + (16383 << 16)); +} + + +if (32767 << 16 !== 2147418112) { + $ERROR('#528: 32767 << 16 === 2147418112. Actual: ' + (32767 << 16)); +} + + +if (65535 << 16 !== -65536) { + $ERROR('#529: 65535 << 16 === -65536. Actual: ' + (65535 << 16)); +} + + +if (131071 << 16 !== -65536) { + $ERROR('#530: 131071 << 16 === -65536. Actual: ' + (131071 << 16)); +} + + +if (262143 << 16 !== -65536) { + $ERROR('#531: 262143 << 16 === -65536. Actual: ' + (262143 << 16)); +} + + +if (524287 << 16 !== -65536) { + $ERROR('#532: 524287 << 16 === -65536. Actual: ' + (524287 << 16)); +} + + +if (1048575 << 16 !== -65536) { + $ERROR('#533: 1048575 << 16 === -65536. Actual: ' + (1048575 << 16)); +} + + +if (2097151 << 16 !== -65536) { + $ERROR('#534: 2097151 << 16 === -65536. Actual: ' + (2097151 << 16)); +} + + +if (4194303 << 16 !== -65536) { + $ERROR('#535: 4194303 << 16 === -65536. Actual: ' + (4194303 << 16)); +} + + +if (8388607 << 16 !== -65536) { + $ERROR('#536: 8388607 << 16 === -65536. Actual: ' + (8388607 << 16)); +} + + +if (16777215 << 16 !== -65536) { + $ERROR('#537: 16777215 << 16 === -65536. Actual: ' + (16777215 << 16)); +} + + +if (33554431 << 16 !== -65536) { + $ERROR('#538: 33554431 << 16 === -65536. Actual: ' + (33554431 << 16)); +} + + +if (67108863 << 16 !== -65536) { + $ERROR('#539: 67108863 << 16 === -65536. Actual: ' + (67108863 << 16)); +} + + +if (134217727 << 16 !== -65536) { + $ERROR('#540: 134217727 << 16 === -65536. Actual: ' + (134217727 << 16)); +} + + +if (268435455 << 16 !== -65536) { + $ERROR('#541: 268435455 << 16 === -65536. Actual: ' + (268435455 << 16)); +} + + +if (536870911 << 16 !== -65536) { + $ERROR('#542: 536870911 << 16 === -65536. Actual: ' + (536870911 << 16)); +} + + +if (1073741823 << 16 !== -65536) { + $ERROR('#543: 1073741823 << 16 === -65536. Actual: ' + (1073741823 << 16)); +} + + +if (2147483647 << 16 !== -65536) { + $ERROR('#544: 2147483647 << 16 === -65536. Actual: ' + (2147483647 << 16)); +} + + +if (0 << 17 !== 0) { + $ERROR('#545: 0 << 17 === 0. Actual: ' + (0 << 17)); +} + + +if (1 << 17 !== 131072) { + $ERROR('#546: 1 << 17 === 131072. Actual: ' + (1 << 17)); +} + + +if (3 << 17 !== 393216) { + $ERROR('#547: 3 << 17 === 393216. Actual: ' + (3 << 17)); +} + + +if (7 << 17 !== 917504) { + $ERROR('#548: 7 << 17 === 917504. Actual: ' + (7 << 17)); +} + + +if (15 << 17 !== 1966080) { + $ERROR('#549: 15 << 17 === 1966080. Actual: ' + (15 << 17)); +} + + +if (31 << 17 !== 4063232) { + $ERROR('#550: 31 << 17 === 4063232. Actual: ' + (31 << 17)); +} + + +if (63 << 17 !== 8257536) { + $ERROR('#551: 63 << 17 === 8257536. Actual: ' + (63 << 17)); +} + + +if (127 << 17 !== 16646144) { + $ERROR('#552: 127 << 17 === 16646144. Actual: ' + (127 << 17)); +} + + +if (255 << 17 !== 33423360) { + $ERROR('#553: 255 << 17 === 33423360. Actual: ' + (255 << 17)); +} + + +if (511 << 17 !== 66977792) { + $ERROR('#554: 511 << 17 === 66977792. Actual: ' + (511 << 17)); +} + + +if (1023 << 17 !== 134086656) { + $ERROR('#555: 1023 << 17 === 134086656. Actual: ' + (1023 << 17)); +} + + +if (2047 << 17 !== 268304384) { + $ERROR('#556: 2047 << 17 === 268304384. Actual: ' + (2047 << 17)); +} + + +if (4095 << 17 !== 536739840) { + $ERROR('#557: 4095 << 17 === 536739840. Actual: ' + (4095 << 17)); +} + + +if (8191 << 17 !== 1073610752) { + $ERROR('#558: 8191 << 17 === 1073610752. Actual: ' + (8191 << 17)); +} + + +if (16383 << 17 !== 2147352576) { + $ERROR('#559: 16383 << 17 === 2147352576. Actual: ' + (16383 << 17)); +} + + +if (32767 << 17 !== -131072) { + $ERROR('#560: 32767 << 17 === -131072. Actual: ' + (32767 << 17)); +} + + +if (65535 << 17 !== -131072) { + $ERROR('#561: 65535 << 17 === -131072. Actual: ' + (65535 << 17)); +} + + +if (131071 << 17 !== -131072) { + $ERROR('#562: 131071 << 17 === -131072. Actual: ' + (131071 << 17)); +} + + +if (262143 << 17 !== -131072) { + $ERROR('#563: 262143 << 17 === -131072. Actual: ' + (262143 << 17)); +} + + +if (524287 << 17 !== -131072) { + $ERROR('#564: 524287 << 17 === -131072. Actual: ' + (524287 << 17)); +} + + +if (1048575 << 17 !== -131072) { + $ERROR('#565: 1048575 << 17 === -131072. Actual: ' + (1048575 << 17)); +} + + +if (2097151 << 17 !== -131072) { + $ERROR('#566: 2097151 << 17 === -131072. Actual: ' + (2097151 << 17)); +} + + +if (4194303 << 17 !== -131072) { + $ERROR('#567: 4194303 << 17 === -131072. Actual: ' + (4194303 << 17)); +} + + +if (8388607 << 17 !== -131072) { + $ERROR('#568: 8388607 << 17 === -131072. Actual: ' + (8388607 << 17)); +} + + +if (16777215 << 17 !== -131072) { + $ERROR('#569: 16777215 << 17 === -131072. Actual: ' + (16777215 << 17)); +} + + +if (33554431 << 17 !== -131072) { + $ERROR('#570: 33554431 << 17 === -131072. Actual: ' + (33554431 << 17)); +} + + +if (67108863 << 17 !== -131072) { + $ERROR('#571: 67108863 << 17 === -131072. Actual: ' + (67108863 << 17)); +} + + +if (134217727 << 17 !== -131072) { + $ERROR('#572: 134217727 << 17 === -131072. Actual: ' + (134217727 << 17)); +} + + +if (268435455 << 17 !== -131072) { + $ERROR('#573: 268435455 << 17 === -131072. Actual: ' + (268435455 << 17)); +} + + +if (536870911 << 17 !== -131072) { + $ERROR('#574: 536870911 << 17 === -131072. Actual: ' + (536870911 << 17)); +} + + +if (1073741823 << 17 !== -131072) { + $ERROR('#575: 1073741823 << 17 === -131072. Actual: ' + (1073741823 << 17)); +} + + +if (2147483647 << 17 !== -131072) { + $ERROR('#576: 2147483647 << 17 === -131072. Actual: ' + (2147483647 << 17)); +} + + +if (0 << 18 !== 0) { + $ERROR('#577: 0 << 18 === 0. Actual: ' + (0 << 18)); +} + + +if (1 << 18 !== 262144) { + $ERROR('#578: 1 << 18 === 262144. Actual: ' + (1 << 18)); +} + + +if (3 << 18 !== 786432) { + $ERROR('#579: 3 << 18 === 786432. Actual: ' + (3 << 18)); +} + + +if (7 << 18 !== 1835008) { + $ERROR('#580: 7 << 18 === 1835008. Actual: ' + (7 << 18)); +} + + +if (15 << 18 !== 3932160) { + $ERROR('#581: 15 << 18 === 3932160. Actual: ' + (15 << 18)); +} + + +if (31 << 18 !== 8126464) { + $ERROR('#582: 31 << 18 === 8126464. Actual: ' + (31 << 18)); +} + + +if (63 << 18 !== 16515072) { + $ERROR('#583: 63 << 18 === 16515072. Actual: ' + (63 << 18)); +} + + +if (127 << 18 !== 33292288) { + $ERROR('#584: 127 << 18 === 33292288. Actual: ' + (127 << 18)); +} + + +if (255 << 18 !== 66846720) { + $ERROR('#585: 255 << 18 === 66846720. Actual: ' + (255 << 18)); +} + + +if (511 << 18 !== 133955584) { + $ERROR('#586: 511 << 18 === 133955584. Actual: ' + (511 << 18)); +} + + +if (1023 << 18 !== 268173312) { + $ERROR('#587: 1023 << 18 === 268173312. Actual: ' + (1023 << 18)); +} + + +if (2047 << 18 !== 536608768) { + $ERROR('#588: 2047 << 18 === 536608768. Actual: ' + (2047 << 18)); +} + + +if (4095 << 18 !== 1073479680) { + $ERROR('#589: 4095 << 18 === 1073479680. Actual: ' + (4095 << 18)); +} + + +if (8191 << 18 !== 2147221504) { + $ERROR('#590: 8191 << 18 === 2147221504. Actual: ' + (8191 << 18)); +} + + +if (16383 << 18 !== -262144) { + $ERROR('#591: 16383 << 18 === -262144. Actual: ' + (16383 << 18)); +} + + +if (32767 << 18 !== -262144) { + $ERROR('#592: 32767 << 18 === -262144. Actual: ' + (32767 << 18)); +} + + +if (65535 << 18 !== -262144) { + $ERROR('#593: 65535 << 18 === -262144. Actual: ' + (65535 << 18)); +} + + +if (131071 << 18 !== -262144) { + $ERROR('#594: 131071 << 18 === -262144. Actual: ' + (131071 << 18)); +} + + +if (262143 << 18 !== -262144) { + $ERROR('#595: 262143 << 18 === -262144. Actual: ' + (262143 << 18)); +} + + +if (524287 << 18 !== -262144) { + $ERROR('#596: 524287 << 18 === -262144. Actual: ' + (524287 << 18)); +} + + +if (1048575 << 18 !== -262144) { + $ERROR('#597: 1048575 << 18 === -262144. Actual: ' + (1048575 << 18)); +} + + +if (2097151 << 18 !== -262144) { + $ERROR('#598: 2097151 << 18 === -262144. Actual: ' + (2097151 << 18)); +} + + +if (4194303 << 18 !== -262144) { + $ERROR('#599: 4194303 << 18 === -262144. Actual: ' + (4194303 << 18)); +} + + +if (8388607 << 18 !== -262144) { + $ERROR('#600: 8388607 << 18 === -262144. Actual: ' + (8388607 << 18)); +} + + +if (16777215 << 18 !== -262144) { + $ERROR('#601: 16777215 << 18 === -262144. Actual: ' + (16777215 << 18)); +} + + +if (33554431 << 18 !== -262144) { + $ERROR('#602: 33554431 << 18 === -262144. Actual: ' + (33554431 << 18)); +} + + +if (67108863 << 18 !== -262144) { + $ERROR('#603: 67108863 << 18 === -262144. Actual: ' + (67108863 << 18)); +} + + +if (134217727 << 18 !== -262144) { + $ERROR('#604: 134217727 << 18 === -262144. Actual: ' + (134217727 << 18)); +} + + +if (268435455 << 18 !== -262144) { + $ERROR('#605: 268435455 << 18 === -262144. Actual: ' + (268435455 << 18)); +} + + +if (536870911 << 18 !== -262144) { + $ERROR('#606: 536870911 << 18 === -262144. Actual: ' + (536870911 << 18)); +} + + +if (1073741823 << 18 !== -262144) { + $ERROR('#607: 1073741823 << 18 === -262144. Actual: ' + (1073741823 << 18)); +} + + +if (2147483647 << 18 !== -262144) { + $ERROR('#608: 2147483647 << 18 === -262144. Actual: ' + (2147483647 << 18)); +} + + +if (0 << 19 !== 0) { + $ERROR('#609: 0 << 19 === 0. Actual: ' + (0 << 19)); +} + + +if (1 << 19 !== 524288) { + $ERROR('#610: 1 << 19 === 524288. Actual: ' + (1 << 19)); +} + + +if (3 << 19 !== 1572864) { + $ERROR('#611: 3 << 19 === 1572864. Actual: ' + (3 << 19)); +} + + +if (7 << 19 !== 3670016) { + $ERROR('#612: 7 << 19 === 3670016. Actual: ' + (7 << 19)); +} + + +if (15 << 19 !== 7864320) { + $ERROR('#613: 15 << 19 === 7864320. Actual: ' + (15 << 19)); +} + + +if (31 << 19 !== 16252928) { + $ERROR('#614: 31 << 19 === 16252928. Actual: ' + (31 << 19)); +} + + +if (63 << 19 !== 33030144) { + $ERROR('#615: 63 << 19 === 33030144. Actual: ' + (63 << 19)); +} + + +if (127 << 19 !== 66584576) { + $ERROR('#616: 127 << 19 === 66584576. Actual: ' + (127 << 19)); +} + + +if (255 << 19 !== 133693440) { + $ERROR('#617: 255 << 19 === 133693440. Actual: ' + (255 << 19)); +} + + +if (511 << 19 !== 267911168) { + $ERROR('#618: 511 << 19 === 267911168. Actual: ' + (511 << 19)); +} + + +if (1023 << 19 !== 536346624) { + $ERROR('#619: 1023 << 19 === 536346624. Actual: ' + (1023 << 19)); +} + + +if (2047 << 19 !== 1073217536) { + $ERROR('#620: 2047 << 19 === 1073217536. Actual: ' + (2047 << 19)); +} + + +if (4095 << 19 !== 2146959360) { + $ERROR('#621: 4095 << 19 === 2146959360. Actual: ' + (4095 << 19)); +} + + +if (8191 << 19 !== -524288) { + $ERROR('#622: 8191 << 19 === -524288. Actual: ' + (8191 << 19)); +} + + +if (16383 << 19 !== -524288) { + $ERROR('#623: 16383 << 19 === -524288. Actual: ' + (16383 << 19)); +} + + +if (32767 << 19 !== -524288) { + $ERROR('#624: 32767 << 19 === -524288. Actual: ' + (32767 << 19)); +} + + +if (65535 << 19 !== -524288) { + $ERROR('#625: 65535 << 19 === -524288. Actual: ' + (65535 << 19)); +} + + +if (131071 << 19 !== -524288) { + $ERROR('#626: 131071 << 19 === -524288. Actual: ' + (131071 << 19)); +} + + +if (262143 << 19 !== -524288) { + $ERROR('#627: 262143 << 19 === -524288. Actual: ' + (262143 << 19)); +} + + +if (524287 << 19 !== -524288) { + $ERROR('#628: 524287 << 19 === -524288. Actual: ' + (524287 << 19)); +} + + +if (1048575 << 19 !== -524288) { + $ERROR('#629: 1048575 << 19 === -524288. Actual: ' + (1048575 << 19)); +} + + +if (2097151 << 19 !== -524288) { + $ERROR('#630: 2097151 << 19 === -524288. Actual: ' + (2097151 << 19)); +} + + +if (4194303 << 19 !== -524288) { + $ERROR('#631: 4194303 << 19 === -524288. Actual: ' + (4194303 << 19)); +} + + +if (8388607 << 19 !== -524288) { + $ERROR('#632: 8388607 << 19 === -524288. Actual: ' + (8388607 << 19)); +} + + +if (16777215 << 19 !== -524288) { + $ERROR('#633: 16777215 << 19 === -524288. Actual: ' + (16777215 << 19)); +} + + +if (33554431 << 19 !== -524288) { + $ERROR('#634: 33554431 << 19 === -524288. Actual: ' + (33554431 << 19)); +} + + +if (67108863 << 19 !== -524288) { + $ERROR('#635: 67108863 << 19 === -524288. Actual: ' + (67108863 << 19)); +} + + +if (134217727 << 19 !== -524288) { + $ERROR('#636: 134217727 << 19 === -524288. Actual: ' + (134217727 << 19)); +} + + +if (268435455 << 19 !== -524288) { + $ERROR('#637: 268435455 << 19 === -524288. Actual: ' + (268435455 << 19)); +} + + +if (536870911 << 19 !== -524288) { + $ERROR('#638: 536870911 << 19 === -524288. Actual: ' + (536870911 << 19)); +} + + +if (1073741823 << 19 !== -524288) { + $ERROR('#639: 1073741823 << 19 === -524288. Actual: ' + (1073741823 << 19)); +} + + +if (2147483647 << 19 !== -524288) { + $ERROR('#640: 2147483647 << 19 === -524288. Actual: ' + (2147483647 << 19)); +} + + +if (0 << 20 !== 0) { + $ERROR('#641: 0 << 20 === 0. Actual: ' + (0 << 20)); +} + + +if (1 << 20 !== 1048576) { + $ERROR('#642: 1 << 20 === 1048576. Actual: ' + (1 << 20)); +} + + +if (3 << 20 !== 3145728) { + $ERROR('#643: 3 << 20 === 3145728. Actual: ' + (3 << 20)); +} + + +if (7 << 20 !== 7340032) { + $ERROR('#644: 7 << 20 === 7340032. Actual: ' + (7 << 20)); +} + + +if (15 << 20 !== 15728640) { + $ERROR('#645: 15 << 20 === 15728640. Actual: ' + (15 << 20)); +} + + +if (31 << 20 !== 32505856) { + $ERROR('#646: 31 << 20 === 32505856. Actual: ' + (31 << 20)); +} + + +if (63 << 20 !== 66060288) { + $ERROR('#647: 63 << 20 === 66060288. Actual: ' + (63 << 20)); +} + + +if (127 << 20 !== 133169152) { + $ERROR('#648: 127 << 20 === 133169152. Actual: ' + (127 << 20)); +} + + +if (255 << 20 !== 267386880) { + $ERROR('#649: 255 << 20 === 267386880. Actual: ' + (255 << 20)); +} + + +if (511 << 20 !== 535822336) { + $ERROR('#650: 511 << 20 === 535822336. Actual: ' + (511 << 20)); +} + + +if (1023 << 20 !== 1072693248) { + $ERROR('#651: 1023 << 20 === 1072693248. Actual: ' + (1023 << 20)); +} + + +if (2047 << 20 !== 2146435072) { + $ERROR('#652: 2047 << 20 === 2146435072. Actual: ' + (2047 << 20)); +} + + +if (4095 << 20 !== -1048576) { + $ERROR('#653: 4095 << 20 === -1048576. Actual: ' + (4095 << 20)); +} + + +if (8191 << 20 !== -1048576) { + $ERROR('#654: 8191 << 20 === -1048576. Actual: ' + (8191 << 20)); +} + + +if (16383 << 20 !== -1048576) { + $ERROR('#655: 16383 << 20 === -1048576. Actual: ' + (16383 << 20)); +} + + +if (32767 << 20 !== -1048576) { + $ERROR('#656: 32767 << 20 === -1048576. Actual: ' + (32767 << 20)); +} + + +if (65535 << 20 !== -1048576) { + $ERROR('#657: 65535 << 20 === -1048576. Actual: ' + (65535 << 20)); +} + + +if (131071 << 20 !== -1048576) { + $ERROR('#658: 131071 << 20 === -1048576. Actual: ' + (131071 << 20)); +} + + +if (262143 << 20 !== -1048576) { + $ERROR('#659: 262143 << 20 === -1048576. Actual: ' + (262143 << 20)); +} + + +if (524287 << 20 !== -1048576) { + $ERROR('#660: 524287 << 20 === -1048576. Actual: ' + (524287 << 20)); +} + + +if (1048575 << 20 !== -1048576) { + $ERROR('#661: 1048575 << 20 === -1048576. Actual: ' + (1048575 << 20)); +} + + +if (2097151 << 20 !== -1048576) { + $ERROR('#662: 2097151 << 20 === -1048576. Actual: ' + (2097151 << 20)); +} + + +if (4194303 << 20 !== -1048576) { + $ERROR('#663: 4194303 << 20 === -1048576. Actual: ' + (4194303 << 20)); +} + + +if (8388607 << 20 !== -1048576) { + $ERROR('#664: 8388607 << 20 === -1048576. Actual: ' + (8388607 << 20)); +} + + +if (16777215 << 20 !== -1048576) { + $ERROR('#665: 16777215 << 20 === -1048576. Actual: ' + (16777215 << 20)); +} + + +if (33554431 << 20 !== -1048576) { + $ERROR('#666: 33554431 << 20 === -1048576. Actual: ' + (33554431 << 20)); +} + + +if (67108863 << 20 !== -1048576) { + $ERROR('#667: 67108863 << 20 === -1048576. Actual: ' + (67108863 << 20)); +} + + +if (134217727 << 20 !== -1048576) { + $ERROR('#668: 134217727 << 20 === -1048576. Actual: ' + (134217727 << 20)); +} + + +if (268435455 << 20 !== -1048576) { + $ERROR('#669: 268435455 << 20 === -1048576. Actual: ' + (268435455 << 20)); +} + + +if (536870911 << 20 !== -1048576) { + $ERROR('#670: 536870911 << 20 === -1048576. Actual: ' + (536870911 << 20)); +} + + +if (1073741823 << 20 !== -1048576) { + $ERROR('#671: 1073741823 << 20 === -1048576. Actual: ' + (1073741823 << 20)); +} + + +if (2147483647 << 20 !== -1048576) { + $ERROR('#672: 2147483647 << 20 === -1048576. Actual: ' + (2147483647 << 20)); +} + + +if (0 << 21 !== 0) { + $ERROR('#673: 0 << 21 === 0. Actual: ' + (0 << 21)); +} + + +if (1 << 21 !== 2097152) { + $ERROR('#674: 1 << 21 === 2097152. Actual: ' + (1 << 21)); +} + + +if (3 << 21 !== 6291456) { + $ERROR('#675: 3 << 21 === 6291456. Actual: ' + (3 << 21)); +} + + +if (7 << 21 !== 14680064) { + $ERROR('#676: 7 << 21 === 14680064. Actual: ' + (7 << 21)); +} + + +if (15 << 21 !== 31457280) { + $ERROR('#677: 15 << 21 === 31457280. Actual: ' + (15 << 21)); +} + + +if (31 << 21 !== 65011712) { + $ERROR('#678: 31 << 21 === 65011712. Actual: ' + (31 << 21)); +} + + +if (63 << 21 !== 132120576) { + $ERROR('#679: 63 << 21 === 132120576. Actual: ' + (63 << 21)); +} + + +if (127 << 21 !== 266338304) { + $ERROR('#680: 127 << 21 === 266338304. Actual: ' + (127 << 21)); +} + + +if (255 << 21 !== 534773760) { + $ERROR('#681: 255 << 21 === 534773760. Actual: ' + (255 << 21)); +} + + +if (511 << 21 !== 1071644672) { + $ERROR('#682: 511 << 21 === 1071644672. Actual: ' + (511 << 21)); +} + + +if (1023 << 21 !== 2145386496) { + $ERROR('#683: 1023 << 21 === 2145386496. Actual: ' + (1023 << 21)); +} + + +if (2047 << 21 !== -2097152) { + $ERROR('#684: 2047 << 21 === -2097152. Actual: ' + (2047 << 21)); +} + + +if (4095 << 21 !== -2097152) { + $ERROR('#685: 4095 << 21 === -2097152. Actual: ' + (4095 << 21)); +} + + +if (8191 << 21 !== -2097152) { + $ERROR('#686: 8191 << 21 === -2097152. Actual: ' + (8191 << 21)); +} + + +if (16383 << 21 !== -2097152) { + $ERROR('#687: 16383 << 21 === -2097152. Actual: ' + (16383 << 21)); +} + + +if (32767 << 21 !== -2097152) { + $ERROR('#688: 32767 << 21 === -2097152. Actual: ' + (32767 << 21)); +} + + +if (65535 << 21 !== -2097152) { + $ERROR('#689: 65535 << 21 === -2097152. Actual: ' + (65535 << 21)); +} + + +if (131071 << 21 !== -2097152) { + $ERROR('#690: 131071 << 21 === -2097152. Actual: ' + (131071 << 21)); +} + + +if (262143 << 21 !== -2097152) { + $ERROR('#691: 262143 << 21 === -2097152. Actual: ' + (262143 << 21)); +} + + +if (524287 << 21 !== -2097152) { + $ERROR('#692: 524287 << 21 === -2097152. Actual: ' + (524287 << 21)); +} + + +if (1048575 << 21 !== -2097152) { + $ERROR('#693: 1048575 << 21 === -2097152. Actual: ' + (1048575 << 21)); +} + + +if (2097151 << 21 !== -2097152) { + $ERROR('#694: 2097151 << 21 === -2097152. Actual: ' + (2097151 << 21)); +} + + +if (4194303 << 21 !== -2097152) { + $ERROR('#695: 4194303 << 21 === -2097152. Actual: ' + (4194303 << 21)); +} + + +if (8388607 << 21 !== -2097152) { + $ERROR('#696: 8388607 << 21 === -2097152. Actual: ' + (8388607 << 21)); +} + + +if (16777215 << 21 !== -2097152) { + $ERROR('#697: 16777215 << 21 === -2097152. Actual: ' + (16777215 << 21)); +} + + +if (33554431 << 21 !== -2097152) { + $ERROR('#698: 33554431 << 21 === -2097152. Actual: ' + (33554431 << 21)); +} + + +if (67108863 << 21 !== -2097152) { + $ERROR('#699: 67108863 << 21 === -2097152. Actual: ' + (67108863 << 21)); +} + + +if (134217727 << 21 !== -2097152) { + $ERROR('#700: 134217727 << 21 === -2097152. Actual: ' + (134217727 << 21)); +} + + +if (268435455 << 21 !== -2097152) { + $ERROR('#701: 268435455 << 21 === -2097152. Actual: ' + (268435455 << 21)); +} + + +if (536870911 << 21 !== -2097152) { + $ERROR('#702: 536870911 << 21 === -2097152. Actual: ' + (536870911 << 21)); +} + + +if (1073741823 << 21 !== -2097152) { + $ERROR('#703: 1073741823 << 21 === -2097152. Actual: ' + (1073741823 << 21)); +} + + +if (2147483647 << 21 !== -2097152) { + $ERROR('#704: 2147483647 << 21 === -2097152. Actual: ' + (2147483647 << 21)); +} + + +if (0 << 22 !== 0) { + $ERROR('#705: 0 << 22 === 0. Actual: ' + (0 << 22)); +} + + +if (1 << 22 !== 4194304) { + $ERROR('#706: 1 << 22 === 4194304. Actual: ' + (1 << 22)); +} + + +if (3 << 22 !== 12582912) { + $ERROR('#707: 3 << 22 === 12582912. Actual: ' + (3 << 22)); +} + + +if (7 << 22 !== 29360128) { + $ERROR('#708: 7 << 22 === 29360128. Actual: ' + (7 << 22)); +} + + +if (15 << 22 !== 62914560) { + $ERROR('#709: 15 << 22 === 62914560. Actual: ' + (15 << 22)); +} + + +if (31 << 22 !== 130023424) { + $ERROR('#710: 31 << 22 === 130023424. Actual: ' + (31 << 22)); +} + + +if (63 << 22 !== 264241152) { + $ERROR('#711: 63 << 22 === 264241152. Actual: ' + (63 << 22)); +} + + +if (127 << 22 !== 532676608) { + $ERROR('#712: 127 << 22 === 532676608. Actual: ' + (127 << 22)); +} + + +if (255 << 22 !== 1069547520) { + $ERROR('#713: 255 << 22 === 1069547520. Actual: ' + (255 << 22)); +} + + +if (511 << 22 !== 2143289344) { + $ERROR('#714: 511 << 22 === 2143289344. Actual: ' + (511 << 22)); +} + + +if (1023 << 22 !== -4194304) { + $ERROR('#715: 1023 << 22 === -4194304. Actual: ' + (1023 << 22)); +} + + +if (2047 << 22 !== -4194304) { + $ERROR('#716: 2047 << 22 === -4194304. Actual: ' + (2047 << 22)); +} + + +if (4095 << 22 !== -4194304) { + $ERROR('#717: 4095 << 22 === -4194304. Actual: ' + (4095 << 22)); +} + + +if (8191 << 22 !== -4194304) { + $ERROR('#718: 8191 << 22 === -4194304. Actual: ' + (8191 << 22)); +} + + +if (16383 << 22 !== -4194304) { + $ERROR('#719: 16383 << 22 === -4194304. Actual: ' + (16383 << 22)); +} + + +if (32767 << 22 !== -4194304) { + $ERROR('#720: 32767 << 22 === -4194304. Actual: ' + (32767 << 22)); +} + + +if (65535 << 22 !== -4194304) { + $ERROR('#721: 65535 << 22 === -4194304. Actual: ' + (65535 << 22)); +} + + +if (131071 << 22 !== -4194304) { + $ERROR('#722: 131071 << 22 === -4194304. Actual: ' + (131071 << 22)); +} + + +if (262143 << 22 !== -4194304) { + $ERROR('#723: 262143 << 22 === -4194304. Actual: ' + (262143 << 22)); +} + + +if (524287 << 22 !== -4194304) { + $ERROR('#724: 524287 << 22 === -4194304. Actual: ' + (524287 << 22)); +} + + +if (1048575 << 22 !== -4194304) { + $ERROR('#725: 1048575 << 22 === -4194304. Actual: ' + (1048575 << 22)); +} + + +if (2097151 << 22 !== -4194304) { + $ERROR('#726: 2097151 << 22 === -4194304. Actual: ' + (2097151 << 22)); +} + + +if (4194303 << 22 !== -4194304) { + $ERROR('#727: 4194303 << 22 === -4194304. Actual: ' + (4194303 << 22)); +} + + +if (8388607 << 22 !== -4194304) { + $ERROR('#728: 8388607 << 22 === -4194304. Actual: ' + (8388607 << 22)); +} + + +if (16777215 << 22 !== -4194304) { + $ERROR('#729: 16777215 << 22 === -4194304. Actual: ' + (16777215 << 22)); +} + + +if (33554431 << 22 !== -4194304) { + $ERROR('#730: 33554431 << 22 === -4194304. Actual: ' + (33554431 << 22)); +} + + +if (67108863 << 22 !== -4194304) { + $ERROR('#731: 67108863 << 22 === -4194304. Actual: ' + (67108863 << 22)); +} + + +if (134217727 << 22 !== -4194304) { + $ERROR('#732: 134217727 << 22 === -4194304. Actual: ' + (134217727 << 22)); +} + + +if (268435455 << 22 !== -4194304) { + $ERROR('#733: 268435455 << 22 === -4194304. Actual: ' + (268435455 << 22)); +} + + +if (536870911 << 22 !== -4194304) { + $ERROR('#734: 536870911 << 22 === -4194304. Actual: ' + (536870911 << 22)); +} + + +if (1073741823 << 22 !== -4194304) { + $ERROR('#735: 1073741823 << 22 === -4194304. Actual: ' + (1073741823 << 22)); +} + + +if (2147483647 << 22 !== -4194304) { + $ERROR('#736: 2147483647 << 22 === -4194304. Actual: ' + (2147483647 << 22)); +} + + +if (0 << 23 !== 0) { + $ERROR('#737: 0 << 23 === 0. Actual: ' + (0 << 23)); +} + + +if (1 << 23 !== 8388608) { + $ERROR('#738: 1 << 23 === 8388608. Actual: ' + (1 << 23)); +} + + +if (3 << 23 !== 25165824) { + $ERROR('#739: 3 << 23 === 25165824. Actual: ' + (3 << 23)); +} + + +if (7 << 23 !== 58720256) { + $ERROR('#740: 7 << 23 === 58720256. Actual: ' + (7 << 23)); +} + + +if (15 << 23 !== 125829120) { + $ERROR('#741: 15 << 23 === 125829120. Actual: ' + (15 << 23)); +} + + +if (31 << 23 !== 260046848) { + $ERROR('#742: 31 << 23 === 260046848. Actual: ' + (31 << 23)); +} + + +if (63 << 23 !== 528482304) { + $ERROR('#743: 63 << 23 === 528482304. Actual: ' + (63 << 23)); +} + + +if (127 << 23 !== 1065353216) { + $ERROR('#744: 127 << 23 === 1065353216. Actual: ' + (127 << 23)); +} + + +if (255 << 23 !== 2139095040) { + $ERROR('#745: 255 << 23 === 2139095040. Actual: ' + (255 << 23)); +} + + +if (511 << 23 !== -8388608) { + $ERROR('#746: 511 << 23 === -8388608. Actual: ' + (511 << 23)); +} + + +if (1023 << 23 !== -8388608) { + $ERROR('#747: 1023 << 23 === -8388608. Actual: ' + (1023 << 23)); +} + + +if (2047 << 23 !== -8388608) { + $ERROR('#748: 2047 << 23 === -8388608. Actual: ' + (2047 << 23)); +} + + +if (4095 << 23 !== -8388608) { + $ERROR('#749: 4095 << 23 === -8388608. Actual: ' + (4095 << 23)); +} + + +if (8191 << 23 !== -8388608) { + $ERROR('#750: 8191 << 23 === -8388608. Actual: ' + (8191 << 23)); +} + + +if (16383 << 23 !== -8388608) { + $ERROR('#751: 16383 << 23 === -8388608. Actual: ' + (16383 << 23)); +} + + +if (32767 << 23 !== -8388608) { + $ERROR('#752: 32767 << 23 === -8388608. Actual: ' + (32767 << 23)); +} + + +if (65535 << 23 !== -8388608) { + $ERROR('#753: 65535 << 23 === -8388608. Actual: ' + (65535 << 23)); +} + + +if (131071 << 23 !== -8388608) { + $ERROR('#754: 131071 << 23 === -8388608. Actual: ' + (131071 << 23)); +} + + +if (262143 << 23 !== -8388608) { + $ERROR('#755: 262143 << 23 === -8388608. Actual: ' + (262143 << 23)); +} + + +if (524287 << 23 !== -8388608) { + $ERROR('#756: 524287 << 23 === -8388608. Actual: ' + (524287 << 23)); +} + + +if (1048575 << 23 !== -8388608) { + $ERROR('#757: 1048575 << 23 === -8388608. Actual: ' + (1048575 << 23)); +} + + +if (2097151 << 23 !== -8388608) { + $ERROR('#758: 2097151 << 23 === -8388608. Actual: ' + (2097151 << 23)); +} + + +if (4194303 << 23 !== -8388608) { + $ERROR('#759: 4194303 << 23 === -8388608. Actual: ' + (4194303 << 23)); +} + + +if (8388607 << 23 !== -8388608) { + $ERROR('#760: 8388607 << 23 === -8388608. Actual: ' + (8388607 << 23)); +} + + +if (16777215 << 23 !== -8388608) { + $ERROR('#761: 16777215 << 23 === -8388608. Actual: ' + (16777215 << 23)); +} + + +if (33554431 << 23 !== -8388608) { + $ERROR('#762: 33554431 << 23 === -8388608. Actual: ' + (33554431 << 23)); +} + + +if (67108863 << 23 !== -8388608) { + $ERROR('#763: 67108863 << 23 === -8388608. Actual: ' + (67108863 << 23)); +} + + +if (134217727 << 23 !== -8388608) { + $ERROR('#764: 134217727 << 23 === -8388608. Actual: ' + (134217727 << 23)); +} + + +if (268435455 << 23 !== -8388608) { + $ERROR('#765: 268435455 << 23 === -8388608. Actual: ' + (268435455 << 23)); +} + + +if (536870911 << 23 !== -8388608) { + $ERROR('#766: 536870911 << 23 === -8388608. Actual: ' + (536870911 << 23)); +} + + +if (1073741823 << 23 !== -8388608) { + $ERROR('#767: 1073741823 << 23 === -8388608. Actual: ' + (1073741823 << 23)); +} + + +if (2147483647 << 23 !== -8388608) { + $ERROR('#768: 2147483647 << 23 === -8388608. Actual: ' + (2147483647 << 23)); +} + + +if (0 << 24 !== 0) { + $ERROR('#769: 0 << 24 === 0. Actual: ' + (0 << 24)); +} + + +if (1 << 24 !== 16777216) { + $ERROR('#770: 1 << 24 === 16777216. Actual: ' + (1 << 24)); +} + + +if (3 << 24 !== 50331648) { + $ERROR('#771: 3 << 24 === 50331648. Actual: ' + (3 << 24)); +} + + +if (7 << 24 !== 117440512) { + $ERROR('#772: 7 << 24 === 117440512. Actual: ' + (7 << 24)); +} + + +if (15 << 24 !== 251658240) { + $ERROR('#773: 15 << 24 === 251658240. Actual: ' + (15 << 24)); +} + + +if (31 << 24 !== 520093696) { + $ERROR('#774: 31 << 24 === 520093696. Actual: ' + (31 << 24)); +} + + +if (63 << 24 !== 1056964608) { + $ERROR('#775: 63 << 24 === 1056964608. Actual: ' + (63 << 24)); +} + + +if (127 << 24 !== 2130706432) { + $ERROR('#776: 127 << 24 === 2130706432. Actual: ' + (127 << 24)); +} + + +if (255 << 24 !== -16777216) { + $ERROR('#777: 255 << 24 === -16777216. Actual: ' + (255 << 24)); +} + + +if (511 << 24 !== -16777216) { + $ERROR('#778: 511 << 24 === -16777216. Actual: ' + (511 << 24)); +} + + +if (1023 << 24 !== -16777216) { + $ERROR('#779: 1023 << 24 === -16777216. Actual: ' + (1023 << 24)); +} + + +if (2047 << 24 !== -16777216) { + $ERROR('#780: 2047 << 24 === -16777216. Actual: ' + (2047 << 24)); +} + + +if (4095 << 24 !== -16777216) { + $ERROR('#781: 4095 << 24 === -16777216. Actual: ' + (4095 << 24)); +} + + +if (8191 << 24 !== -16777216) { + $ERROR('#782: 8191 << 24 === -16777216. Actual: ' + (8191 << 24)); +} + + +if (16383 << 24 !== -16777216) { + $ERROR('#783: 16383 << 24 === -16777216. Actual: ' + (16383 << 24)); +} + + +if (32767 << 24 !== -16777216) { + $ERROR('#784: 32767 << 24 === -16777216. Actual: ' + (32767 << 24)); +} + + +if (65535 << 24 !== -16777216) { + $ERROR('#785: 65535 << 24 === -16777216. Actual: ' + (65535 << 24)); +} + + +if (131071 << 24 !== -16777216) { + $ERROR('#786: 131071 << 24 === -16777216. Actual: ' + (131071 << 24)); +} + + +if (262143 << 24 !== -16777216) { + $ERROR('#787: 262143 << 24 === -16777216. Actual: ' + (262143 << 24)); +} + + +if (524287 << 24 !== -16777216) { + $ERROR('#788: 524287 << 24 === -16777216. Actual: ' + (524287 << 24)); +} + + +if (1048575 << 24 !== -16777216) { + $ERROR('#789: 1048575 << 24 === -16777216. Actual: ' + (1048575 << 24)); +} + + +if (2097151 << 24 !== -16777216) { + $ERROR('#790: 2097151 << 24 === -16777216. Actual: ' + (2097151 << 24)); +} + + +if (4194303 << 24 !== -16777216) { + $ERROR('#791: 4194303 << 24 === -16777216. Actual: ' + (4194303 << 24)); +} + + +if (8388607 << 24 !== -16777216) { + $ERROR('#792: 8388607 << 24 === -16777216. Actual: ' + (8388607 << 24)); +} + + +if (16777215 << 24 !== -16777216) { + $ERROR('#793: 16777215 << 24 === -16777216. Actual: ' + (16777215 << 24)); +} + + +if (33554431 << 24 !== -16777216) { + $ERROR('#794: 33554431 << 24 === -16777216. Actual: ' + (33554431 << 24)); +} + + +if (67108863 << 24 !== -16777216) { + $ERROR('#795: 67108863 << 24 === -16777216. Actual: ' + (67108863 << 24)); +} + + +if (134217727 << 24 !== -16777216) { + $ERROR('#796: 134217727 << 24 === -16777216. Actual: ' + (134217727 << 24)); +} + + +if (268435455 << 24 !== -16777216) { + $ERROR('#797: 268435455 << 24 === -16777216. Actual: ' + (268435455 << 24)); +} + + +if (536870911 << 24 !== -16777216) { + $ERROR('#798: 536870911 << 24 === -16777216. Actual: ' + (536870911 << 24)); +} + + +if (1073741823 << 24 !== -16777216) { + $ERROR('#799: 1073741823 << 24 === -16777216. Actual: ' + (1073741823 << 24)); +} + + +if (2147483647 << 24 !== -16777216) { + $ERROR('#800: 2147483647 << 24 === -16777216. Actual: ' + (2147483647 << 24)); +} + + +if (0 << 25 !== 0) { + $ERROR('#801: 0 << 25 === 0. Actual: ' + (0 << 25)); +} + + +if (1 << 25 !== 33554432) { + $ERROR('#802: 1 << 25 === 33554432. Actual: ' + (1 << 25)); +} + + +if (3 << 25 !== 100663296) { + $ERROR('#803: 3 << 25 === 100663296. Actual: ' + (3 << 25)); +} + + +if (7 << 25 !== 234881024) { + $ERROR('#804: 7 << 25 === 234881024. Actual: ' + (7 << 25)); +} + + +if (15 << 25 !== 503316480) { + $ERROR('#805: 15 << 25 === 503316480. Actual: ' + (15 << 25)); +} + + +if (31 << 25 !== 1040187392) { + $ERROR('#806: 31 << 25 === 1040187392. Actual: ' + (31 << 25)); +} + + +if (63 << 25 !== 2113929216) { + $ERROR('#807: 63 << 25 === 2113929216. Actual: ' + (63 << 25)); +} + + +if (127 << 25 !== -33554432) { + $ERROR('#808: 127 << 25 === -33554432. Actual: ' + (127 << 25)); +} + + +if (255 << 25 !== -33554432) { + $ERROR('#809: 255 << 25 === -33554432. Actual: ' + (255 << 25)); +} + + +if (511 << 25 !== -33554432) { + $ERROR('#810: 511 << 25 === -33554432. Actual: ' + (511 << 25)); +} + + +if (1023 << 25 !== -33554432) { + $ERROR('#811: 1023 << 25 === -33554432. Actual: ' + (1023 << 25)); +} + + +if (2047 << 25 !== -33554432) { + $ERROR('#812: 2047 << 25 === -33554432. Actual: ' + (2047 << 25)); +} + + +if (4095 << 25 !== -33554432) { + $ERROR('#813: 4095 << 25 === -33554432. Actual: ' + (4095 << 25)); +} + + +if (8191 << 25 !== -33554432) { + $ERROR('#814: 8191 << 25 === -33554432. Actual: ' + (8191 << 25)); +} + + +if (16383 << 25 !== -33554432) { + $ERROR('#815: 16383 << 25 === -33554432. Actual: ' + (16383 << 25)); +} + + +if (32767 << 25 !== -33554432) { + $ERROR('#816: 32767 << 25 === -33554432. Actual: ' + (32767 << 25)); +} + + +if (65535 << 25 !== -33554432) { + $ERROR('#817: 65535 << 25 === -33554432. Actual: ' + (65535 << 25)); +} + + +if (131071 << 25 !== -33554432) { + $ERROR('#818: 131071 << 25 === -33554432. Actual: ' + (131071 << 25)); +} + + +if (262143 << 25 !== -33554432) { + $ERROR('#819: 262143 << 25 === -33554432. Actual: ' + (262143 << 25)); +} + + +if (524287 << 25 !== -33554432) { + $ERROR('#820: 524287 << 25 === -33554432. Actual: ' + (524287 << 25)); +} + + +if (1048575 << 25 !== -33554432) { + $ERROR('#821: 1048575 << 25 === -33554432. Actual: ' + (1048575 << 25)); +} + + +if (2097151 << 25 !== -33554432) { + $ERROR('#822: 2097151 << 25 === -33554432. Actual: ' + (2097151 << 25)); +} + + +if (4194303 << 25 !== -33554432) { + $ERROR('#823: 4194303 << 25 === -33554432. Actual: ' + (4194303 << 25)); +} + + +if (8388607 << 25 !== -33554432) { + $ERROR('#824: 8388607 << 25 === -33554432. Actual: ' + (8388607 << 25)); +} + + +if (16777215 << 25 !== -33554432) { + $ERROR('#825: 16777215 << 25 === -33554432. Actual: ' + (16777215 << 25)); +} + + +if (33554431 << 25 !== -33554432) { + $ERROR('#826: 33554431 << 25 === -33554432. Actual: ' + (33554431 << 25)); +} + + +if (67108863 << 25 !== -33554432) { + $ERROR('#827: 67108863 << 25 === -33554432. Actual: ' + (67108863 << 25)); +} + + +if (134217727 << 25 !== -33554432) { + $ERROR('#828: 134217727 << 25 === -33554432. Actual: ' + (134217727 << 25)); +} + + +if (268435455 << 25 !== -33554432) { + $ERROR('#829: 268435455 << 25 === -33554432. Actual: ' + (268435455 << 25)); +} + + +if (536870911 << 25 !== -33554432) { + $ERROR('#830: 536870911 << 25 === -33554432. Actual: ' + (536870911 << 25)); +} + + +if (1073741823 << 25 !== -33554432) { + $ERROR('#831: 1073741823 << 25 === -33554432. Actual: ' + (1073741823 << 25)); +} + + +if (2147483647 << 25 !== -33554432) { + $ERROR('#832: 2147483647 << 25 === -33554432. Actual: ' + (2147483647 << 25)); +} + + +if (0 << 26 !== 0) { + $ERROR('#833: 0 << 26 === 0. Actual: ' + (0 << 26)); +} + + +if (1 << 26 !== 67108864) { + $ERROR('#834: 1 << 26 === 67108864. Actual: ' + (1 << 26)); +} + + +if (3 << 26 !== 201326592) { + $ERROR('#835: 3 << 26 === 201326592. Actual: ' + (3 << 26)); +} + + +if (7 << 26 !== 469762048) { + $ERROR('#836: 7 << 26 === 469762048. Actual: ' + (7 << 26)); +} + + +if (15 << 26 !== 1006632960) { + $ERROR('#837: 15 << 26 === 1006632960. Actual: ' + (15 << 26)); +} + + +if (31 << 26 !== 2080374784) { + $ERROR('#838: 31 << 26 === 2080374784. Actual: ' + (31 << 26)); +} + + +if (63 << 26 !== -67108864) { + $ERROR('#839: 63 << 26 === -67108864. Actual: ' + (63 << 26)); +} + + +if (127 << 26 !== -67108864) { + $ERROR('#840: 127 << 26 === -67108864. Actual: ' + (127 << 26)); +} + + +if (255 << 26 !== -67108864) { + $ERROR('#841: 255 << 26 === -67108864. Actual: ' + (255 << 26)); +} + + +if (511 << 26 !== -67108864) { + $ERROR('#842: 511 << 26 === -67108864. Actual: ' + (511 << 26)); +} + + +if (1023 << 26 !== -67108864) { + $ERROR('#843: 1023 << 26 === -67108864. Actual: ' + (1023 << 26)); +} + + +if (2047 << 26 !== -67108864) { + $ERROR('#844: 2047 << 26 === -67108864. Actual: ' + (2047 << 26)); +} + + +if (4095 << 26 !== -67108864) { + $ERROR('#845: 4095 << 26 === -67108864. Actual: ' + (4095 << 26)); +} + + +if (8191 << 26 !== -67108864) { + $ERROR('#846: 8191 << 26 === -67108864. Actual: ' + (8191 << 26)); +} + + +if (16383 << 26 !== -67108864) { + $ERROR('#847: 16383 << 26 === -67108864. Actual: ' + (16383 << 26)); +} + + +if (32767 << 26 !== -67108864) { + $ERROR('#848: 32767 << 26 === -67108864. Actual: ' + (32767 << 26)); +} + + +if (65535 << 26 !== -67108864) { + $ERROR('#849: 65535 << 26 === -67108864. Actual: ' + (65535 << 26)); +} + + +if (131071 << 26 !== -67108864) { + $ERROR('#850: 131071 << 26 === -67108864. Actual: ' + (131071 << 26)); +} + + +if (262143 << 26 !== -67108864) { + $ERROR('#851: 262143 << 26 === -67108864. Actual: ' + (262143 << 26)); +} + + +if (524287 << 26 !== -67108864) { + $ERROR('#852: 524287 << 26 === -67108864. Actual: ' + (524287 << 26)); +} + + +if (1048575 << 26 !== -67108864) { + $ERROR('#853: 1048575 << 26 === -67108864. Actual: ' + (1048575 << 26)); +} + + +if (2097151 << 26 !== -67108864) { + $ERROR('#854: 2097151 << 26 === -67108864. Actual: ' + (2097151 << 26)); +} + + +if (4194303 << 26 !== -67108864) { + $ERROR('#855: 4194303 << 26 === -67108864. Actual: ' + (4194303 << 26)); +} + + +if (8388607 << 26 !== -67108864) { + $ERROR('#856: 8388607 << 26 === -67108864. Actual: ' + (8388607 << 26)); +} + + +if (16777215 << 26 !== -67108864) { + $ERROR('#857: 16777215 << 26 === -67108864. Actual: ' + (16777215 << 26)); +} + + +if (33554431 << 26 !== -67108864) { + $ERROR('#858: 33554431 << 26 === -67108864. Actual: ' + (33554431 << 26)); +} + + +if (67108863 << 26 !== -67108864) { + $ERROR('#859: 67108863 << 26 === -67108864. Actual: ' + (67108863 << 26)); +} + + +if (134217727 << 26 !== -67108864) { + $ERROR('#860: 134217727 << 26 === -67108864. Actual: ' + (134217727 << 26)); +} + + +if (268435455 << 26 !== -67108864) { + $ERROR('#861: 268435455 << 26 === -67108864. Actual: ' + (268435455 << 26)); +} + + +if (536870911 << 26 !== -67108864) { + $ERROR('#862: 536870911 << 26 === -67108864. Actual: ' + (536870911 << 26)); +} + + +if (1073741823 << 26 !== -67108864) { + $ERROR('#863: 1073741823 << 26 === -67108864. Actual: ' + (1073741823 << 26)); +} + + +if (2147483647 << 26 !== -67108864) { + $ERROR('#864: 2147483647 << 26 === -67108864. Actual: ' + (2147483647 << 26)); +} + + +if (0 << 27 !== 0) { + $ERROR('#865: 0 << 27 === 0. Actual: ' + (0 << 27)); +} + + +if (1 << 27 !== 134217728) { + $ERROR('#866: 1 << 27 === 134217728. Actual: ' + (1 << 27)); +} + + +if (3 << 27 !== 402653184) { + $ERROR('#867: 3 << 27 === 402653184. Actual: ' + (3 << 27)); +} + + +if (7 << 27 !== 939524096) { + $ERROR('#868: 7 << 27 === 939524096. Actual: ' + (7 << 27)); +} + + +if (15 << 27 !== 2013265920) { + $ERROR('#869: 15 << 27 === 2013265920. Actual: ' + (15 << 27)); +} + + +if (31 << 27 !== -134217728) { + $ERROR('#870: 31 << 27 === -134217728. Actual: ' + (31 << 27)); +} + + +if (63 << 27 !== -134217728) { + $ERROR('#871: 63 << 27 === -134217728. Actual: ' + (63 << 27)); +} + + +if (127 << 27 !== -134217728) { + $ERROR('#872: 127 << 27 === -134217728. Actual: ' + (127 << 27)); +} + + +if (255 << 27 !== -134217728) { + $ERROR('#873: 255 << 27 === -134217728. Actual: ' + (255 << 27)); +} + + +if (511 << 27 !== -134217728) { + $ERROR('#874: 511 << 27 === -134217728. Actual: ' + (511 << 27)); +} + + +if (1023 << 27 !== -134217728) { + $ERROR('#875: 1023 << 27 === -134217728. Actual: ' + (1023 << 27)); +} + + +if (2047 << 27 !== -134217728) { + $ERROR('#876: 2047 << 27 === -134217728. Actual: ' + (2047 << 27)); +} + + +if (4095 << 27 !== -134217728) { + $ERROR('#877: 4095 << 27 === -134217728. Actual: ' + (4095 << 27)); +} + + +if (8191 << 27 !== -134217728) { + $ERROR('#878: 8191 << 27 === -134217728. Actual: ' + (8191 << 27)); +} + + +if (16383 << 27 !== -134217728) { + $ERROR('#879: 16383 << 27 === -134217728. Actual: ' + (16383 << 27)); +} + + +if (32767 << 27 !== -134217728) { + $ERROR('#880: 32767 << 27 === -134217728. Actual: ' + (32767 << 27)); +} + + +if (65535 << 27 !== -134217728) { + $ERROR('#881: 65535 << 27 === -134217728. Actual: ' + (65535 << 27)); +} + + +if (131071 << 27 !== -134217728) { + $ERROR('#882: 131071 << 27 === -134217728. Actual: ' + (131071 << 27)); +} + + +if (262143 << 27 !== -134217728) { + $ERROR('#883: 262143 << 27 === -134217728. Actual: ' + (262143 << 27)); +} + + +if (524287 << 27 !== -134217728) { + $ERROR('#884: 524287 << 27 === -134217728. Actual: ' + (524287 << 27)); +} + + +if (1048575 << 27 !== -134217728) { + $ERROR('#885: 1048575 << 27 === -134217728. Actual: ' + (1048575 << 27)); +} + + +if (2097151 << 27 !== -134217728) { + $ERROR('#886: 2097151 << 27 === -134217728. Actual: ' + (2097151 << 27)); +} + + +if (4194303 << 27 !== -134217728) { + $ERROR('#887: 4194303 << 27 === -134217728. Actual: ' + (4194303 << 27)); +} + + +if (8388607 << 27 !== -134217728) { + $ERROR('#888: 8388607 << 27 === -134217728. Actual: ' + (8388607 << 27)); +} + + +if (16777215 << 27 !== -134217728) { + $ERROR('#889: 16777215 << 27 === -134217728. Actual: ' + (16777215 << 27)); +} + + +if (33554431 << 27 !== -134217728) { + $ERROR('#890: 33554431 << 27 === -134217728. Actual: ' + (33554431 << 27)); +} + + +if (67108863 << 27 !== -134217728) { + $ERROR('#891: 67108863 << 27 === -134217728. Actual: ' + (67108863 << 27)); +} + + +if (134217727 << 27 !== -134217728) { + $ERROR('#892: 134217727 << 27 === -134217728. Actual: ' + (134217727 << 27)); +} + + +if (268435455 << 27 !== -134217728) { + $ERROR('#893: 268435455 << 27 === -134217728. Actual: ' + (268435455 << 27)); +} + + +if (536870911 << 27 !== -134217728) { + $ERROR('#894: 536870911 << 27 === -134217728. Actual: ' + (536870911 << 27)); +} + + +if (1073741823 << 27 !== -134217728) { + $ERROR('#895: 1073741823 << 27 === -134217728. Actual: ' + (1073741823 << 27)); +} + + +if (2147483647 << 27 !== -134217728) { + $ERROR('#896: 2147483647 << 27 === -134217728. Actual: ' + (2147483647 << 27)); +} + + +if (0 << 28 !== 0) { + $ERROR('#897: 0 << 28 === 0. Actual: ' + (0 << 28)); +} + + +if (1 << 28 !== 268435456) { + $ERROR('#898: 1 << 28 === 268435456. Actual: ' + (1 << 28)); +} + + +if (3 << 28 !== 805306368) { + $ERROR('#899: 3 << 28 === 805306368. Actual: ' + (3 << 28)); +} + + +if (7 << 28 !== 1879048192) { + $ERROR('#900: 7 << 28 === 1879048192. Actual: ' + (7 << 28)); +} + + +if (15 << 28 !== -268435456) { + $ERROR('#901: 15 << 28 === -268435456. Actual: ' + (15 << 28)); +} + + +if (31 << 28 !== -268435456) { + $ERROR('#902: 31 << 28 === -268435456. Actual: ' + (31 << 28)); +} + + +if (63 << 28 !== -268435456) { + $ERROR('#903: 63 << 28 === -268435456. Actual: ' + (63 << 28)); +} + + +if (127 << 28 !== -268435456) { + $ERROR('#904: 127 << 28 === -268435456. Actual: ' + (127 << 28)); +} + + +if (255 << 28 !== -268435456) { + $ERROR('#905: 255 << 28 === -268435456. Actual: ' + (255 << 28)); +} + + +if (511 << 28 !== -268435456) { + $ERROR('#906: 511 << 28 === -268435456. Actual: ' + (511 << 28)); +} + + +if (1023 << 28 !== -268435456) { + $ERROR('#907: 1023 << 28 === -268435456. Actual: ' + (1023 << 28)); +} + + +if (2047 << 28 !== -268435456) { + $ERROR('#908: 2047 << 28 === -268435456. Actual: ' + (2047 << 28)); +} + + +if (4095 << 28 !== -268435456) { + $ERROR('#909: 4095 << 28 === -268435456. Actual: ' + (4095 << 28)); +} + + +if (8191 << 28 !== -268435456) { + $ERROR('#910: 8191 << 28 === -268435456. Actual: ' + (8191 << 28)); +} + + +if (16383 << 28 !== -268435456) { + $ERROR('#911: 16383 << 28 === -268435456. Actual: ' + (16383 << 28)); +} + + +if (32767 << 28 !== -268435456) { + $ERROR('#912: 32767 << 28 === -268435456. Actual: ' + (32767 << 28)); +} + + +if (65535 << 28 !== -268435456) { + $ERROR('#913: 65535 << 28 === -268435456. Actual: ' + (65535 << 28)); +} + + +if (131071 << 28 !== -268435456) { + $ERROR('#914: 131071 << 28 === -268435456. Actual: ' + (131071 << 28)); +} + + +if (262143 << 28 !== -268435456) { + $ERROR('#915: 262143 << 28 === -268435456. Actual: ' + (262143 << 28)); +} + + +if (524287 << 28 !== -268435456) { + $ERROR('#916: 524287 << 28 === -268435456. Actual: ' + (524287 << 28)); +} + + +if (1048575 << 28 !== -268435456) { + $ERROR('#917: 1048575 << 28 === -268435456. Actual: ' + (1048575 << 28)); +} + + +if (2097151 << 28 !== -268435456) { + $ERROR('#918: 2097151 << 28 === -268435456. Actual: ' + (2097151 << 28)); +} + + +if (4194303 << 28 !== -268435456) { + $ERROR('#919: 4194303 << 28 === -268435456. Actual: ' + (4194303 << 28)); +} + + +if (8388607 << 28 !== -268435456) { + $ERROR('#920: 8388607 << 28 === -268435456. Actual: ' + (8388607 << 28)); +} + + +if (16777215 << 28 !== -268435456) { + $ERROR('#921: 16777215 << 28 === -268435456. Actual: ' + (16777215 << 28)); +} + + +if (33554431 << 28 !== -268435456) { + $ERROR('#922: 33554431 << 28 === -268435456. Actual: ' + (33554431 << 28)); +} + + +if (67108863 << 28 !== -268435456) { + $ERROR('#923: 67108863 << 28 === -268435456. Actual: ' + (67108863 << 28)); +} + + +if (134217727 << 28 !== -268435456) { + $ERROR('#924: 134217727 << 28 === -268435456. Actual: ' + (134217727 << 28)); +} + + +if (268435455 << 28 !== -268435456) { + $ERROR('#925: 268435455 << 28 === -268435456. Actual: ' + (268435455 << 28)); +} + + +if (536870911 << 28 !== -268435456) { + $ERROR('#926: 536870911 << 28 === -268435456. Actual: ' + (536870911 << 28)); +} + + +if (1073741823 << 28 !== -268435456) { + $ERROR('#927: 1073741823 << 28 === -268435456. Actual: ' + (1073741823 << 28)); +} + + +if (2147483647 << 28 !== -268435456) { + $ERROR('#928: 2147483647 << 28 === -268435456. Actual: ' + (2147483647 << 28)); +} + + +if (0 << 29 !== 0) { + $ERROR('#929: 0 << 29 === 0. Actual: ' + (0 << 29)); +} + + +if (1 << 29 !== 536870912) { + $ERROR('#930: 1 << 29 === 536870912. Actual: ' + (1 << 29)); +} + + +if (3 << 29 !== 1610612736) { + $ERROR('#931: 3 << 29 === 1610612736. Actual: ' + (3 << 29)); +} + + +if (7 << 29 !== -536870912) { + $ERROR('#932: 7 << 29 === -536870912. Actual: ' + (7 << 29)); +} + + +if (15 << 29 !== -536870912) { + $ERROR('#933: 15 << 29 === -536870912. Actual: ' + (15 << 29)); +} + + +if (31 << 29 !== -536870912) { + $ERROR('#934: 31 << 29 === -536870912. Actual: ' + (31 << 29)); +} + + +if (63 << 29 !== -536870912) { + $ERROR('#935: 63 << 29 === -536870912. Actual: ' + (63 << 29)); +} + + +if (127 << 29 !== -536870912) { + $ERROR('#936: 127 << 29 === -536870912. Actual: ' + (127 << 29)); +} + + +if (255 << 29 !== -536870912) { + $ERROR('#937: 255 << 29 === -536870912. Actual: ' + (255 << 29)); +} + + +if (511 << 29 !== -536870912) { + $ERROR('#938: 511 << 29 === -536870912. Actual: ' + (511 << 29)); +} + + +if (1023 << 29 !== -536870912) { + $ERROR('#939: 1023 << 29 === -536870912. Actual: ' + (1023 << 29)); +} + + +if (2047 << 29 !== -536870912) { + $ERROR('#940: 2047 << 29 === -536870912. Actual: ' + (2047 << 29)); +} + + +if (4095 << 29 !== -536870912) { + $ERROR('#941: 4095 << 29 === -536870912. Actual: ' + (4095 << 29)); +} + + +if (8191 << 29 !== -536870912) { + $ERROR('#942: 8191 << 29 === -536870912. Actual: ' + (8191 << 29)); +} + + +if (16383 << 29 !== -536870912) { + $ERROR('#943: 16383 << 29 === -536870912. Actual: ' + (16383 << 29)); +} + + +if (32767 << 29 !== -536870912) { + $ERROR('#944: 32767 << 29 === -536870912. Actual: ' + (32767 << 29)); +} + + +if (65535 << 29 !== -536870912) { + $ERROR('#945: 65535 << 29 === -536870912. Actual: ' + (65535 << 29)); +} + + +if (131071 << 29 !== -536870912) { + $ERROR('#946: 131071 << 29 === -536870912. Actual: ' + (131071 << 29)); +} + + +if (262143 << 29 !== -536870912) { + $ERROR('#947: 262143 << 29 === -536870912. Actual: ' + (262143 << 29)); +} + + +if (524287 << 29 !== -536870912) { + $ERROR('#948: 524287 << 29 === -536870912. Actual: ' + (524287 << 29)); +} + + +if (1048575 << 29 !== -536870912) { + $ERROR('#949: 1048575 << 29 === -536870912. Actual: ' + (1048575 << 29)); +} + + +if (2097151 << 29 !== -536870912) { + $ERROR('#950: 2097151 << 29 === -536870912. Actual: ' + (2097151 << 29)); +} + + +if (4194303 << 29 !== -536870912) { + $ERROR('#951: 4194303 << 29 === -536870912. Actual: ' + (4194303 << 29)); +} + + +if (8388607 << 29 !== -536870912) { + $ERROR('#952: 8388607 << 29 === -536870912. Actual: ' + (8388607 << 29)); +} + + +if (16777215 << 29 !== -536870912) { + $ERROR('#953: 16777215 << 29 === -536870912. Actual: ' + (16777215 << 29)); +} + + +if (33554431 << 29 !== -536870912) { + $ERROR('#954: 33554431 << 29 === -536870912. Actual: ' + (33554431 << 29)); +} + + +if (67108863 << 29 !== -536870912) { + $ERROR('#955: 67108863 << 29 === -536870912. Actual: ' + (67108863 << 29)); +} + + +if (134217727 << 29 !== -536870912) { + $ERROR('#956: 134217727 << 29 === -536870912. Actual: ' + (134217727 << 29)); +} + + +if (268435455 << 29 !== -536870912) { + $ERROR('#957: 268435455 << 29 === -536870912. Actual: ' + (268435455 << 29)); +} + + +if (536870911 << 29 !== -536870912) { + $ERROR('#958: 536870911 << 29 === -536870912. Actual: ' + (536870911 << 29)); +} + + +if (1073741823 << 29 !== -536870912) { + $ERROR('#959: 1073741823 << 29 === -536870912. Actual: ' + (1073741823 << 29)); +} + + +if (2147483647 << 29 !== -536870912) { + $ERROR('#960: 2147483647 << 29 === -536870912. Actual: ' + (2147483647 << 29)); +} + + +if (0 << 30 !== 0) { + $ERROR('#961: 0 << 30 === 0. Actual: ' + (0 << 30)); +} + + +if (1 << 30 !== 1073741824) { + $ERROR('#962: 1 << 30 === 1073741824. Actual: ' + (1 << 30)); +} + + +if (3 << 30 !== -1073741824) { + $ERROR('#963: 3 << 30 === -1073741824. Actual: ' + (3 << 30)); +} + + +if (7 << 30 !== -1073741824) { + $ERROR('#964: 7 << 30 === -1073741824. Actual: ' + (7 << 30)); +} + + +if (15 << 30 !== -1073741824) { + $ERROR('#965: 15 << 30 === -1073741824. Actual: ' + (15 << 30)); +} + + +if (31 << 30 !== -1073741824) { + $ERROR('#966: 31 << 30 === -1073741824. Actual: ' + (31 << 30)); +} + + +if (63 << 30 !== -1073741824) { + $ERROR('#967: 63 << 30 === -1073741824. Actual: ' + (63 << 30)); +} + + +if (127 << 30 !== -1073741824) { + $ERROR('#968: 127 << 30 === -1073741824. Actual: ' + (127 << 30)); +} + + +if (255 << 30 !== -1073741824) { + $ERROR('#969: 255 << 30 === -1073741824. Actual: ' + (255 << 30)); +} + + +if (511 << 30 !== -1073741824) { + $ERROR('#970: 511 << 30 === -1073741824. Actual: ' + (511 << 30)); +} + + +if (1023 << 30 !== -1073741824) { + $ERROR('#971: 1023 << 30 === -1073741824. Actual: ' + (1023 << 30)); +} + + +if (2047 << 30 !== -1073741824) { + $ERROR('#972: 2047 << 30 === -1073741824. Actual: ' + (2047 << 30)); +} + + +if (4095 << 30 !== -1073741824) { + $ERROR('#973: 4095 << 30 === -1073741824. Actual: ' + (4095 << 30)); +} + + +if (8191 << 30 !== -1073741824) { + $ERROR('#974: 8191 << 30 === -1073741824. Actual: ' + (8191 << 30)); +} + + +if (16383 << 30 !== -1073741824) { + $ERROR('#975: 16383 << 30 === -1073741824. Actual: ' + (16383 << 30)); +} + + +if (32767 << 30 !== -1073741824) { + $ERROR('#976: 32767 << 30 === -1073741824. Actual: ' + (32767 << 30)); +} + + +if (65535 << 30 !== -1073741824) { + $ERROR('#977: 65535 << 30 === -1073741824. Actual: ' + (65535 << 30)); +} + + +if (131071 << 30 !== -1073741824) { + $ERROR('#978: 131071 << 30 === -1073741824. Actual: ' + (131071 << 30)); +} + + +if (262143 << 30 !== -1073741824) { + $ERROR('#979: 262143 << 30 === -1073741824. Actual: ' + (262143 << 30)); +} + + +if (524287 << 30 !== -1073741824) { + $ERROR('#980: 524287 << 30 === -1073741824. Actual: ' + (524287 << 30)); +} + + +if (1048575 << 30 !== -1073741824) { + $ERROR('#981: 1048575 << 30 === -1073741824. Actual: ' + (1048575 << 30)); +} + + +if (2097151 << 30 !== -1073741824) { + $ERROR('#982: 2097151 << 30 === -1073741824. Actual: ' + (2097151 << 30)); +} + + +if (4194303 << 30 !== -1073741824) { + $ERROR('#983: 4194303 << 30 === -1073741824. Actual: ' + (4194303 << 30)); +} + + +if (8388607 << 30 !== -1073741824) { + $ERROR('#984: 8388607 << 30 === -1073741824. Actual: ' + (8388607 << 30)); +} + + +if (16777215 << 30 !== -1073741824) { + $ERROR('#985: 16777215 << 30 === -1073741824. Actual: ' + (16777215 << 30)); +} + + +if (33554431 << 30 !== -1073741824) { + $ERROR('#986: 33554431 << 30 === -1073741824. Actual: ' + (33554431 << 30)); +} + + +if (67108863 << 30 !== -1073741824) { + $ERROR('#987: 67108863 << 30 === -1073741824. Actual: ' + (67108863 << 30)); +} + + +if (134217727 << 30 !== -1073741824) { + $ERROR('#988: 134217727 << 30 === -1073741824. Actual: ' + (134217727 << 30)); +} + + +if (268435455 << 30 !== -1073741824) { + $ERROR('#989: 268435455 << 30 === -1073741824. Actual: ' + (268435455 << 30)); +} + + +if (536870911 << 30 !== -1073741824) { + $ERROR('#990: 536870911 << 30 === -1073741824. Actual: ' + (536870911 << 30)); +} + + +if (1073741823 << 30 !== -1073741824) { + $ERROR('#991: 1073741823 << 30 === -1073741824. Actual: ' + (1073741823 << 30)); +} + + +if (2147483647 << 30 !== -1073741824) { + $ERROR('#992: 2147483647 << 30 === -1073741824. Actual: ' + (2147483647 << 30)); +} + + +if (0 << 31 !== 0) { + $ERROR('#993: 0 << 31 === 0. Actual: ' + (0 << 31)); +} + + +if (1 << 31 !== -2147483648) { + $ERROR('#994: 1 << 31 === -2147483648. Actual: ' + (1 << 31)); +} + + +if (3 << 31 !== -2147483648) { + $ERROR('#995: 3 << 31 === -2147483648. Actual: ' + (3 << 31)); +} + + +if (7 << 31 !== -2147483648) { + $ERROR('#996: 7 << 31 === -2147483648. Actual: ' + (7 << 31)); +} + + +if (15 << 31 !== -2147483648) { + $ERROR('#997: 15 << 31 === -2147483648. Actual: ' + (15 << 31)); +} + + +if (31 << 31 !== -2147483648) { + $ERROR('#998: 31 << 31 === -2147483648. Actual: ' + (31 << 31)); +} + + +if (63 << 31 !== -2147483648) { + $ERROR('#999: 63 << 31 === -2147483648. Actual: ' + (63 << 31)); +} + + +if (127 << 31 !== -2147483648) { + $ERROR('#1000: 127 << 31 === -2147483648. Actual: ' + (127 << 31)); +} + + +if (255 << 31 !== -2147483648) { + $ERROR('#1001: 255 << 31 === -2147483648. Actual: ' + (255 << 31)); +} + + +if (511 << 31 !== -2147483648) { + $ERROR('#1002: 511 << 31 === -2147483648. Actual: ' + (511 << 31)); +} + + +if (1023 << 31 !== -2147483648) { + $ERROR('#1003: 1023 << 31 === -2147483648. Actual: ' + (1023 << 31)); +} + + +if (2047 << 31 !== -2147483648) { + $ERROR('#1004: 2047 << 31 === -2147483648. Actual: ' + (2047 << 31)); +} + + +if (4095 << 31 !== -2147483648) { + $ERROR('#1005: 4095 << 31 === -2147483648. Actual: ' + (4095 << 31)); +} + + +if (8191 << 31 !== -2147483648) { + $ERROR('#1006: 8191 << 31 === -2147483648. Actual: ' + (8191 << 31)); +} + + +if (16383 << 31 !== -2147483648) { + $ERROR('#1007: 16383 << 31 === -2147483648. Actual: ' + (16383 << 31)); +} + + +if (32767 << 31 !== -2147483648) { + $ERROR('#1008: 32767 << 31 === -2147483648. Actual: ' + (32767 << 31)); +} + + +if (65535 << 31 !== -2147483648) { + $ERROR('#1009: 65535 << 31 === -2147483648. Actual: ' + (65535 << 31)); +} + + +if (131071 << 31 !== -2147483648) { + $ERROR('#1010: 131071 << 31 === -2147483648. Actual: ' + (131071 << 31)); +} + + +if (262143 << 31 !== -2147483648) { + $ERROR('#1011: 262143 << 31 === -2147483648. Actual: ' + (262143 << 31)); +} + + +if (524287 << 31 !== -2147483648) { + $ERROR('#1012: 524287 << 31 === -2147483648. Actual: ' + (524287 << 31)); +} + + +if (1048575 << 31 !== -2147483648) { + $ERROR('#1013: 1048575 << 31 === -2147483648. Actual: ' + (1048575 << 31)); +} + + +if (2097151 << 31 !== -2147483648) { + $ERROR('#1014: 2097151 << 31 === -2147483648. Actual: ' + (2097151 << 31)); +} + + +if (4194303 << 31 !== -2147483648) { + $ERROR('#1015: 4194303 << 31 === -2147483648. Actual: ' + (4194303 << 31)); +} + + +if (8388607 << 31 !== -2147483648) { + $ERROR('#1016: 8388607 << 31 === -2147483648. Actual: ' + (8388607 << 31)); +} + + +if (16777215 << 31 !== -2147483648) { + $ERROR('#1017: 16777215 << 31 === -2147483648. Actual: ' + (16777215 << 31)); +} + + +if (33554431 << 31 !== -2147483648) { + $ERROR('#1018: 33554431 << 31 === -2147483648. Actual: ' + (33554431 << 31)); +} + + +if (67108863 << 31 !== -2147483648) { + $ERROR('#1019: 67108863 << 31 === -2147483648. Actual: ' + (67108863 << 31)); +} + + +if (134217727 << 31 !== -2147483648) { + $ERROR('#1020: 134217727 << 31 === -2147483648. Actual: ' + (134217727 << 31)); +} + + +if (268435455 << 31 !== -2147483648) { + $ERROR('#1021: 268435455 << 31 === -2147483648. Actual: ' + (268435455 << 31)); +} + + +if (536870911 << 31 !== -2147483648) { + $ERROR('#1022: 536870911 << 31 === -2147483648. Actual: ' + (536870911 << 31)); +} + + +if (1073741823 << 31 !== -2147483648) { + $ERROR('#1023: 1073741823 << 31 === -2147483648. Actual: ' + (1073741823 << 31)); +} + + +if (2147483647 << 31 !== -2147483648) { + $ERROR('#1024: 2147483647 << 31 === -2147483648. Actual: ' + (2147483647 << 31)); +} + diff --git a/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A5.1_T1.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A5.1_T1.js new file mode 100644 index 000000000..49bdc5e7e --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A5.1_T1.js @@ -0,0 +1,60 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Operator x << y uses ToInt32(ShiftExpression) + * + * @path ch11/11.7/11.7.1/S11.7.1_A5.1_T1.js + * @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/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A5.2_T1.js b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A5.2_T1.js new file mode 100644 index 000000000..689fe1203 --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/S11.7.1_A5.2_T1.js @@ -0,0 +1,330 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Operator x << y uses ToUint32(AdditiveExpression) & 31 + * + * @path ch11/11.7/11.7.1/S11.7.1_A5.2_T1.js + * @description Checking distinct points + */ + +//CHECK#1 +if (1 << -32.1 !== 1) { + $ERROR('#1: 1 << -32.1 === 1. Actual: ' + (1 << -32.1)); +} + +//CHECK#2 +if (1 << -31.1 !== 2) { + $ERROR('#2: 1 << -31.1 === 2. Actual: ' + (1 << -31.1)); +} + +//CHECK#3 +if (1 << -30.1 !== 4) { + $ERROR('#3: 1 << -30.1 === 4. Actual: ' + (1 << -30.1)); +} + +//CHECK#4 +if (1 << -29.1 !== 8) { + $ERROR('#4: 1 << -29.1 === 8. Actual: ' + (1 << -29.1)); +} + +//CHECK#5 +if (1 << -28.1 !== 16) { + $ERROR('#5: 1 << -28.1 === 16. Actual: ' + (1 << -28.1)); +} + +//CHECK#6 +if (1 << -27.1 !== 32) { + $ERROR('#6: 1 << -27.1 === 32. Actual: ' + (1 << -27.1)); +} + +//CHECK#7 +if (1 << -26.1 !== 64) { + $ERROR('#7: 1 << -26.1 === 64. Actual: ' + (1 << -26.1)); +} + +//CHECK#8 +if (1 << -25.1 !== 128) { + $ERROR('#8: 1 << -25.1 === 128. Actual: ' + (1 << -25.1)); +} + +//CHECK#9 +if (1 << -24.1 !== 256) { + $ERROR('#9: 1 << -24.1 === 256. Actual: ' + (1 << -24.1)); +} + +//CHECK#10 +if (1 << -23.1 !== 512) { + $ERROR('#10: 1 << -23.1 === 512. Actual: ' + (1 << -23.1)); +} + +//CHECK#11 +if (1 << -22.1 !== 1024) { + $ERROR('#11: 1 << -22.1 === 1024. Actual: ' + (1 << -22.1)); +} + +//CHECK#12 +if (1 << -21.1 !== 2048) { + $ERROR('#12: 1 << -21.1 === 2048. Actual: ' + (1 << -21.1)); +} + +//CHECK#13 +if (1 << -20.1 !== 4096) { + $ERROR('#13: 1 << -20.1 === 4096. Actual: ' + (1 << -20.1)); +} + +//CHECK#14 +if (1 << -19.1 !== 8192) { + $ERROR('#14: 1 << -19.1 === 8192. Actual: ' + (1 << -19.1)); +} + +//CHECK#15 +if (1 << -18.1 !== 16384) { + $ERROR('#15: 1 << -18.1 === 16384. Actual: ' + (1 << -18.1)); +} + +//CHECK#16 +if (1 << -17.1 !== 32768) { + $ERROR('#16: 1 << -17.1 === 32768. Actual: ' + (1 << -17.1)); +} + +//CHECK#17 +if (1 << -16.1 !== 65536) { + $ERROR('#17: 1 << -16.1 === 65536. Actual: ' + (1 << -16.1)); +} + +//CHECK#18 +if (1 << -15.1 !== 131072) { + $ERROR('#18: 1 << -15.1 === 131072. Actual: ' + (1 << -15.1)); +} + +//CHECK#19 +if (1 << -14.1 !== 262144) { + $ERROR('#19: 1 << -14.1 === 262144. Actual: ' + (1 << -14.1)); +} + +//CHECK#20 +if (1 << -13.1 !== 524288) { + $ERROR('#20: 1 << -13.1 === 524288. Actual: ' + (1 << -13.1)); +} + +//CHECK#21 +if (1 << -12.1 !== 1048576) { + $ERROR('#21: 1 << -12.1 === 1048576. Actual: ' + (1 << -12.1)); +} + +//CHECK#22 +if (1 << -11.1 !== 2097152) { + $ERROR('#22: 1 << -11.1 === 2097152. Actual: ' + (1 << -11.1)); +} + +//CHECK#23 +if (1 << -10.1 !== 4194304) { + $ERROR('#23: 1 << -10.1 === 4194304. Actual: ' + (1 << -10.1)); +} + +//CHECK#24 +if (1 << -9.1 !== 8388608) { + $ERROR('#24: 1 << -9.1 === 8388608. Actual: ' + (1 << -9.1)); +} + +//CHECK#25 +if (1 << -8.1 !== 16777216) { + $ERROR('#25: 1 << -8.1 === 16777216. Actual: ' + (1 << -8.1)); +} + +//CHECK#26 +if (1 << -7.1 !== 33554432) { + $ERROR('#26: 1 << -7.1 === 33554432. Actual: ' + (1 << -7.1)); +} + +//CHECK#27 +if (1 << -6.1 !== 67108864) { + $ERROR('#27: 1 << -6.1 === 67108864. Actual: ' + (1 << -6.1)); +} + +//CHECK#28 +if (1 << -5.1 !== 134217728) { + $ERROR('#28: 1 << -5.1 === 134217728. Actual: ' + (1 << -5.1)); +} + +//CHECK#29 +if (1 << -4.1 !== 268435456) { + $ERROR('#29: 1 << -4.1 === 268435456. Actual: ' + (1 << -4.1)); +} + +//CHECK#30 +if (1 << -3.1 !== 536870912) { + $ERROR('#30: 1 << -3.1 === 536870912. Actual: ' + (1 << -3.1)); +} + +//CHECK#31 +if (1 << -2.1 !== 1073741824) { + $ERROR('#31: 1 << -2.1 === 1073741824. Actual: ' + (1 << -2.1)); +} + +//CHECK#32 +if (1 << -1.1 !== -2147483648) { + $ERROR('#32: 1 << -1.1 === -2147483648. Actual: ' + (1 << -1.1)); +} + +//CHECK#33 +if (1 << 32.1 !== 1) { + $ERROR('#33: 1 << 32.1 === 1. Actual: ' + (1 << 32.1)); +} + +//CHECK#34 +if (1 << 33.1 !== 2) { + $ERROR('#34: 1 << 33.1 === 2. Actual: ' + (1 << 33.1)); +} + +//CHECK#35 +if (1 << 34.1 !== 4) { + $ERROR('#35: 1 << 34.1 === 4. Actual: ' + (1 << 34.1)); +} + +//CHECK#36 +if (1 << 35.1 !== 8) { + $ERROR('#36: 1 << 35.1 === 8. Actual: ' + (1 << 35.1)); +} + +//CHECK#37 +if (1 << 36.1 !== 16) { + $ERROR('#37: 1 << 36.1 === 16. Actual: ' + (1 << 36.1)); +} + +//CHECK#38 +if (1 << 37.1 !== 32) { + $ERROR('#38: 1 << 37.1 === 32. Actual: ' + (1 << 37.1)); +} + +//CHECK#39 +if (1 << 38.1 !== 64) { + $ERROR('#39: 1 << 38.1 === 64. Actual: ' + (1 << 38.1)); +} + +//CHECK#40 +if (1 << 39.1 !== 128) { + $ERROR('#40: 1 << 39.1 === 128. Actual: ' + (1 << 39.1)); +} + +//CHECK#41 +if (1 << 40.1 !== 256) { + $ERROR('#41: 1 << 40.1 === 256. Actual: ' + (1 << 40.1)); +} + +//CHECK#42 +if (1 << 41.1 !== 512) { + $ERROR('#42: 1 << 41.1 === 512. Actual: ' + (1 << 41.1)); +} + +//CHECK#43 +if (1 << 42.1 !== 1024) { + $ERROR('#43: 1 << 42.1 === 1024. Actual: ' + (1 << 42.1)); +} + +//CHECK#44 +if (1 << 43.1 !== 2048) { + $ERROR('#44: 1 << 43.1 === 2048. Actual: ' + (1 << 43.1)); +} + +//CHECK#45 +if (1 << 44.1 !== 4096) { + $ERROR('#45: 1 << 44.1 === 4096. Actual: ' + (1 << 44.1)); +} + +//CHECK#46 +if (1 << 45.1 !== 8192) { + $ERROR('#46: 1 << 45.1 === 8192. Actual: ' + (1 << 45.1)); +} + +//CHECK#47 +if (1 << 46.1 !== 16384) { + $ERROR('#47: 1 << 46.1 === 16384. Actual: ' + (1 << 46.1)); +} + +//CHECK#48 +if (1 << 47.1 !== 32768) { + $ERROR('#48: 1 << 47.1 === 32768. Actual: ' + (1 << 47.1)); +} + +//CHECK#49 +if (1 << 48.1 !== 65536) { + $ERROR('#49: 1 << 48.1 === 65536. Actual: ' + (1 << 48.1)); +} + +//CHECK#50 +if (1 << 49.1 !== 131072) { + $ERROR('#50: 1 << 49.1 === 131072. Actual: ' + (1 << 49.1)); +} + +//CHECK#51 +if (1 << 50.1 !== 262144) { + $ERROR('#51: 1 << 50.1 === 262144. Actual: ' + (1 << 50.1)); +} + +//CHECK#52 +if (1 << 51.1 !== 524288) { + $ERROR('#52: 1 << 51.1 === 524288. Actual: ' + (1 << 51.1)); +} + +//CHECK#53 +if (1 << 52.1 !== 1048576) { + $ERROR('#53: 1 << 52.1 === 1048576. Actual: ' + (1 << 52.1)); +} + +//CHECK#54 +if (1 << 53.1 !== 2097152) { + $ERROR('#54: 1 << 53.1 === 2097152. Actual: ' + (1 << 53.1)); +} + +//CHECK#55 +if (1 << 54.1 !== 4194304) { + $ERROR('#55: 1 << 54.1 === 4194304. Actual: ' + (1 << 54.1)); +} + +//CHECK#56 +if (1 << 55.1 !== 8388608) { + $ERROR('#56: 1 << 55.1 === 8388608. Actual: ' + (1 << 55.1)); +} + +//CHECK#57 +if (1 << 56.1 !== 16777216) { + $ERROR('#57: 1 << 56.1 === 16777216. Actual: ' + (1 << 56.1)); +} + +//CHECK#58 +if (1 << 57.1 !== 33554432) { + $ERROR('#58: 1 << 57.1 === 33554432. Actual: ' + (1 << 57.1)); +} + +//CHECK#59 +if (1 << 58.1 !== 67108864) { + $ERROR('#59: 1 << 58.1 === 67108864. Actual: ' + (1 << 58.1)); +} + +//CHECK#60 +if (1 << 59.1 !== 134217728) { + $ERROR('#60: 1 << 59.1 === 134217728. Actual: ' + (1 << 59.1)); +} + +//CHECK#61 +if (1 << 60.1 !== 268435456) { + $ERROR('#61: 1 << 60.1 === 268435456. Actual: ' + (1 << 60.1)); +} + +//CHECK#62 +if (1 << 61.1 !== 536870912) { + $ERROR('#62: 1 << 61.1 === 536870912. Actual: ' + (1 << 61.1)); +} + +//CHECK#63 +if (1 << 62.1 !== 1073741824) { + $ERROR('#63: 1 << 62.1 === 1073741824. Actual: ' + (1 << 62.1)); +} + +//CHECK#64 +if (1 << 63.1 !== -2147483648) { + $ERROR('#64: 1 << 63.1 === -2147483648. Actual: ' + (1 << 63.1)); +} + diff --git a/js/src/tests/test262/ch11/11.7/11.7.1/browser.js b/js/src/tests/test262/ch11/11.7/11.7.1/browser.js new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/browser.js diff --git a/js/src/tests/test262/ch11/11.7/11.7.1/shell.js b/js/src/tests/test262/ch11/11.7/11.7.1/shell.js new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/js/src/tests/test262/ch11/11.7/11.7.1/shell.js |