deps: update v8 to 4.3.61.21
[platform/upstream/nodejs.git] / deps / v8 / test / mjsunit / asm / math-clz32.js
1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // Flags: --allow-natives-syntax
6
7 var stdlib = { Math: Math };
8
9 var f = (function Module(stdlib) {
10   "use asm";
11
12   var clz32 = stdlib.Math.clz32;
13
14   function f(a) {
15     a = a >>> 0;
16     return clz32(a)|0;
17   }
18
19   return f;
20 })(stdlib);
21
22 assertEquals(32, f(0));
23 assertEquals(32, f(NaN));
24 assertEquals(32, f(undefined));
25 for (var i = 0; i < 32; ++i) {
26   assertEquals(i, f((-1) >>> i));
27 }
28 for (var i = -2147483648; i < 2147483648; i += 3999773) {
29   assertEquals(%MathClz32(i), f(i));
30   assertEquals(%_MathClz32(i), f(i));
31 }