diff --git a/test/built-ins/Math/clz32/Math.clz32.js b/test/built-ins/Math/clz32/Math.clz32.js
index f30b3a995b063e5b950120364074e91834074fdd..1d800d6a65cde8df25b4a6b0dfc477edee6fe84a 100644
--- a/test/built-ins/Math/clz32/Math.clz32.js
+++ b/test/built-ins/Math/clz32/Math.clz32.js
@@ -8,3 +8,4 @@ description: Math.clz32 should return 32 if passed 0.
 ---*/
 
 assert.sameValue(Math.clz32(0), 32, 'Math.clz32(0)');
+assert.sameValue(Math.clz32(-0), 32, 'Math.clz32(-0)');
diff --git a/test/built-ins/Math/clz32/infinity.js b/test/built-ins/Math/clz32/infinity.js
new file mode 100644
index 0000000000000000000000000000000000000000..94b17745c1978af29cdd974abae65d268afd88a3
--- /dev/null
+++ b/test/built-ins/Math/clz32/infinity.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2016 The V8 Project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.11
+esid: sec-math.clz32
+description: >
+  Return 32 if x is Infinity or -Infinity
+info: |
+  Math.clz32 ( x )
+
+  1. Let n be ToUint32(x).
+  2. Let p be the number of leading zero bits in the 32-bit binary representation of n.
+  3. Return p.
+
+  7.1.6 ToUint32 ( argument )
+
+  [...]
+  2. If number is NaN, +0, -0, +∞, or -∞, return +0.
+  [...]
+---*/
+
+assert.sameValue(Math.clz32(Infinity), 32, "Infinity");
+assert.sameValue(Math.clz32(-Infinity), 32, "-Infinity");
diff --git a/test/built-ins/Math/clz32/int32bit.js b/test/built-ins/Math/clz32/int32bit.js
new file mode 100644
index 0000000000000000000000000000000000000000..c5f94895316f38fad2bd0244eebad803a344c898
--- /dev/null
+++ b/test/built-ins/Math/clz32/int32bit.js
@@ -0,0 +1,48 @@
+// Copyright (C) 2016 The V8 Project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.11
+esid: sec-math.clz32
+description: >
+  Catches the int32bit value in the ToUint32 operation
+info: |
+  Math.clz32 ( x )
+
+  1. Let n be ToUint32(x).
+  2. Let p be the number of leading zero bits in the 32-bit binary representation of n.
+  3. Return p.
+
+  7.1.6 ToUint32 ( argument )
+
+  [...]
+  3. Let int be the mathematical value that is the same sign as number and whose
+  magnitude is floor(abs(number)).
+  4. Let int32bit be int modulo 232.
+  5. Return int32bit.
+  [...]
+---*/
+
+assert.sameValue(Math.clz32(4294967295), 0, "2**32-1");
+assert.sameValue(Math.clz32(4294967296), 32, "2**32");
+assert.sameValue(Math.clz32(4294967297), 31, "2**32+1");
+
+assert.sameValue(Math.clz32(65535), 16, "2**16-1");
+assert.sameValue(Math.clz32(65536), 15, "2**16");
+assert.sameValue(Math.clz32(65537), 15, "2**16+1");
+
+assert.sameValue(Math.clz32(255), 24, "2**8-1");
+assert.sameValue(Math.clz32(256), 23, "2**8");
+assert.sameValue(Math.clz32(257), 23, "2**8+1");
+
+assert.sameValue(Math.clz32(-4294967295), 31, "-(2**32-1)");
+assert.sameValue(Math.clz32(-4294967296), 32, "-(2**32)");
+assert.sameValue(Math.clz32(-4294967297), 0, "-(2**32+1)");
+
+assert.sameValue(Math.clz32(-65535), 0, "-(2**16-1)");
+assert.sameValue(Math.clz32(-65536), 0, "-(2**16)");
+assert.sameValue(Math.clz32(-65537), 0, "-(2**16+1)");
+
+assert.sameValue(Math.clz32(-255), 0, "-(2**8-1)");
+assert.sameValue(Math.clz32(-256), 0, "-(2**8)");
+assert.sameValue(Math.clz32(-257), 0, "-(2**8+1)");
diff --git a/test/built-ins/Math/clz32/nan.js b/test/built-ins/Math/clz32/nan.js
new file mode 100644
index 0000000000000000000000000000000000000000..cd8a9c98f274b010a9f87fe54c29d1f4f107f0a3
--- /dev/null
+++ b/test/built-ins/Math/clz32/nan.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2016 The V8 Project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.11
+esid: sec-math.clz32
+description: >
+  Return 32 if x is NaN
+info: |
+  Math.clz32 ( x )
+
+  1. Let n be ToUint32(x).
+  2. Let p be the number of leading zero bits in the 32-bit binary representation of n.
+  3. Return p.
+
+  7.1.6 ToUint32 ( argument )
+
+  [...]
+  2. If number is NaN, +0, -0, +∞, or -∞, return +0.
+  [...]
+---*/
+
+assert.sameValue(Math.clz32(NaN), 32);