mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-05-04 02:08:53 +00:00
LibJS: Implement bitwise unsigned right shift operator (>>>)
This commit is contained in:
parent
502d1f5165
commit
396ecfa2d7
Notes:
sideshowbarker
2024-07-19 07:21:35 +09:00
Author: https://github.com/linusg
Commit: 396ecfa2d7
Pull-request: https://github.com/SerenityOS/serenity/pull/1931
Reviewed-by: https://github.com/awesomekling
6 changed files with 108 additions and 0 deletions
63
Libraries/LibJS/Tests/binary-bitwise-unsigned-right-shift.js
Normal file
63
Libraries/LibJS/Tests/binary-bitwise-unsigned-right-shift.js
Normal file
|
@ -0,0 +1,63 @@
|
|||
load("test-common.js");
|
||||
|
||||
try {
|
||||
assert((0 >>> 0) === 0);
|
||||
assert((0 >>> 1) === 0);
|
||||
assert((0 >>> 2) === 0);
|
||||
assert((0 >>> 3) === 0);
|
||||
assert((0 >>> 4) === 0);
|
||||
assert((0 >>> 5) === 0);
|
||||
|
||||
assert((1 >>> 0) === 1);
|
||||
assert((1 >>> 1) === 0);
|
||||
assert((1 >>> 2) === 0);
|
||||
assert((1 >>> 3) === 0);
|
||||
assert((1 >>> 4) === 0);
|
||||
assert((1 >>> 5) === 0);
|
||||
|
||||
assert((5 >>> 0) === 5);
|
||||
assert((5 >>> 1) === 2);
|
||||
assert((5 >>> 2) === 1);
|
||||
assert((5 >>> 3) === 0);
|
||||
assert((5 >>> 4) === 0);
|
||||
assert((5 >>> 5) === 0);
|
||||
|
||||
assert((42 >>> 0) === 42);
|
||||
assert((42 >>> 1) === 21);
|
||||
assert((42 >>> 2) === 10);
|
||||
assert((42 >>> 3) === 5);
|
||||
assert((42 >>> 4) === 2);
|
||||
assert((42 >>> 5) === 1);
|
||||
|
||||
assert((-1 >>> 0) === 4294967295);
|
||||
assert((-1 >>> 1) === 2147483647);
|
||||
assert((-1 >>> 2) === 1073741823);
|
||||
assert((-1 >>> 3) === 536870911);
|
||||
assert((-1 >>> 4) === 268435455);
|
||||
assert((-1 >>> 5) === 134217727);
|
||||
|
||||
assert((-5 >>> 0) === 4294967291);
|
||||
assert((-5 >>> 1) === 2147483645);
|
||||
assert((-5 >>> 2) === 1073741822);
|
||||
assert((-5 >>> 3) === 536870911);
|
||||
assert((-5 >>> 4) === 268435455);
|
||||
assert((-5 >>> 5) === 134217727);
|
||||
|
||||
var x = -67;
|
||||
var y = 4;
|
||||
assert(("-42" >>> 3) === 536870906);
|
||||
assert((x >>> y) === 268435451);
|
||||
assert((x >>> [[[[5]]]]) === 134217725);
|
||||
assert((undefined >>> y) === 0);
|
||||
assert(("a" >>> "b") === 0);
|
||||
assert((null >>> null) === 0);
|
||||
assert((undefined >>> undefined) === 0);
|
||||
assert((NaN >>> NaN) === 0);
|
||||
assert((6 >>> NaN) === 6);
|
||||
assert((Infinity >>> Infinity) === 0);
|
||||
assert((-Infinity >>> Infinity) === 0);
|
||||
|
||||
console.log("PASS");
|
||||
} catch (e) {
|
||||
console.log("FAIL: " + e);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue