int32bit.js (1615B)
1 // Copyright (C) 2016 The V8 Project authors. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 4 /*--- 5 esid: sec-math.clz32 6 description: > 7 Catches the int32bit value in the ToUint32 operation 8 info: | 9 Math.clz32 ( x ) 10 11 1. Let n be ToUint32(x). 12 2. Let p be the number of leading zero bits in the 32-bit binary representation of n. 13 3. Return p. 14 15 7.1.6 ToUint32 ( argument ) 16 17 [...] 18 3. Let int be the mathematical value that is the same sign as number and whose 19 magnitude is floor(abs(number)). 20 4. Let int32bit be int modulo 232. 21 5. Return int32bit. 22 [...] 23 ---*/ 24 25 assert.sameValue(Math.clz32(4294967295), 0, "2**32-1"); 26 assert.sameValue(Math.clz32(4294967296), 32, "2**32"); 27 assert.sameValue(Math.clz32(4294967297), 31, "2**32+1"); 28 29 assert.sameValue(Math.clz32(65535), 16, "2**16-1"); 30 assert.sameValue(Math.clz32(65536), 15, "2**16"); 31 assert.sameValue(Math.clz32(65537), 15, "2**16+1"); 32 33 assert.sameValue(Math.clz32(255), 24, "2**8-1"); 34 assert.sameValue(Math.clz32(256), 23, "2**8"); 35 assert.sameValue(Math.clz32(257), 23, "2**8+1"); 36 37 assert.sameValue(Math.clz32(-4294967295), 31, "-(2**32-1)"); 38 assert.sameValue(Math.clz32(-4294967296), 32, "-(2**32)"); 39 assert.sameValue(Math.clz32(-4294967297), 0, "-(2**32+1)"); 40 41 assert.sameValue(Math.clz32(-65535), 0, "-(2**16-1)"); 42 assert.sameValue(Math.clz32(-65536), 0, "-(2**16)"); 43 assert.sameValue(Math.clz32(-65537), 0, "-(2**16+1)"); 44 45 assert.sameValue(Math.clz32(-255), 0, "-(2**8-1)"); 46 assert.sameValue(Math.clz32(-256), 0, "-(2**8)"); 47 assert.sameValue(Math.clz32(-257), 0, "-(2**8+1)"); 48 49 reportCompare(0, 0);