• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
7var stdlib = { Math: Math };
8
9var 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
22assertEquals(32, f(0));
23assertEquals(32, f(NaN));
24assertEquals(32, f(undefined));
25for (var i = 0; i < 32; ++i) {
26  assertEquals(i, f((-1) >>> i));
27}
28for (var i = -2147483648; i < 2147483648; i += 3999773) {
29  assertEquals(%MathClz32(i), f(i));
30  assertEquals(%MathClz32(i), %_MathClz32(i >>> 0));
31}
32