| // Copyright 2014 the V8 project authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| var stdlib = {}; | |
| var foreign = {}; | |
| var heap = new ArrayBuffer(64 * 1024); | |
| var rol = (function Module(stdlib, foreign, heap) { | |
| "use asm"; | |
| function rol(x, y) { | |
| x = x | 0; | |
| y = y | 0; | |
| return (x << y) | (x >>> (32 - y)) | 0; | |
| } | |
| return { rol: rol }; | |
| })(stdlib, foreign, heap).rol; | |
| assertEquals(10, rol(10, 0)); | |
| assertEquals(2, rol(1, 1)); | |
| assertEquals(0x40000000, rol(1, 30)); | |
| assertEquals(-0x80000000, rol(1, 31)); | |
| var ror = (function Module(stdlib, foreign, heap) { | |
| "use asm"; | |
| function ror(x, y) { | |
| x = x | 0; | |
| y = y | 0; | |
| return (x << (32 - y)) | (x >>> y) | 0; | |
| } | |
| return { ror: ror }; | |
| })(stdlib, foreign, heap).ror; | |
| assertEquals(10, ror(10, 0)); | |
| assertEquals(-0x80000000, ror(1, 1)); | |
| assertEquals(0x40000000, ror(1, 2)); | |
| assertEquals(2, ror(1, 31)); |