diff --git a/test/built-ins/Array/prototype/join/S15.4.4.5_A2_T2.js b/test/built-ins/Array/prototype/join/S15.4.4.5_A2_T2.js
index 2081d3133d472af6fcd1cf6f4f790b8d5fb1d1b2..4df78f41444c8c4ff2cadd397da0af805a5eeeb4 100644
--- a/test/built-ins/Array/prototype/join/S15.4.4.5_A2_T2.js
+++ b/test/built-ins/Array/prototype/join/S15.4.4.5_A2_T2.js
@@ -19,9 +19,7 @@ if (obj.join() !== "") {
 }
 
 //CHECK#2
-if (isNaN(obj.length) !== true) {
-  $ERROR('#2: var obj = {}; obj.length = NaN; obj.join = Array.prototype.join; obj.join(); obj.length === Not-a-Number. Actual: ' + (obj.length));
-}
+assert.sameValue(obj.length, NaN, "obj.length is NaN");
 
 //CHECK#5
 obj.length = Number.NEGATIVE_INFINITY;
diff --git a/test/built-ins/Date/S15.9.3.1_A6_T1.js b/test/built-ins/Date/S15.9.3.1_A6_T1.js
index 37a89a73f56c5ec7ae1fd6bf96a77196c829c3c6..e944a9a5b63a483b9ad3698c24fe6c747077df1c 100644
--- a/test/built-ins/Date/S15.9.3.1_A6_T1.js
+++ b/test/built-ins/Date/S15.9.3.1_A6_T1.js
@@ -13,50 +13,39 @@ function DateValue(year, month, date, hours, minutes, seconds, ms){
   return new Date(year, month, date, hours, minutes, seconds, ms).valueOf();
 }
 
-if (!isNaN(DateValue(1899, 11))) {
-  $ERROR("#1: The value should be NaN");
-}
+var x;
+x = DateValue(1899, 11);
+assert.sameValue(x, NaN, "(1899, 11)");
 
-if (!isNaN(DateValue(1899, 12))) {
-  $ERROR("#2: The value should be NaN");
-}
+x = DateValue(1899, 12);
+assert.sameValue(x, NaN, "(1899, 12)");
 
-if (!isNaN(DateValue(1900, 0))) {
-  $ERROR("#3: The value should be NaN");
-}
+x = DateValue(1900, 0);
+assert.sameValue(x, NaN, "(1900, 0)");
 
-if (!isNaN(DateValue(1969, 11))) {
-  $ERROR("#4: The value should be NaN");
-}
+x = DateValue(1969, 11);
+assert.sameValue(x, NaN, "(1969, 11)");
 
-if (!isNaN(DateValue(1969, 12))) {
-  $ERROR("#5: The value should be NaN");
-}
+x = DateValue(1969, 12);
+assert.sameValue(x, NaN, "(1969, 12)");
 
-if (!isNaN(DateValue(1970, 0))) {
-  $ERROR("#6: The value should be NaN");
-}
+x = DateValue(1970, 0);
+assert.sameValue(x, NaN, "(1970, 0)");
 
-if (!isNaN(DateValue(1999, 11))) {
-  $ERROR("#7: The value should be NaN");
-}
+x = DateValue(1999, 11);
+assert.sameValue(x, NaN, "(1999, 11)");
 
-if (!isNaN(DateValue(1999, 12))) {
-  $ERROR("#8: The value should be NaN");
-}
+x = DateValue(1999, 12);
+assert.sameValue(x, NaN, "(1999, 12)");
 
-if (!isNaN(DateValue(2000, 0))) {
-  $ERROR("#9: The value should be NaN");
-}
+x = DateValue(2000, 0);
+assert.sameValue(x, NaN, "(2000, 0)");
 
-if (!isNaN(DateValue(2099, 11))) {
-  $ERROR("#10: The value should be NaN");
-}
+x = DateValue(2099, 11);
+assert.sameValue(x, NaN, "(2099, 11)");
 
-if (!isNaN(DateValue(2099, 12))) {
-  $ERROR("#11: The value should be NaN");
-}
+x = DateValue(2099, 12);
+assert.sameValue(x, NaN, "(2099, 12)");
 
-if (!isNaN(DateValue(2100, 0))) {
-  $ERROR("#12: The value should be NaN");
-}
+x = DateValue(2100, 0);
+assert.sameValue(x, NaN, "(2100, 0)");
diff --git a/test/built-ins/Date/S15.9.3.1_A6_T2.js b/test/built-ins/Date/S15.9.3.1_A6_T2.js
index 0d6650cca3218e59d95896fb64920dd393329321..c0f4d4626d7736c7e8ca2f6a761cfe0ba06a4af3 100644
--- a/test/built-ins/Date/S15.9.3.1_A6_T2.js
+++ b/test/built-ins/Date/S15.9.3.1_A6_T2.js
@@ -13,50 +13,39 @@ function DateValue(year, month, date, hours, minutes, seconds, ms){
   return new Date(year, month, date, hours, minutes, seconds, ms).valueOf();
 }
 
-if (!isNaN(DateValue(1899, 11, 31))) {
-  $ERROR("#1: The value should be NaN");
-}
+var x;
+x = DateValue(1899, 11, 31);
+assert.sameValue(x, NaN, "(1899, 11, 31)");
 
-if (!isNaN(DateValue(1899, 12, 1))) {
-  $ERROR("#2: The value should be NaN");
-}
+x = DateValue(1899, 12, 1);
+assert.sameValue(x, NaN, "(1899, 12, 1)");
 
-if (!isNaN(DateValue(1900, 0, 1))) {
-  $ERROR("#3: The value should be NaN");
-}
+x = DateValue(1900, 0, 1);
+assert.sameValue(x, NaN, "(1900, 0, 1)");
 
-if (!isNaN(DateValue(1969, 11, 31))) {
-  $ERROR("#4: The value should be NaN");
-}
+x = DateValue(1969, 11, 31);
+assert.sameValue(x, NaN, "(1969, 11, 31)");
 
-if (!isNaN(DateValue(1969, 12, 1))) {
-  $ERROR("#5: The value should be NaN");
-}
+x = DateValue(1969, 12, 1);
+assert.sameValue(x, NaN, "(1969, 12, 1)");
 
-if (!isNaN(DateValue(1970, 0, 1))) {
-  $ERROR("#6: The value should be NaN");
-}
+x = DateValue(1970, 0, 1);
+assert.sameValue(x, NaN, "(1970, 0, 1)");
 
-if (!isNaN(DateValue(1999, 11, 31))) {
-  $ERROR("#7: The value should be NaN");
-}
+x = DateValue(1999, 11, 31);
+assert.sameValue(x, NaN, "(1999, 11, 31)");
 
-if (!isNaN(DateValue(1999, 12, 1))) {
-  $ERROR("#8: The value should be NaN");
-}
+x = DateValue(1999, 12, 1);
+assert.sameValue(x, NaN, "(1999, 12, 1)");
 
-if (!isNaN(DateValue(2000, 0, 1))) {
-  $ERROR("#9: The value should be NaN");
-}
+x = DateValue(2000, 0, 1);
+assert.sameValue(x, NaN, "(2000, 0, 1)");
 
-if (!isNaN(DateValue(2099, 11, 31))) {
-  $ERROR("#10: The value should be NaN");
-}
+x = DateValue(2099, 11, 31);
+assert.sameValue(x, NaN, "(2099, 11, 31)");
 
-if (!isNaN(DateValue(2099, 12, 1))) {
-  $ERROR("#11: The value should be NaN");
-}
+x = DateValue(2099, 12, 1);
+assert.sameValue(x, NaN, "(2099, 12, 1)");
 
-if (!isNaN(DateValue(2100, 0, 1))) {
-  $ERROR("#12: The value should be NaN");
-}
+x = DateValue(2100, 0, 1);
+assert.sameValue(x, NaN, "(2100, 0, 1)");
diff --git a/test/built-ins/Date/S15.9.3.1_A6_T3.js b/test/built-ins/Date/S15.9.3.1_A6_T3.js
index fdd8b27b548ad0e1ce945bf7405144e7f6a83928..c6b3b4acf7800180f259563f9c619d28f5734fff 100644
--- a/test/built-ins/Date/S15.9.3.1_A6_T3.js
+++ b/test/built-ins/Date/S15.9.3.1_A6_T3.js
@@ -13,50 +13,39 @@ function DateValue(year, month, date, hours, minutes, seconds, ms){
   return new Date(year, month, date, hours, minutes, seconds, ms).valueOf();
 }
 
-if (!isNaN(DateValue(1899, 11, 31, 23))) {
-  $ERROR("#1: The value should be NaN");
-}
+var x;
+x = DateValue(1899, 11, 31, 23);
+assert.sameValue(x, NaN, "(1899, 11, 31, 23)");
 
-if (!isNaN(DateValue(1899, 12, 1, 0))) {
-  $ERROR("#2: The value should be NaN");
-}
+x = DateValue(1899, 12, 1, 0);
+assert.sameValue(x, NaN, "(1899, 12, 1, 0)");
 
-if (!isNaN(DateValue(1900, 0, 1, 0))) {
-  $ERROR("#3: The value should be NaN");
-}
+x = DateValue(1900, 0, 1, 0);
+assert.sameValue(x, NaN, "(1900, 0, 1, 0)");
 
-if (!isNaN(DateValue(1969, 11, 31, 23))) {
-  $ERROR("#4: The value should be NaN");
-}
+x = DateValue(1969, 11, 31, 23);
+assert.sameValue(x, NaN, "(1969, 11, 31, 23)");
 
-if (!isNaN(DateValue(1969, 12, 1, 0))) {
-  $ERROR("#5: The value should be NaN");
-}
+x = DateValue(1969, 12, 1, 0);
+assert.sameValue(x, NaN, "(1969, 12, 1, 0)");
 
-if (!isNaN(DateValue(1970, 0, 1, 0))) {
-  $ERROR("#6: The value should be NaN");
-}
+x = DateValue(1970, 0, 1, 0);
+assert.sameValue(x, NaN, "(1970, 0, 1, 0)");
 
-if (!isNaN(DateValue(1999, 11, 31, 23))) {
-  $ERROR("#7: The value should be NaN");
-}
+x = DateValue(1999, 11, 31, 23);
+assert.sameValue(x, NaN, "(1999, 11, 31, 23)");
 
-if (!isNaN(DateValue(1999, 12, 1, 0))) {
-  $ERROR("#8: The value should be NaN");
-}
+x = DateValue(1999, 12, 1, 0);
+assert.sameValue(x, NaN, "(1999, 12, 1, 0)");
 
-if (!isNaN(DateValue(2000, 0, 1, 0))) {
-  $ERROR("#9: The value should be NaN");
-}
+x = DateValue(2000, 0, 1, 0);
+assert.sameValue(x, NaN, "(2000, 0, 1, 0)");
 
-if (!isNaN(DateValue(2099, 11, 31, 23))) {
-  $ERROR("#10: The value should be NaN");
-}
+x = DateValue(2099, 11, 31, 23);
+assert.sameValue(x, NaN, "(2099, 11, 31, 23)");
 
-if (!isNaN(DateValue(2099, 12, 1, 0))) {
-  $ERROR("#11: The value should be NaN");
-}
+x = DateValue(2099, 12, 1, 0);
+assert.sameValue(x, NaN, "(2099, 12, 1, 0)");
 
-if (!isNaN(DateValue(2100, 0, 1, 0))) {
-  $ERROR("#12: The value should be NaN");
-}
+x = DateValue(2100, 0, 1, 0);
+assert.sameValue(x, NaN, "(2100, 0, 1, 0)");
diff --git a/test/built-ins/Date/S15.9.3.1_A6_T4.js b/test/built-ins/Date/S15.9.3.1_A6_T4.js
index b8985e83d7052ac40ba75b8cf5cbf107f58396a2..b5b009fb339d7bb235e0ebf9f1a04d7eecd49b0b 100644
--- a/test/built-ins/Date/S15.9.3.1_A6_T4.js
+++ b/test/built-ins/Date/S15.9.3.1_A6_T4.js
@@ -13,50 +13,39 @@ function DateValue(year, month, date, hours, minutes, seconds, ms){
   return new Date(year, month, date, hours, minutes, seconds, ms).valueOf();
 }
 
-if (!isNaN(DateValue(1899, 11, 31, 23, 59))) {
-  $ERROR("#1: The value should be NaN");
-}
+var x;
+x = DateValue(1899, 11, 31, 23, 59);
+assert.sameValue(x, NaN, "(1899, 11, 31, 23, 59)");
 
-if (!isNaN(DateValue(1899, 12, 1, 0, 0))) {
-  $ERROR("#2: The value should be NaN");
-}
+x = DateValue(1899, 12, 1, 0, 0);
+assert.sameValue(x, NaN, "(1899, 12, 1, 0, 0)");
 
-if (!isNaN(DateValue(1900, 0, 1, 0, 0))) {
-  $ERROR("#3: The value should be NaN");
-}
+x = DateValue(1900, 0, 1, 0, 0);
+assert.sameValue(x, NaN, "(1900, 0, 1, 0, 0)");
 
-if (!isNaN(DateValue(1969, 11, 31, 23, 59))) {
-  $ERROR("#4: The value should be NaN");
-}
+x = DateValue(1969, 11, 31, 23, 59);
+assert.sameValue(x, NaN, "(1969, 11, 31, 23, 59)");
 
-if (!isNaN(DateValue(1969, 12, 1, 0, 0))) {
-  $ERROR("#5: The value should be NaN");
-}
+x = DateValue(1969, 12, 1, 0, 0);
+assert.sameValue(x, NaN, "(1969, 12, 1, 0, 0)");
 
-if (!isNaN(DateValue(1970, 0, 1, 0, 0))) {
-  $ERROR("#6: The value should be NaN");
-}
+x = DateValue(1970, 0, 1, 0, 0);
+assert.sameValue(x, NaN, "(1970, 0, 1, 0, 0)");
 
-if (!isNaN(DateValue(1999, 11, 31, 23, 59))) {
-  $ERROR("#7: The value should be NaN");
-}
+x = DateValue(1999, 11, 31, 23, 59);
+assert.sameValue(x, NaN, "(1999, 11, 31, 23, 59)");
 
-if (!isNaN(DateValue(1999, 12, 1, 0, 0))) {
-  $ERROR("#8: The value should be NaN");
-}
+x = DateValue(1999, 12, 1, 0, 0);
+assert.sameValue(x, NaN, "(1999, 12, 1, 0, 0)");
 
-if (!isNaN(DateValue(2000, 0, 1, 0, 0))) {
-  $ERROR("#9: The value should be NaN");
-}
+x = DateValue(2000, 0, 1, 0, 0);
+assert.sameValue(x, NaN, "(2000, 0, 1, 0, 0)");
 
-if (!isNaN(DateValue(2099, 11, 31, 23, 59))) {
-  $ERROR("#10: The value should be NaN");
-}
+x = DateValue(2099, 11, 31, 23, 59);
+assert.sameValue(x, NaN, "(2099, 11, 31, 23, 59)");
 
-if (!isNaN(DateValue(2099, 12, 1, 0, 0))) {
-  $ERROR("#11: The value should be NaN");
-}
+x = DateValue(2099, 12, 1, 0, 0);
+assert.sameValue(x, NaN, "(2099, 12, 1, 0, 0)");
 
-if (!isNaN(DateValue(2100, 0, 1, 0, 0))) {
-  $ERROR("#12: The value should be NaN");
-}
+x = DateValue(2100, 0, 1, 0, 0);
+assert.sameValue(x, NaN, "(2100, 0, 1, 0, 0)");
diff --git a/test/built-ins/Date/S15.9.3.1_A6_T5.js b/test/built-ins/Date/S15.9.3.1_A6_T5.js
index 5b55afb7b758657d9447c7418a410d0283677797..f76d0207c92d3140f5391bdee41380edf34bb2af 100644
--- a/test/built-ins/Date/S15.9.3.1_A6_T5.js
+++ b/test/built-ins/Date/S15.9.3.1_A6_T5.js
@@ -13,50 +13,39 @@ function DateValue(year, month, date, hours, minutes, seconds, ms){
   return new Date(year, month, date, hours, minutes, seconds, ms).valueOf();
 }
 
-if (!isNaN(DateValue(1899, 11, 31, 23, 59, 59))) {
-  $ERROR("#1: The value should be NaN");
-}
+var x;
+x = DateValue(1899, 11, 31, 23, 59, 59);
+assert.sameValue(x, NaN, "(1899, 11, 31, 23, 59, 59)");
 
-if (!isNaN(DateValue(1899, 12, 1, 0, 0, 0))) {
-  $ERROR("#2: The value should be NaN");
-}
+x = DateValue(1899, 12, 1, 0, 0, 0);
+assert.sameValue(x, NaN, "(1899, 12, 1, 0, 0, 0)");
 
-if (!isNaN(DateValue(1900, 0, 1, 0, 0, 0))) {
-  $ERROR("#3: The value should be NaN");
-}
+x = DateValue(1900, 0, 1, 0, 0, 0);
+assert.sameValue(x, NaN, "(1900, 0, 1, 0, 0, 0)");
 
-if (!isNaN(DateValue(1969, 11, 31, 23, 59, 59))) {
-  $ERROR("#4: The value should be NaN");
-}
+x = DateValue(1969, 11, 31, 23, 59, 59);
+assert.sameValue(x, NaN, "(1969, 11, 31, 23, 59, 59)");
 
-if (!isNaN(DateValue(1969, 12, 1, 0, 0, 0))) {
-  $ERROR("#5: The value should be NaN");
-}
+x = DateValue(1969, 12, 1, 0, 0, 0);
+assert.sameValue(x, NaN, "(1969, 12, 1, 0, 0, 0)");
 
-if (!isNaN(DateValue(1970, 0, 1, 0, 0, 0))) {
-  $ERROR("#6: The value should be NaN");
-}
+x = DateValue(1970, 0, 1, 0, 0, 0);
+assert.sameValue(x, NaN, "(1970, 0, 1, 0, 0, 0)");
 
-if (!isNaN(DateValue(1999, 11, 31, 23, 59, 59))) {
-  $ERROR("#7: The value should be NaN");
-}
+x = DateValue(1999, 11, 31, 23, 59, 59);
+assert.sameValue(x, NaN, "(1999, 11, 31, 23, 59, 59)");
 
-if (!isNaN(DateValue(1999, 12, 1, 0, 0, 0))) {
-  $ERROR("#8: The value should be NaN");
-}
+x = DateValue(1999, 12, 1, 0, 0, 0);
+assert.sameValue(x, NaN, "(1999, 12, 1, 0, 0, 0)");
 
-if (!isNaN(DateValue(2000, 0, 1, 0, 0, 0))) {
-  $ERROR("#9: The value should be NaN");
-}
+x = DateValue(2000, 0, 1, 0, 0, 0);
+assert.sameValue(x, NaN, "(2000, 0, 1, 0, 0, 0)");
 
-if (!isNaN(DateValue(2099, 11, 31, 23, 59, 59))) {
-  $ERROR("#10: The value should be NaN");
-}
+x = DateValue(2099, 11, 31, 23, 59, 59);
+assert.sameValue(x, NaN, "(2099, 11, 31, 23, 59, 59)");
 
-if (!isNaN(DateValue(2099, 12, 1, 0, 0, 0))) {
-  $ERROR("#11: The value should be NaN");
-}
+x = DateValue(2099, 12, 1, 0, 0, 0);
+assert.sameValue(x, NaN, "(2099, 12, 1, 0, 0, 0)");
 
-if (!isNaN(DateValue(2100, 0, 1, 0, 0, 0))) {
-  $ERROR("#12: The value should be NaN");
-}
+x = DateValue(2100, 0, 1, 0, 0, 0);
+assert.sameValue(x, NaN, "(2100, 0, 1, 0, 0, 0)");
diff --git a/test/built-ins/Date/prototype/valueOf/S9.4_A3_T2.js b/test/built-ins/Date/prototype/valueOf/S9.4_A3_T2.js
index 3d9d34efb4baeadea21056926e3b5b2550ee23c1..7246469585ee455a7a03f7874f4615441763fc63 100644
--- a/test/built-ins/Date/prototype/valueOf/S9.4_A3_T2.js
+++ b/test/built-ins/Date/prototype/valueOf/S9.4_A3_T2.js
@@ -13,21 +13,15 @@ description: >
 
 // CHECK#1
 var d1 = new Date(Number.NaN);
-if (!isNaN(d1.valueOf())) {
-  $ERROR('#1: var d1 = new Date(Number.NaN); d1.valueOf() === Number.NaN;');
-}
+assert.sameValue(d1.valueOf(), NaN, "NaN");
 
 // CHECK#2
 var d2 = new Date(Infinity);
-if (!isNaN(d2.valueOf())) {
-  $ERROR('#2: var d2 = new Date(Infinity); d2.valueOf() === Number.NaN;');
-}
+assert.sameValue(d2.valueOf(), NaN, "Infinity");
 
 // CHECK#3
 var d3 = new Date(-Infinity);
-if (!isNaN(d3.valueOf())) {
-  $ERROR('#3: var d3 = new Date(-Infinity); d3.valueOf() === Number.NaN;');
-}
+assert.sameValue(d3.valueOf(), NaN, "-Infinity");
 
 // CHECK#4
 var d4 = new Date(0);
diff --git a/test/built-ins/Math/abs/S15.8.2.1_A1.js b/test/built-ins/Math/abs/S15.8.2.1_A1.js
index f902de3ea96109c1f6435e96b2c15a1918210c73..bffba9f25bb186381796cdea7b9bb4fbca440291 100644
--- a/test/built-ins/Math/abs/S15.8.2.1_A1.js
+++ b/test/built-ins/Math/abs/S15.8.2.1_A1.js
@@ -7,9 +7,4 @@ es5id: 15.8.2.1_A1
 description: Checking if Math.abs(NaN) is NaN
 ---*/
 
-// CHECK#1
-var x = NaN;
-if (!isNaN(Math.abs(x)))
-{
-	$ERROR("#1: 'var x=NaN; isNaN(Math.abs(x)) === false'");
-}
+assert.sameValue(Math.abs(NaN), NaN);
diff --git a/test/built-ins/Math/acos/S15.8.2.2_A1.js b/test/built-ins/Math/acos/S15.8.2.2_A1.js
index 9322e15a1301f7b4495ece6e1ea4a750e52d526e..c0b7e0bfa05cc5b56224f8e9cd2e67c9dd4f2dc2 100644
--- a/test/built-ins/Math/acos/S15.8.2.2_A1.js
+++ b/test/built-ins/Math/acos/S15.8.2.2_A1.js
@@ -7,9 +7,4 @@ es5id: 15.8.2.2_A1
 description: Checking if Math.acos(NaN) is NaN
 ---*/
 
-// CHECK#1
-var x = NaN;
-if (!isNaN(Math.acos(x)))
-{
-	$ERROR("#1: 'var x=NaN; isNaN(Math.acos(x)) === false'");
-}
+assert.sameValue(Math.acos(NaN), NaN);
diff --git a/test/built-ins/Math/acos/S15.8.2.2_A2.js b/test/built-ins/Math/acos/S15.8.2.2_A2.js
index ad756bfb5d33666217aa387f4f27af0a23d2ac1d..318e9c4cbe9646b12fb6a3fb055a321c2b55f3ad 100644
--- a/test/built-ins/Math/acos/S15.8.2.2_A2.js
+++ b/test/built-ins/Math/acos/S15.8.2.2_A2.js
@@ -7,23 +7,6 @@ es5id: 15.8.2.2_A2
 description: Checking if Math.acos(x) is NaN, where x is greater than 1
 ---*/
 
-// CHECK#1
-var x = 1.000000000000001;
-if (!isNaN(Math.acos(x)))
-{
-	$ERROR("#1: 'var x = 1.000000000000001; isNaN(Math.acos(x)) === false'");
-}
-
-// CHECK#2
-x = 2;
-if (!isNaN(Math.acos(x)))
-{
-	$ERROR("#2: 'x = 2; isNaN(Math.acos(x)) === false'");
-}
-
-// CHECK#3
-x = +Infinity;
-if (!isNaN(Math.acos(x)))
-{
-	$ERROR("#3: 'x = +Infinity; isNaN(Math.acos(x)) === false'");
-}
+assert.sameValue(Math.acos(1.000000000000001), NaN, "1.000000000000001");
+assert.sameValue(Math.acos(2), NaN, "2");
+assert.sameValue(Math.acos(Infinity), NaN, "Infinity");
diff --git a/test/built-ins/Math/acos/S15.8.2.2_A3.js b/test/built-ins/Math/acos/S15.8.2.2_A3.js
index 658e8b9a814d55cc02d3b0da878ab9c7e0581dab..36e2c5b471524248309fb02c8c7a61a1c37ffead 100644
--- a/test/built-ins/Math/acos/S15.8.2.2_A3.js
+++ b/test/built-ins/Math/acos/S15.8.2.2_A3.js
@@ -7,23 +7,6 @@ es5id: 15.8.2.2_A3
 description: Checking if Math.acos(x) is NaN, where x is less than -1
 ---*/
 
-// CHECK#1
-var x = -1.000000000000001;
-if (!isNaN(Math.acos(x)))
-{
-	$ERROR("#1: 'var x = -1.000000000000001; isNaN(Math.acos(x)) === false'");
-}
-
-// CHECK#2
-x = -2;
-if (!isNaN(Math.acos(x)))
-{
-	$ERROR("#2: 'x = -2; isNaN(Math.acos(x)) === false'");
-}
-
-// CHECK#3
-x = -Infinity;
-if (!isNaN(Math.acos(x)))
-{
-	$ERROR("#3: 'x = -Infinity; isNaN(Math.acos(x)) === false'");
-}
+assert.sameValue(Math.acos(-1.000000000000001), NaN, "-1.000000000000001");
+assert.sameValue(Math.acos(-2), NaN, "-2");
+assert.sameValue(Math.acos(-Infinity), NaN, "-Infinity");
diff --git a/test/built-ins/Math/asin/S15.8.2.3_A1.js b/test/built-ins/Math/asin/S15.8.2.3_A1.js
index 633e2320695134d8523129f73476d8375b149335..6cda2839e7dddc366e4946b3efd65ce293c4e301 100644
--- a/test/built-ins/Math/asin/S15.8.2.3_A1.js
+++ b/test/built-ins/Math/asin/S15.8.2.3_A1.js
@@ -7,9 +7,4 @@ es5id: 15.8.2.3_A1
 description: Checking if Math.asin(NaN) is NaN
 ---*/
 
-// CHECK#1
-var x = NaN;
-if (!isNaN(Math.asin(x)))
-{
-	$ERROR("#1: 'var x=NaN; isNaN(Math.asin(x)) === false'");
-}
+assert.sameValue(Math.asin(NaN), NaN, "NaN");
diff --git a/test/built-ins/Math/asin/S15.8.2.3_A2.js b/test/built-ins/Math/asin/S15.8.2.3_A2.js
index 573376f6aeaadeca5e26d9af1ecbf9caf61b0b70..7508e2c49214fb4b31f8901e9b99d00f58b46148 100644
--- a/test/built-ins/Math/asin/S15.8.2.3_A2.js
+++ b/test/built-ins/Math/asin/S15.8.2.3_A2.js
@@ -7,23 +7,6 @@ es5id: 15.8.2.3_A2
 description: Checking if Math.asin(x) is NaN, where x is greater than 1
 ---*/
 
-// CHECK#1
-var x = 1.000000000000001;
-if (!isNaN(Math.asin(x)))
-{
-	$ERROR("#1: 'var x = 1.000000000000001; isNaN(Math.asin(x)) === false'");
-}
-
-// CHECK#2
-x = 2;
-if (!isNaN(Math.asin(x)))
-{
-	$ERROR("#2: 'x = 2; isNaN(Math.asin(x)) === false'");
-}
-
-// CHECK#3
-x = +Infinity;
-if (!isNaN(Math.asin(x)))
-{
-	$ERROR("#3: 'x = +Infinity; isNaN(Math.asin(x)) === false'");
-}
+assert.sameValue(Math.asin(1.000000000000001), NaN, "1.000000000000001");
+assert.sameValue(Math.asin(2), NaN, "2");
+assert.sameValue(Math.asin(Infinity), NaN, "Infinity");
diff --git a/test/built-ins/Math/asin/S15.8.2.3_A3.js b/test/built-ins/Math/asin/S15.8.2.3_A3.js
index ba0afc56a47e0e239a8739c5d9c74374b7ad4ca1..087979264797e18cffc75a0d3ed2ab0fad2f427e 100644
--- a/test/built-ins/Math/asin/S15.8.2.3_A3.js
+++ b/test/built-ins/Math/asin/S15.8.2.3_A3.js
@@ -7,23 +7,6 @@ es5id: 15.8.2.3_A3
 description: Checking if Math.asin(x) is NaN, where x is less than -1
 ---*/
 
-// CHECK#1
-var x = -1.000000000000001;
-if (!isNaN(Math.asin(x)))
-{
-	$ERROR("#1: 'var x = -1.000000000000001; isNaN(Math.asin(x)) === false'");
-}
-
-// CHECK#2
-x = -2;
-if (!isNaN(Math.asin(x)))
-{
-	$ERROR("#2: 'x = -2; isNaN(Math.asin(x)) === false'");
-}
-
-// CHECK#3
-x = -Infinity;
-if (!isNaN(Math.asin(x)))
-{
-	$ERROR("#3: 'x = -Infinity; isNaN(Math.asin(x)) === false'");
-}
+assert.sameValue(Math.asin(-1.000000000000001), NaN, "-1.000000000000001");
+assert.sameValue(Math.asin(-2), NaN, "-2");
+assert.sameValue(Math.asin(-Infinity), NaN, "-Infinity");
diff --git a/test/built-ins/Math/atan/S15.8.2.4_A1.js b/test/built-ins/Math/atan/S15.8.2.4_A1.js
index caa6de3ccd84c803ce8b074043148d03df13da5e..efa93984004ca33b363719f0ed25983a8b42a8a9 100644
--- a/test/built-ins/Math/atan/S15.8.2.4_A1.js
+++ b/test/built-ins/Math/atan/S15.8.2.4_A1.js
@@ -7,9 +7,4 @@ es5id: 15.8.2.4_A1
 description: Checking if Math.atan(NaN) is NaN
 ---*/
 
-// CHECK#1
-var x = NaN;
-if (!isNaN(Math.atan(x)))
-{
-	$ERROR("#1: 'var x=NaN; isNaN(Math.atan(x)) === false'");
-}
+assert.sameValue(Math.atan(NaN), NaN);
diff --git a/test/built-ins/Math/atan2/S15.8.2.5_A1.js b/test/built-ins/Math/atan2/S15.8.2.5_A1.js
index a9dde9d6a556d6d32dfd0fe9803bb6e572f23721..0b1d92a2a2fc7b383771bc2d513d85dcfa923858 100644
--- a/test/built-ins/Math/atan2/S15.8.2.5_A1.js
+++ b/test/built-ins/Math/atan2/S15.8.2.5_A1.js
@@ -28,9 +28,10 @@ for (var i = 0; i < 2; i++)
 	for (var j = 0; j < valnum; j++)
 	{
 		args[1-i] = vals[j];
-		if (!isNaN(Math.atan2(args[0], args[1])))
-		{
-			$ERROR("#1: isNaN(Math.atan2(" + args[0] + ", " + args[1] + ")) === false'");
-		}
+		assert.sameValue(
+			Math.atan2(args[0], args[1]),
+			NaN,
+			"(" + args[0] + ", " + args[1] + ")"
+		);
 	}
 }
diff --git a/test/built-ins/Math/ceil/S15.8.2.6_A1.js b/test/built-ins/Math/ceil/S15.8.2.6_A1.js
index 8a33246aede91c0c20e2ed2e8a719dc205fdaf34..55fc1b73b407d13b45edbae2a1417a18acaa37a3 100644
--- a/test/built-ins/Math/ceil/S15.8.2.6_A1.js
+++ b/test/built-ins/Math/ceil/S15.8.2.6_A1.js
@@ -7,9 +7,4 @@ es5id: 15.8.2.6_A1
 description: Checking if Math.ceil(NaN) is NaN
 ---*/
 
-// CHECK#1
-var x = NaN;
-if (!isNaN(Math.ceil(x)))
-{
-	$ERROR("#1: 'var x=NaN; isNaN(Math.ceil(x)) === false'");
-}
+assert.sameValue(Math.ceil(NaN), NaN);
diff --git a/test/built-ins/Math/cos/S15.8.2.7_A1.js b/test/built-ins/Math/cos/S15.8.2.7_A1.js
index 778227866750c776102d902a7be85f580291bcc3..365f815f40ca1afcb82532f81db7eae2c881812a 100644
--- a/test/built-ins/Math/cos/S15.8.2.7_A1.js
+++ b/test/built-ins/Math/cos/S15.8.2.7_A1.js
@@ -7,9 +7,4 @@ es5id: 15.8.2.7_A1
 description: Checking if Math.cos(NaN) is NaN
 ---*/
 
-// CHECK#1
-var x = NaN;
-if (!isNaN(Math.cos(x)))
-{
-	$ERROR("#1: 'var x=NaN; isNaN(Math.cos(x)) === false'");
-}
+assert.sameValue(Math.cos(NaN), NaN);
diff --git a/test/built-ins/Math/cos/S15.8.2.7_A4.js b/test/built-ins/Math/cos/S15.8.2.7_A4.js
index cdec9853122694a00f9e478d726bb9eb076fedeb..31a5efcb24dc812c308008c5494ee7bdc4c7d608 100644
--- a/test/built-ins/Math/cos/S15.8.2.7_A4.js
+++ b/test/built-ins/Math/cos/S15.8.2.7_A4.js
@@ -7,9 +7,4 @@ es5id: 15.8.2.7_A4
 description: Checking if Math.cos(+Infinity) is NaN
 ---*/
 
-// CHECK#1
-var x = +Infinity;
-if (!isNaN(Math.cos(x)))
-{
-	$ERROR("#1: 'var x = +Infinity; isNaN(Math.cos(x)) === false'");
-}
+assert.sameValue(Math.cos(Infinity), NaN);
diff --git a/test/built-ins/Math/cos/S15.8.2.7_A5.js b/test/built-ins/Math/cos/S15.8.2.7_A5.js
index 7c34d8ec6174f7fb9b7bbdde233abf37d8706826..23fbe20ca36916528b4c8be6e1ade41aa95f6715 100644
--- a/test/built-ins/Math/cos/S15.8.2.7_A5.js
+++ b/test/built-ins/Math/cos/S15.8.2.7_A5.js
@@ -7,9 +7,4 @@ es5id: 15.8.2.7_A5
 description: Checking if Math.cos(-Infinity) is NaN
 ---*/
 
-// CHECK#1
-var x = -Infinity;
-if (!isNaN(Math.cos(x)))
-{
-	$ERROR("#1: 'var x = -Infinity; isNaN(Math.cos(x)) === false'");
-}
+assert.sameValue(Math.cos(-Infinity), NaN);
diff --git a/test/built-ins/Math/exp/S15.8.2.8_A1.js b/test/built-ins/Math/exp/S15.8.2.8_A1.js
index f04343598dbe91ccfb32c9170cd76c34d859e91e..ac0db199288b4bb0e90699363b7da2b57aa53729 100644
--- a/test/built-ins/Math/exp/S15.8.2.8_A1.js
+++ b/test/built-ins/Math/exp/S15.8.2.8_A1.js
@@ -7,9 +7,4 @@ es5id: 15.8.2.8_A1
 description: Checking if Math.exp(NaN) is NaN
 ---*/
 
-// CHECK#1
-var x = NaN;
-if (!isNaN(Math.exp(x)))
-{
-	$ERROR("#1: 'var x=NaN; isNaN(Math.exp(x)) === false'");
-}
+assert.sameValue(Math.exp(NaN), NaN);
diff --git a/test/built-ins/Math/floor/S15.8.2.9_A1.js b/test/built-ins/Math/floor/S15.8.2.9_A1.js
index 43ede918015b928f76605b67e2926f0e84a9bb0a..d6ada404bfe4509b7df8acfa344337751ce3f1c9 100644
--- a/test/built-ins/Math/floor/S15.8.2.9_A1.js
+++ b/test/built-ins/Math/floor/S15.8.2.9_A1.js
@@ -7,9 +7,4 @@ es5id: 15.8.2.9_A1
 description: Checking if Math.floor(NaN) is NaN
 ---*/
 
-// CHECK#1
-var x = NaN;
-if (!isNaN(Math.floor(x)))
-{
-	$ERROR("#1: 'var x=NaN; isNaN(Math.floor(x)) === false'");
-}
+assert.sameValue(Math.floor(NaN), NaN);
diff --git a/test/built-ins/Math/fround/Math.fround_NaN.js b/test/built-ins/Math/fround/Math.fround_NaN.js
index 6023333373c64603e981ba7faa4aedad0482e4db..599dba56e3cab25ad10458b5c7b3cd952d84263e 100644
--- a/test/built-ins/Math/fround/Math.fround_NaN.js
+++ b/test/built-ins/Math/fround/Math.fround_NaN.js
@@ -7,4 +7,4 @@ author: Ryan Lewis
 description: Math.fround should return NaN if called with NaN.
 ---*/
 
-assert(Number.isNaN(Math.fround(NaN)), 'Number.isNaN(Math.fround(NaN)) !== true');
+assert.sameValue(Math.fround(NaN), NaN);
diff --git a/test/built-ins/Math/hypot/Math.hypot_NaN.js b/test/built-ins/Math/hypot/Math.hypot_NaN.js
index 0f29e79ae75595e2f48a43de2c73fe4d9f5f0722..1a0113ff0b85afb8af1b71433967c390e7858a85 100644
--- a/test/built-ins/Math/hypot/Math.hypot_NaN.js
+++ b/test/built-ins/Math/hypot/Math.hypot_NaN.js
@@ -9,4 +9,4 @@ description: >
     NaN.
 ---*/
 
-assert(Number.isNaN(Math.hypot(NaN, 3)), 'Number.isNaN(Math.hypot(NaN, 3)) !== true');
+assert.sameValue(Math.hypot(NaN, 3), NaN);
diff --git a/test/built-ins/Math/log/S15.8.2.10_A1.js b/test/built-ins/Math/log/S15.8.2.10_A1.js
index 3e1f9e0f7a36e37adbec608f503e9313c2fabbb2..1332f2988c60be880502698d9eb26d262c7debdb 100644
--- a/test/built-ins/Math/log/S15.8.2.10_A1.js
+++ b/test/built-ins/Math/log/S15.8.2.10_A1.js
@@ -7,9 +7,4 @@ es5id: 15.8.2.10_A1
 description: Checking if Math.log(NaN) is NaN
 ---*/
 
-// CHECK#1
-var x = NaN;
-if (!isNaN(Math.log(x)))
-{
-	$ERROR("#1: 'var x=NaN; isNaN(Math.log(x)) === false'");
-}
+assert.sameValue(Math.log(NaN), NaN);
diff --git a/test/built-ins/Math/log/S15.8.2.10_A2.js b/test/built-ins/Math/log/S15.8.2.10_A2.js
index 94ef74444751c9a9a40a8e3dfcf8758189169011..25c73f493f200fca36145371d80cca38e28b25be 100644
--- a/test/built-ins/Math/log/S15.8.2.10_A2.js
+++ b/test/built-ins/Math/log/S15.8.2.10_A2.js
@@ -7,23 +7,6 @@ es5id: 15.8.2.10_A2
 description: Checking if Math.log(x) is NaN, where x is less than 0
 ---*/
 
-// CHECK#1
-var x = -0.000000000000001;
-if (!isNaN(Math.log(x)))
-{
-	$ERROR("#1: 'var x=-0.000000000000001; isNaN(Math.log(x)) === false'");
-}
-
-// CHECK#2
-x = -1;
-if (!isNaN(Math.log(x)))
-{
-	$ERROR("#1: 'var x=-1; isNaN(Math.log(x)) === false'");
-}
-
-// CHECK#3
-x = -Infinity;
-if (!isNaN(Math.log(x)))
-{
-	$ERROR("#1: 'var x=-Infinity; isNaN(Math.log(x)) === false'");
-}
+assert.sameValue(Math.log(-0.000000000000001), NaN, "-0.000000000000001");
+assert.sameValue(Math.log(-1), NaN, "-1");
+assert.sameValue(Math.log(-Infinity), NaN, "-Infinity");
diff --git a/test/built-ins/Math/max/15.8.2.11-1.js b/test/built-ins/Math/max/15.8.2.11-1.js
index f2b6e97c83d24b8b6c6183f529da231f281bb411..ae01d3f96eee6bc7f95ab7e9d333276ecb97b93b 100644
--- a/test/built-ins/Math/max/15.8.2.11-1.js
+++ b/test/built-ins/Math/max/15.8.2.11-1.js
@@ -6,4 +6,4 @@ es5id: 15.8.2.11-1
 description: Math.max({}) is NaN
 ---*/
 
-assert(isNaN(Math.max({})), 'isNaN(Math.max({})) !== true');
+assert.sameValue(Math.max({}), NaN);
diff --git a/test/built-ins/Math/max/S15.8.2.11_A2.js b/test/built-ins/Math/max/S15.8.2.11_A2.js
index a719f840567ca7902d393933ec25dda17dbc95ad..04aea82ec756ca288a22116cd620cba4e422cfe4 100644
--- a/test/built-ins/Math/max/S15.8.2.11_A2.js
+++ b/test/built-ins/Math/max/S15.8.2.11_A2.js
@@ -9,11 +9,7 @@ description: >
     function where at least one of the arguments is NaN
 ---*/
 
-// CHECK#1
-if (!isNaN(Math.max(NaN)))
-{
-	$ERROR("#1: 'isNaN(Math.max(NaN)) === false");
-}
+assert.sameValue(Math.max(NaN), NaN, "NaN");
 
 // CHECK#2
 var vals = new Array();
@@ -33,10 +29,11 @@ for (var i = 0; i <= 1; i++)
 	for (var j = 0; j < valnum; j++)
 	{
 		args[1-i] = vals[j];
-		if (!isNaN(Math.max(args[0], args[1])))
-		{
-			$ERROR("#2: 'isNaN(Math.max(" + args[0] + ", " + args[1] + ")) === false");
-		}	
+		assert.sameValue(
+			Math.max(args[0], args[1]),
+			NaN,
+			"max(" + args[0] + ", " + args[1] + ")"
+		);
 	}
 }
 
@@ -59,10 +56,11 @@ for (var i = 0; i <= 2; i++)
 		{
 			args[k] = vals[j];
 			args[l] = vals[jj];
-			if (!isNaN(Math.max(args[0], args[1], args[2])))
-			{
-				$ERROR("#3: 'isNaN(Math.max(" + args[0] + ", " + args[1] + ", " + args[2] + ")) === false");
-			}	
+			assert.sameValue(
+				Math.max(args[0], args[1], args[2]),
+				NaN,
+				"max(" + args[0] + ", " + args[1] + ", " + args[2] + ")"
+			);
 		}
 	}
 }
diff --git a/test/built-ins/Math/min/15.8.2.12-1.js b/test/built-ins/Math/min/15.8.2.12-1.js
index cc749e56d334970bed28beb88423bd23265d6e3b..588d17a7ec1b34bd639c2a8299cb7b9ff4701ff6 100644
--- a/test/built-ins/Math/min/15.8.2.12-1.js
+++ b/test/built-ins/Math/min/15.8.2.12-1.js
@@ -6,4 +6,4 @@ es5id: 15.8.2.12-1
 description: Math.min({}) is NaN
 ---*/
 
-assert(isNaN(Math.min({})), 'isNaN(Math.min({})) !== true');
+assert.sameValue(Math.min({}), NaN);
diff --git a/test/built-ins/Math/min/S15.8.2.12_A2.js b/test/built-ins/Math/min/S15.8.2.12_A2.js
index 5e5e4eaa2eaa2cb44a5604f7c843807e29399272..3ec27bf76fed3bbcac6b615f97da4374285720f4 100644
--- a/test/built-ins/Math/min/S15.8.2.12_A2.js
+++ b/test/built-ins/Math/min/S15.8.2.12_A2.js
@@ -10,10 +10,7 @@ description: >
 ---*/
 
 // CHECK#1
-if (!isNaN(Math.min(NaN)))
-{
-	$ERROR("#1: 'isNaN(Math.min(NaN)) === false");
-}
+assert.sameValue(Math.min(NaN), NaN, "NaN");
 
 // CHECK#2
 var vals = new Array();
@@ -33,10 +30,11 @@ for (var i = 0; i <= 1; i++)
 	for (var j = 0; j < valnum; j++)
 	{
 		args[1-i] = vals[j];
-		if (!isNaN(Math.min(args[0], args[1])))
-		{
-			$ERROR("#2: 'isNaN(Math.min(" + args[0] + ", " + args[1] + ")) === false");
-		}	
+		assert.sameValue(
+			Math.min(args[0], args[1]),
+			NaN,
+			"min(" + args[0] + ", " + args[1] + ")"
+		);
 	}
 }
 
@@ -59,10 +57,11 @@ for (var i = 0; i <= 2; i++)
 		{
 			args[k] = vals[j];
 			args[l] = vals[jj];
-			if (!isNaN(Math.min(args[0], args[1], args[2])))
-			{
-				$ERROR("#3: 'isNaN(Math.min(" + args[0] + ", " + args[1] + ", " + args[2] + ")) === false");
-			}	
+			assert.sameValue(
+				Math.min(args[0], args[1], args[2]),
+				NaN,
+				"min(" + args[0] + ", " + args[1] + ", " + args[2] + ")"
+			);
 		}
 	}
 }
diff --git a/test/built-ins/Math/pow/applying-the-exp-operator_A1.js b/test/built-ins/Math/pow/applying-the-exp-operator_A1.js
index 1ee20d1b25b271f0968afc8f438a1a8b1df635f2..838ba78f3ad1bd60c6911d19dc9f74f978ff9293 100644
--- a/test/built-ins/Math/pow/applying-the-exp-operator_A1.js
+++ b/test/built-ins/Math/pow/applying-the-exp-operator_A1.js
@@ -22,8 +22,9 @@ var basenum = 9;
 
 for (var i = 0; i < basenum; i++)
 {
-	if (!isNaN(Math.pow(base[i],exponent)))
-	{
-		$ERROR("#1: isNaN(Math.pow(" + base[i] + ", " + exponent + ")) === false");
-	}
+  assert.sameValue(
+    Math.pow(base[i], exponent),
+    NaN,
+    base[i]
+  );
 }
diff --git a/test/built-ins/Math/pow/applying-the-exp-operator_A23.js b/test/built-ins/Math/pow/applying-the-exp-operator_A23.js
index 2849c01ac97353ff8ba322de18446e1949f6c50f..826a4305bb7adb7acdf450690e3fc2c52295ddf1 100644
--- a/test/built-ins/Math/pow/applying-the-exp-operator_A23.js
+++ b/test/built-ins/Math/pow/applying-the-exp-operator_A23.js
@@ -26,7 +26,12 @@ exponent[7] = Math.PI;
 
 var exponentnum = 8;
 
-for (var i = 0; i < basenum; i++)
-	for (var j = 0; j < exponentnum; j++)
-		if (!isNaN(Math.pow(base[i],exponent[j])))
-			$ERROR("#1: isNaN(Math.pow(" + base[i] + ", " + exponent[j] + ")) === false");
+for (var i = 0; i < basenum; i++) {
+	for (var j = 0; j < exponentnum; j++) {
+    assert.sameValue(
+      Math.pow(base[i], exponent[j]),
+      NaN,
+      "(" + base[i] + ", " + exponent[j] + ")"
+    );
+  }
+}
diff --git a/test/built-ins/Math/pow/applying-the-exp-operator_A4.js b/test/built-ins/Math/pow/applying-the-exp-operator_A4.js
index 3c28de4630a003cc927b8199adac53017709f4e2..7288b105b848bea4f654258e1bd1dc98ffaa3cde 100644
--- a/test/built-ins/Math/pow/applying-the-exp-operator_A4.js
+++ b/test/built-ins/Math/pow/applying-the-exp-operator_A4.js
@@ -20,8 +20,9 @@ var exponentnum = 7;
 
 for (var i = 0; i < exponentnum; i++)
 {
-	if (!isNaN(Math.pow(base,exponent[i])))
-	{
-		$ERROR("#1: isNaN(Math.pow(" + base + ", " + exponent[i] + ")) === false");
-	}
+  assert.sameValue(
+    Math.pow(base, exponent[i]),
+    NaN,
+    "(" + base + ", " + exponent[i] + ")"
+  );
 }
diff --git a/test/built-ins/Math/pow/applying-the-exp-operator_A7.js b/test/built-ins/Math/pow/applying-the-exp-operator_A7.js
index f8045d2071a56b12313705d6a5e3f2260e7e4e24..aa736c972be55ca7fb615c759b896ed99aa8083a 100644
--- a/test/built-ins/Math/pow/applying-the-exp-operator_A7.js
+++ b/test/built-ins/Math/pow/applying-the-exp-operator_A7.js
@@ -15,8 +15,9 @@ var basenum = 2;
 
 for (var i = 0; i < basenum; i++)
 {
-	if (!isNaN(Math.pow(base[i],exponent)))
-	{
-		$ERROR("#1: isNaN(Math.pow(" + base[i] + ", " + exponent + ")) === false");
-	}
+  assert.sameValue(
+    Math.pow(base[i], exponent),
+    NaN,
+    "(" + base[i] + ", " + exponent + ")"
+  );
 }
diff --git a/test/built-ins/Math/pow/applying-the-exp-operator_A8.js b/test/built-ins/Math/pow/applying-the-exp-operator_A8.js
index 11490df4a99448c600ed0a1b5609d0d001fe895a..e87cd290c2ed7065e87ce2161976eba9d668c13e 100644
--- a/test/built-ins/Math/pow/applying-the-exp-operator_A8.js
+++ b/test/built-ins/Math/pow/applying-the-exp-operator_A8.js
@@ -15,8 +15,9 @@ var basenum = 2;
 
 for (var i = 0; i < basenum; i++)
 {
-	if (!isNaN(Math.pow(base[i],exponent)))
-	{
-		$ERROR("#1: isNaN(Math.pow(" + base[i] + ", " + exponent + ")) === false");
-	}
+  assert.sameValue(
+    Math.pow(base[i], exponent),
+    NaN,
+    "(" + base[i] + ", " + exponent + ")"
+  );
 }
diff --git a/test/built-ins/Math/round/S15.8.2.15_A1.js b/test/built-ins/Math/round/S15.8.2.15_A1.js
index 3246ec446cd905fc5563c9481e86bd2966eaa465..2b0e9ba42ce99500ff89577abdacb119ae78d6cf 100644
--- a/test/built-ins/Math/round/S15.8.2.15_A1.js
+++ b/test/built-ins/Math/round/S15.8.2.15_A1.js
@@ -7,9 +7,4 @@ es5id: 15.8.2.15_A1
 description: Checking if Math.round(x) is NaN, where x is NaN
 ---*/
 
-// CHECK#1
-var x = NaN;
-if (!isNaN(Math.round(x)))
-{
-	$ERROR("#1: 'var x=NaN; isNaN(Math.round(x)) === false'");
-}
+assert.sameValue(Math.round(NaN), NaN);
diff --git a/test/built-ins/Math/sin/S15.8.2.16_A1.js b/test/built-ins/Math/sin/S15.8.2.16_A1.js
index a64ed50fc3824805a8991f8393a65afa94b6409e..b8df6cf12bda4fc17a22fee85488844e3c800703 100644
--- a/test/built-ins/Math/sin/S15.8.2.16_A1.js
+++ b/test/built-ins/Math/sin/S15.8.2.16_A1.js
@@ -7,9 +7,4 @@ es5id: 15.8.2.16_A1
 description: Checking if Math.sin(NaN) is NaN
 ---*/
 
-// CHECK#1
-var x = NaN;
-if (!isNaN(Math.sin(x)))
-{
-	$ERROR("#1: 'var x=NaN; isNaN(Math.sin(x)) === false'");
-}
+assert.sameValue(Math.sin(NaN), NaN);
diff --git a/test/built-ins/Math/sin/S15.8.2.16_A4.js b/test/built-ins/Math/sin/S15.8.2.16_A4.js
index 0f0cbdbb9f89c0094dba29b7c9395d896f432892..e016296af9573164727410b2994d8d1dd92f6d80 100644
--- a/test/built-ins/Math/sin/S15.8.2.16_A4.js
+++ b/test/built-ins/Math/sin/S15.8.2.16_A4.js
@@ -7,9 +7,4 @@ es5id: 15.8.2.16_A4
 description: Checking if Math.sin(+Infinity) is NaN
 ---*/
 
-// CHECK#1
-var x = +Infinity;
-if (!isNaN(Math.sin(x)))
-{
-	$ERROR("#1: 'var x = +Infinity; isNaN(Math.sin(x)) === false'");
-}
+assert.sameValue(Math.sin(Infinity), NaN);
diff --git a/test/built-ins/Math/sin/S15.8.2.16_A5.js b/test/built-ins/Math/sin/S15.8.2.16_A5.js
index 1a94d8650fb6b24dcb426b4ccf725c41ceb38a2e..4f5d5134548e682f4e2039765168747af71a5f49 100644
--- a/test/built-ins/Math/sin/S15.8.2.16_A5.js
+++ b/test/built-ins/Math/sin/S15.8.2.16_A5.js
@@ -7,9 +7,4 @@ es5id: 15.8.2.16_A5
 description: Checking if Math.sin(-Infinity) is NaN
 ---*/
 
-// CHECK#1
-var x = -Infinity;
-if (!isNaN(Math.sin(x)))
-{
-	$ERROR("#1: 'var x = -Infinity; isNaN(Math.sin(x)) === false'");
-}
+assert.sameValue(Math.sin(-Infinity), NaN);
diff --git a/test/built-ins/Math/sqrt/S15.8.2.17_A1.js b/test/built-ins/Math/sqrt/S15.8.2.17_A1.js
index 937b23b3975e9a9567914b9e627e5e2a4c4373b5..9d2eafd0b718fa9db65cf5896e07dd599f85bdb7 100644
--- a/test/built-ins/Math/sqrt/S15.8.2.17_A1.js
+++ b/test/built-ins/Math/sqrt/S15.8.2.17_A1.js
@@ -7,9 +7,4 @@ es5id: 15.8.2.17_A1
 description: Checking if Math.sqrt(NaN) is NaN
 ---*/
 
-// CHECK#1
-var x = NaN;
-if (!isNaN(Math.sqrt(x)))
-{
-	$ERROR("#1: 'var x=NaN; isNaN(Math.sqrt(x)) === false'");
-}
+assert.sameValue(Math.sqrt(NaN), NaN);
diff --git a/test/built-ins/Math/sqrt/S15.8.2.17_A2.js b/test/built-ins/Math/sqrt/S15.8.2.17_A2.js
index 9f40206d30b140091c0a9e5d154e2e7a040f34b1..4e3296ea3376be780d2f1e763a70607dbe6c891e 100644
--- a/test/built-ins/Math/sqrt/S15.8.2.17_A2.js
+++ b/test/built-ins/Math/sqrt/S15.8.2.17_A2.js
@@ -7,23 +7,6 @@ es5id: 15.8.2.17_A2
 description: Checking if Math.sqrt(x) is NaN, where x is less than 0
 ---*/
 
-// CHECK#1
-var x = -0.000000000000001;
-if (!isNaN(Math.sqrt(x)))
-{
-	$ERROR("#1: 'var x=-0.000000000000001; isNaN(Math.sqrt(x)) === false'");
-}
-
-// CHECK#2
-var x = -1;
-if (!isNaN(Math.sqrt(x)))
-{
-	$ERROR("#2: 'var x=-1; isNaN(Math.sqrt(x)) === false'");
-}
-
-// CHECK#3
-var x = -Infinity;
-if (!isNaN(Math.sqrt(x)))
-{
-	$ERROR("#3: 'var x=-Infinity; isNaN(Math.sqrt(x)) === false'");
-}
+assert.sameValue(Math.sqrt(-0.000000000000001), NaN, "-0.000000000000001");
+assert.sameValue(Math.sqrt(-1), NaN, "-1");
+assert.sameValue(Math.sqrt(-Infinity), NaN, "-Infinity");
diff --git a/test/built-ins/Math/tan/S15.8.2.18_A1.js b/test/built-ins/Math/tan/S15.8.2.18_A1.js
index bb105205bd7b13048b19541d5afdd8a3483482d1..0d51ce7117c06475327ec507b7157251b42cf254 100644
--- a/test/built-ins/Math/tan/S15.8.2.18_A1.js
+++ b/test/built-ins/Math/tan/S15.8.2.18_A1.js
@@ -7,9 +7,4 @@ es5id: 15.8.2.18_A1
 description: Checking if Math.tan(NaN) is NaN
 ---*/
 
-// CHECK#1
-var x = NaN;
-if (!isNaN(Math.tan(x)))
-{
-	$ERROR("#1: 'var x=NaN; isNaN(Math.tan(x)) === false'");
-}
+assert.sameValue(Math.tan(NaN), NaN);
diff --git a/test/built-ins/Math/tan/S15.8.2.18_A4.js b/test/built-ins/Math/tan/S15.8.2.18_A4.js
index c729280aa6648c743a2a7ed8cb497106772e048a..33293c8d7cd2a56410f7678b0bd14b96ae7d0a11 100644
--- a/test/built-ins/Math/tan/S15.8.2.18_A4.js
+++ b/test/built-ins/Math/tan/S15.8.2.18_A4.js
@@ -7,9 +7,4 @@ es5id: 15.8.2.18_A4
 description: Checking if Math.tan(+Infinity) is NaN
 ---*/
 
-// CHECK#1
-var x = +Infinity;
-if (!isNaN(Math.tan(x)))
-{
-	$ERROR("#1: 'var x=+Infinity; isNaN(Math.tan(x)) === false'");
-}
+assert.sameValue(Math.tan(Infinity), NaN);
diff --git a/test/built-ins/Math/tan/S15.8.2.18_A5.js b/test/built-ins/Math/tan/S15.8.2.18_A5.js
index 8bd6f21c3bc6c4c6aeab8c2da185140aacb4dbbe..c875303692667f0c3690db97115efdd8065439ee 100644
--- a/test/built-ins/Math/tan/S15.8.2.18_A5.js
+++ b/test/built-ins/Math/tan/S15.8.2.18_A5.js
@@ -7,9 +7,4 @@ es5id: 15.8.2.18_A5
 description: Checking if Math.tan(-Infinity) is NaN
 ---*/
 
-// CHECK#1
-var x = -Infinity;
-if (!isNaN(Math.tan(x)))
-{
-	$ERROR("#1: 'var x=-Infinity; isNaN(Math.tan(x)) === false'");
-}
+assert.sameValue(Math.tan(-Infinity), NaN);
diff --git a/test/built-ins/Math/trunc/Math.trunc_NaN.js b/test/built-ins/Math/trunc/Math.trunc_NaN.js
index 485b532177af533316228c10be34b115811357ee..8aec3e0a06c5dd5e63c00bcccfa201220ced1284 100644
--- a/test/built-ins/Math/trunc/Math.trunc_NaN.js
+++ b/test/built-ins/Math/trunc/Math.trunc_NaN.js
@@ -7,4 +7,4 @@ author: Ryan Lewis
 description: Math.trunc should return NaN when called with NaN.
 ---*/
 
-assert(Number.isNaN(Math.trunc(NaN)), 'Number.isNaN(Math.trunc(NaN)) !== true');
+assert.sameValue(Math.trunc(NaN), NaN);
diff --git a/test/built-ins/NaN/S15.1.1.1_A1.js b/test/built-ins/NaN/S15.1.1.1_A1.js
index ee487c4f3a453d3c62ee10cbd2bfec1f7acabbe9..38d65eb13013ab9aa4d0210684e088c38a46af27 100644
--- a/test/built-ins/NaN/S15.1.1.1_A1.js
+++ b/test/built-ins/NaN/S15.1.1.1_A1.js
@@ -2,22 +2,8 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The initial value of NaN is NaN
 es5id: 15.1.1.1_A1
-description: Use typeof, isNaN, isFinite
+description: The initial value of NaN is NaN
 ---*/
 
-// CHECK#1
-if (typeof(NaN) !== "number") {
-	$ERROR('#1: typeof(NaN) === "number". Actual: ' + (typeof(NaN))); 
-}
-
-// CHECK#2
-if (isNaN(NaN) !== true) {
-	$ERROR('#2: NaN === Not-a-Number. Actual: ' + (NaN)); 
-}
-
-// CHECK#3
-if (isFinite(NaN) !== false) {
-	$ERROR('#3: NaN === Not-a-Finite. Actual: ' + (NaN)); 
-}
+assert(NaN !== NaN);
diff --git a/test/built-ins/Number/S15.7.1.1_A1.js b/test/built-ins/Number/S15.7.1.1_A1.js
index 8942fb3fb291f360d2ff957b300af94613e394f5..d84ded2cb9d6a733ad23036679fe4352356d08e3 100644
--- a/test/built-ins/Number/S15.7.1.1_A1.js
+++ b/test/built-ins/Number/S15.7.1.1_A1.js
@@ -30,11 +30,4 @@ if( typeof Number(new Object(10)) !== "number" ) {
 }
 
 //CHECK #5
-if( typeof Number("abc") !== "number" ) {
-  $ERROR('#5: typeof Number("abc") should be "number", actual is "'+typeof Number("abc")+'"');
-}
-
-//CHECK #6
-if( !isNaN(Number("abc"))) {
-	$ERROR('#6: Number("abc")) should be NaN');
-}
+assert.sameValue(Number("abc"), NaN, "Number('abc')");
diff --git a/test/built-ins/Number/S9.3_A1_T1.js b/test/built-ins/Number/S9.3_A1_T1.js
index cd22aa04ace752a9af19142d30951ef10d5c228a..0051c0803ad210f12de132e55e4553d6be6ec0a6 100644
--- a/test/built-ins/Number/S9.3_A1_T1.js
+++ b/test/built-ins/Number/S9.3_A1_T1.js
@@ -7,17 +7,4 @@ es5id: 9.3_A1_T1
 description: Undefined convert to Number by explicit transformation
 ---*/
 
-// CHECK#1
-if (isNaN(Number(undefined)) !== true) {
-  $ERROR('#1: Number(undefined) === Not-a-Number. Actual: ' + (Number(undefined)));
-}
-
-// CHECK#2
-if (isNaN(Number(void 0)) !== true) {
-  $ERROR('#2: Number(void 0) === Not-a-Number. Actual: ' + (Number(void 0)));
-}
-
-// CHECK#3
-if (isNaN(Number(eval("var x"))) !== true) {
-  $ERROR('#3: Number(eval("var x")) === Not-a-Number. Actual: ' + (Number(eval("var x"))));
-}
+assert.sameValue(Number(undefined), NaN);
diff --git a/test/built-ins/Number/S9.3_A4.2_T1.js b/test/built-ins/Number/S9.3_A4.2_T1.js
index a123d98745ddb7568d46ad075226d81902ce34b5..ce66684d7cfb2ef56ceda3a3d3f9cf2b65fa7adc 100644
--- a/test/built-ins/Number/S9.3_A4.2_T1.js
+++ b/test/built-ins/Number/S9.3_A4.2_T1.js
@@ -13,44 +13,42 @@ description: >
 ---*/
 
 // CHECK#1
-if (isNaN(Number(Number.NaN)) !== true) {
-  $ERROR('#1: Number(NaN) === Not-a-Number. Actual: ' + (Number(NaN))); 
-}
+assert.sameValue(Number(NaN), NaN, "NaN");
 
 // CHECK#2
 if (Number(+0) !== +0) {
-  $ERROR('#2.1: Number(+0) === 0. Actual: ' + (Number(+0))); 
+  $ERROR('#2.1: Number(+0) === 0. Actual: ' + (Number(+0)));
 } else {
   if (1/Number(+0) !== Number.POSITIVE_INFINITY) {
     $ERROR('#2.2: Number(+0) === +0. Actual: -0');
-  }	
+  }
 }
 
 // CHECK#3
 if (Number(-0) !== -0) {
-  $ERROR('#3.1: Number(-0) === 0. Actual: ' + (Number(-0))); 
+  $ERROR('#3.1: Number(-0) === 0. Actual: ' + (Number(-0)));
 } else {
   if (1/Number(-0) !== Number.NEGATIVE_INFINITY) {
     $ERROR('#3.2: Number(-0) === -0. Actual: +0');
-  }	
+  }
 }
 
 // CHECK#4
 if (Number(Number.POSITIVE_INFINITY) !== Number.POSITIVE_INFINITY) {
-  $ERROR('#4: Number(+Infinity) === +Infinity. Actual: ' + (Number(+Infinity))); 
+  $ERROR('#4: Number(+Infinity) === +Infinity. Actual: ' + (Number(+Infinity)));
 }
 
 // CHECK#5
 if (Number(Number.NEGATIVE_INFINITY) !== Number.NEGATIVE_INFINITY) {
-  $ERROR('#5: Number(-Infinity) === -Infinity. Actual: ' + (Number(-Infinity))); 
+  $ERROR('#5: Number(-Infinity) === -Infinity. Actual: ' + (Number(-Infinity)));
 }
 
 // CHECK#6
 if (Number(Number.MAX_VALUE) !== Number.MAX_VALUE) {
-  $ERROR('#6: Number(Number.MAX_VALUE) === Number.MAX_VALUE. Actual: ' + (Number(Number.MAX_VALUE))); 
+  $ERROR('#6: Number(Number.MAX_VALUE) === Number.MAX_VALUE. Actual: ' + (Number(Number.MAX_VALUE)));
 }
 
 // CHECK#7
 if (Number(Number.MIN_VALUE) !== Number.MIN_VALUE) {
-  $ERROR('#7: Number(Number.MIN_VALUE) === Number.MIN_VALUE. Actual: ' + (Number(Number.MIN_VALUE))); 
+  $ERROR('#7: Number(Number.MIN_VALUE) === Number.MIN_VALUE. Actual: ' + (Number(Number.MIN_VALUE)));
 }
diff --git a/test/built-ins/Number/S9.3_A5_T1.js b/test/built-ins/Number/S9.3_A5_T1.js
index 739d70134306479f3a4feb93075d4020c65cfc72..d6e2c2f7dc0f1c40a535d222b2bf0ca4d708c7fa 100644
--- a/test/built-ins/Number/S9.3_A5_T1.js
+++ b/test/built-ins/Number/S9.3_A5_T1.js
@@ -23,23 +23,19 @@ if (Number(new Number(0)) !== 0) {
 }
 
 // CHECK#3
-if (isNaN(Number(new Number(Number.NaN)) !== true)) {
-  $ERROR('#3: Number(new Number(Number.NaN)) === Not-a-Number. Actual: ' + (Number(new Number(Number.NaN))));
-}
+assert.sameValue(Number(new Number(NaN)), NaN, "Number(new Number(NaN)");
 
 // CHECK#4
 if (Number(new Number(null)) !== 0) {
-  $ERROR('#4.1: Number(new Number(null)) === 0. Actual: ' + (Number(new Number(null)))); 
+  $ERROR('#4.1: Number(new Number(null)) === 0. Actual: ' + (Number(new Number(null))));
 } else {
   if (1/Number(new Number(null)) !== Number.POSITIVE_INFINITY) {
     $ERROR('#4.2: Number(new Number(null)) === +0. Actual: -0');
-  }	
+  }
 }
 
 // CHECK#5
-if (isNaN(Number(new Number(void 0)) !== true)) {
-  $ERROR('#5: Number(new Number(void 0)) === Not-a-Number. Actual: ' + (Number(new Number(void 0))));
-}
+assert.sameValue(Number(new Number(void 0)), NaN, "Number(new Number(void 0)");
 
 // CHECK#6
 if (Number(new Number(true)) !== 1) {
@@ -70,26 +66,22 @@ if (Number(new Boolean(false)) !== +0) {
 }
 
 // CHECK#10
-if (isNaN(Number(new Array(2,4,8,16,32))) !== true) {
-  $ERROR('#10: Number(new Array(2,4,8,16,32)) === Not-a-Number. Actual: ' + (Number(new Array(2,4,8,16,32))));
-}
+assert.sameValue(Number(new Array(2,4,8,16,32)), NaN, "Number(new Array(2,4,8,16,32))");
 
 // CHECK#11
 var myobj1 = {
-                ToNumber : function(){return 12345;}, 
+                ToNumber : function(){return 12345;},
                 toString : function(){return "67890";},
-                valueOf  : function(){return "[object MyObj]";} 
+                valueOf  : function(){return "[object MyObj]";}
             };
 
-if (isNaN(Number(myobj1)) !== true){
-  $ERROR("#11: Number(myobj1) calls ToPrimitive with hint Number. Actual: " + (Number(myobj1)));
-}
+assert.sameValue(Number(myobj1), NaN, "Number(myobj1)");
 
 // CHECK#12
 var myobj2 = {
-                ToNumber : function(){return 12345;}, 
+                ToNumber : function(){return 12345;},
                 toString : function(){return "67890";},
-                valueOf  : function(){return "9876543210";} 
+                valueOf  : function(){return "9876543210";}
             };
 
 if (Number(myobj2) !== 9876543210){
@@ -99,18 +91,16 @@ if (Number(myobj2) !== 9876543210){
 
 // CHECK#13
 var myobj3 = {
-                ToNumber : function(){return 12345;}, 
-                toString : function(){return "[object MyObj]";} 
+                ToNumber : function(){return 12345;},
+                toString : function(){return "[object MyObj]";}
             };
 
-if (isNaN(Number(myobj3)) !== true){
-  $ERROR("#13: Number(myobj3) calls ToPrimitive with hint Number. Exptected: Not-a-Number.  Actual: " + (Number(myobj3)));
-}
+assert.sameValue(Number(myobj3), NaN, "Number(myobj3)");
 
 // CHECK#14
 var myobj4 = {
-                ToNumber : function(){return 12345;}, 
-                toString : function(){return "67890";} 
+                ToNumber : function(){return 12345;},
+                toString : function(){return "67890";}
             };
 
 if (Number(myobj4) !== 67890){
@@ -119,9 +109,7 @@ if (Number(myobj4) !== 67890){
 
 // CHECK#15
 var myobj5 = {
-                ToNumber : function(){return 12345;} 
+                ToNumber : function(){return 12345;}
             };
 
-if (isNaN(Number(myobj5)) !== true){
-  $ERROR("#15: Number(myobj5) calls ToPrimitive with hint Number. Exptected: Not-a-Number.  Actual: " + (Number(myobj5)));
-}
+assert.sameValue(Number(myobj5), NaN, "Number(myobj5)");
diff --git a/test/built-ins/Number/prototype/valueOf/S15.7.4.4_A1_T01.js b/test/built-ins/Number/prototype/valueOf/S15.7.4.4_A1_T01.js
index e6fc4d41deabc080eff5fd0fe87c27b680555012..1345810ac78a5e5bce57187e96972e1cf0fb605f 100644
--- a/test/built-ins/Number/prototype/valueOf/S15.7.4.4_A1_T01.js
+++ b/test/built-ins/Number/prototype/valueOf/S15.7.4.4_A1_T01.js
@@ -33,9 +33,11 @@ if((new Number(1)).valueOf() !== 1){
 }
 
 //CHECK#6
-if(!isNaN((new Number(Number.NaN)).valueOf())){
-  $ERROR('#6: (new Number(Number.NaN)).valueOf() === NaN');
-}
+assert.sameValue(
+  new Number(NaN).valueOf(),
+  NaN,
+  "NaN"
+);
 
 //CHECK#7
 if((new Number(Number.POSITIVE_INFINITY)).valueOf() !== Number.POSITIVE_INFINITY){
diff --git a/test/built-ins/Number/prototype/valueOf/S15.7.4.4_A1_T02.js b/test/built-ins/Number/prototype/valueOf/S15.7.4.4_A1_T02.js
index ce82e1f0c95ae61f8303b47ac47f2f1dd9f42476..4f4a443894d3e6873111949253e473055e50484e 100644
--- a/test/built-ins/Number/prototype/valueOf/S15.7.4.4_A1_T02.js
+++ b/test/built-ins/Number/prototype/valueOf/S15.7.4.4_A1_T02.js
@@ -33,9 +33,11 @@ if((new Number(1)).valueOf("argument") !== 1){
 }
 
 //CHECK#6
-if(!isNaN((new Number(Number.NaN)).valueOf("argument"))){
-  $ERROR('#6: (new Number(Number.NaN)).valueOf("argument") === NaN');
-}
+assert.sameValue(
+  new Number(NaN).valueOf("argument"),
+  NaN,
+  "NaN"
+);
 
 //CHECK#7
 if((new Number(Number.POSITIVE_INFINITY)).valueOf("argument") !== Number.POSITIVE_INFINITY){
diff --git a/test/built-ins/Object/S9.9_A4.js b/test/built-ins/Object/S9.9_A4.js
index 673b8900bcd388cecde9bc5a623d84950742ecad..a2a19160d931edfc70be93317afb442457e5120e 100644
--- a/test/built-ins/Object/S9.9_A4.js
+++ b/test/built-ins/Object/S9.9_A4.js
@@ -132,9 +132,7 @@ if (Object(Number.NEGATIVE_INFINITY).constructor.prototype !== Number.prototype)
 }
 
 // CHECK#25
-if (isNaN(Object(Number.NaN).valueOf()) !== true){
-  $ERROR('#25: Object(Number.NaN).valueOf() === Not-a-Number. Actual: ' + (Object(Number.NaN).valueOf()));
-}
+assert.sameValue(Object(NaN).valueOf(), NaN, "Object(NaN).valueOf()");
 
 // CHECK#26
 if (typeof Object(Number.NaN) !== "object"){
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-63.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-63.js
index 53c841a934516f43347a7bdbb8bbad6d66b82178..0c89597d361bfcb03f74085cf40b66abef56f282 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-63.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-63.js
@@ -15,7 +15,7 @@ Object.defineProperty(obj, "foo", { value: NaN });
 
 Object.defineProperty(obj, "foo", { value: NaN });
 
-assert(isNaN(obj.foo));
+assert.sameValue(obj.foo, NaN);
 
 verifyNotWritable(obj, "foo");
 
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-85.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-85.js
index 22192ade30b7eb82fcf7d5103effef1de0aef33c..1c8a8381001b064aeb00418d2a68b130f2bbde43 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-85.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-85.js
@@ -24,7 +24,7 @@ Object.defineProperty(obj, "foo", {
     configurable: false
 });
 
-assert(isNaN(obj.foo)); 
+assert.sameValue(obj.foo, NaN);
 
 verifyNotWritable(obj, "foo");
 
diff --git a/test/built-ins/String/prototype/charCodeAt/S15.5.4.5_A2.js b/test/built-ins/String/prototype/charCodeAt/S15.5.4.5_A2.js
index d34f9c58fd9d23339b44973fff2cd428ba3ac184..67de5ee2e3e7e135c7314e5f73897fd42c5179e5 100644
--- a/test/built-ins/String/prototype/charCodeAt/S15.5.4.5_A2.js
+++ b/test/built-ins/String/prototype/charCodeAt/S15.5.4.5_A2.js
@@ -15,10 +15,4 @@ __FACTORY.prototype.charCodeAt = String.prototype.charCodeAt;
 
 var __instance = new __FACTORY;
 
-//////////////////////////////////////////////////////////////////////////////
-//CHECK#1
-if (!isNaN(__instance.charCodeAt(-1))) {
-  $ERROR('#1: function __FACTORY(){}; __FACTORY.prototype.charCodeAt = String.prototype.charCodeAt; __instance = new __FACTORY; isNaN(__instance.charCodeAt(-1)) return true. Actual: '+isNaN(__instance.charCodeAt(-1)));
-}
-//
-//////////////////////////////////////////////////////////////////////////////
+assert.sameValue(__instance.charCodeAt(-1), NaN);
diff --git a/test/built-ins/String/prototype/charCodeAt/S15.5.4.5_A3.js b/test/built-ins/String/prototype/charCodeAt/S15.5.4.5_A3.js
index 911fffa11681cbf5dfb37e36d9f59a01a9334fed..edb13b9f0d754ab5c7f31ed8f064f797fbe225af 100644
--- a/test/built-ins/String/prototype/charCodeAt/S15.5.4.5_A3.js
+++ b/test/built-ins/String/prototype/charCodeAt/S15.5.4.5_A3.js
@@ -11,10 +11,4 @@ description: pos is bigger of string length
 
 var __instance = new String("ABC");
 
-//////////////////////////////////////////////////////////////////////////////
-//CHECK#1
-if (!isNaN(__instance.charCodeAt(3))) {
-  $ERROR('#1: __instance = new String("ABC"); isNaN(__instance.charCodeAt(3)) return true. Actual: '+isNaN(__instance.charCodeAt(3)));
-}
-//
-//////////////////////////////////////////////////////////////////////////////
+assert.sameValue(__instance.charCodeAt(3), NaN);
diff --git a/test/built-ins/TypedArray/prototype/sort/sorted-values-nan.js b/test/built-ins/TypedArray/prototype/sort/sorted-values-nan.js
index 884654a0b3d0de83dfde63095c34830dc01d5b5b..6f5dd52f76924040308161ad2c943760ab49913f 100644
--- a/test/built-ins/TypedArray/prototype/sort/sorted-values-nan.js
+++ b/test/built-ins/TypedArray/prototype/sort/sorted-values-nan.js
@@ -23,8 +23,8 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(sample[0], 0, "#1 [0]");
   assert.sameValue(sample[1], 1, "#1 [1]");
   assert.sameValue(sample[2], 2, "#1 [2]");
-  assert(Number.isNaN(sample[3]), "#1 [3]");
-  assert(Number.isNaN(sample[4]), "#1 [4]");
+  assert.sameValue(sample[3], NaN, "#1 [3]");
+  assert.sameValue(sample[4], NaN, "#1 [4]");
 
   sample = new TA([3, NaN, NaN, Infinity, 0, -Infinity, 2]).sort();
   assert.sameValue(sample[0], -Infinity, "#2 [0]");
@@ -32,6 +32,6 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(sample[2], 2, "#2 [2]");
   assert.sameValue(sample[3], 3, "#2 [3]");
   assert.sameValue(sample[4], Infinity, "#2 [4]");
-  assert(Number.isNaN(sample[5]), "#2 [5]");
-  assert(Number.isNaN(sample[6]), "#2 [6]");
+  assert.sameValue(sample[5], NaN, "#2 [5]");
+  assert.sameValue(sample[6], NaN, "#2 [6]");
 }, [Float64Array, Float32Array]);
diff --git a/test/built-ins/parseFloat/15.1.2.3-2-1.js b/test/built-ins/parseFloat/15.1.2.3-2-1.js
index ce12834c8fd840ff23202ff7ef58f7a26fcd1203..db37bc32523f4457a1f1b6824fbaf546b41ac2bf 100644
--- a/test/built-ins/parseFloat/15.1.2.3-2-1.js
+++ b/test/built-ins/parseFloat/15.1.2.3-2-1.js
@@ -8,5 +8,4 @@ description: >
     does not contain any such characters
 ---*/
 
-assert(isNaN(parseFloat("")), 'isNaN(parseFloat("")) !== true');
 assert.sameValue(parseFloat(""), NaN, 'parseFloat("")');
diff --git a/test/built-ins/parseFloat/S15.1.2.3_A1_T1.js b/test/built-ins/parseFloat/S15.1.2.3_A1_T1.js
index fc7ac7102eb0c938a6884b100cf2989944cfb7c2..78b0a673a0fc2dd9721ecbbb46a2e3c6dcb2ff06 100644
--- a/test/built-ins/parseFloat/S15.1.2.3_A1_T1.js
+++ b/test/built-ins/parseFloat/S15.1.2.3_A1_T1.js
@@ -7,12 +7,5 @@ es5id: 15.1.2.3_A1_T1
 description: Checking for boolean primitive
 ---*/
 
-//CHECK#1
-if (!(isNaN(parseFloat(true)) && isNaN(parseFloat("NaN")))) {
-  $ERROR('#1: parseFloat(true) === Not-a-Number; parseFloat("NaN") === Not-a-Number. Actual: ' + (parseFloat("NaN")));
-}
-
-//CHECK#2
-if (String(parseFloat(false)) !== "NaN") {
-  $ERROR('#2: String(parseFloat(false)) === "NaN". Actual: ' + (String(parseFloat(false))));
-}
+assert.sameValue(parseFloat(true), NaN, "true");
+assert.sameValue(parseFloat(false), NaN, "false");
diff --git a/test/built-ins/parseFloat/S15.1.2.3_A1_T3.js b/test/built-ins/parseFloat/S15.1.2.3_A1_T3.js
index 1a74bd1a91e65b45644ffedd3ccc6bac8d613031..fe461240fee77b2e1e3e4e733a515f0ebd75a762 100644
--- a/test/built-ins/parseFloat/S15.1.2.3_A1_T3.js
+++ b/test/built-ins/parseFloat/S15.1.2.3_A1_T3.js
@@ -7,23 +7,5 @@ es5id: 15.1.2.3_A1_T3
 description: Checking for undefined and null
 ---*/
 
-//CHECK#1
-if (!(isNaN(parseFloat(undefined)) && isNaN(parseFloat("NaN")))) {
-  $ERROR('#1: parseFloat(undefined) === Not-a-Number; parseFloat("NaN") === Not-a-Number. Actual: ' + (parseFloat("NaN")));
-}
-
-//CHECK#2
-if (!(isNaN(parseFloat(null)) && isNaN(parseFloat("NaN")))) {
-  $ERROR('#2: parseFloat(null) === Not-a-Number; parseFloat("NaN") === Not-a-Number. Actual: ' + (parseFloat("NaN")));
-}
-
-
-//CHECK#3
-if (String(parseFloat(undefined)) !== "NaN") {
-  $ERROR('#3: String(parseFloat(undefined)) === "NaN". Actual: ' + (String(parseFloat(undefined))));
-}
-
-//CHECK#4
-if (String(parseFloat(null)) !== "NaN") {
-  $ERROR('#4: String(parseFloat(null)) === "NaN". Actual: ' + (String(parseFloat(null))));
-}
+assert.sameValue(parseFloat(undefined), NaN, "undefined");
+assert.sameValue(parseFloat(null), NaN, "null");
diff --git a/test/built-ins/parseFloat/S15.1.2.3_A1_T4.js b/test/built-ins/parseFloat/S15.1.2.3_A1_T4.js
index c06b07070a1ef029f0b9bf1fed77ec6c4fcd6c8e..39f42382e3d5ad296748032631160a648dcdf252 100644
--- a/test/built-ins/parseFloat/S15.1.2.3_A1_T4.js
+++ b/test/built-ins/parseFloat/S15.1.2.3_A1_T4.js
@@ -7,12 +7,5 @@ es5id: 15.1.2.3_A1_T4
 description: Checking for Boolean object
 ---*/
 
-//CHECK#1
-if (!(isNaN(parseFloat(new Boolean(true))) && isNaN(parseFloat("NaN")))) {
-  $ERROR('#1: parseFloat(new Boolean(true)) === Not-a-Number; parseFloat("NaN") === Not-a-Number. Actual: ' + (parseFloat("NaN")));
-}
-
-//CHECK#2
-if (String(parseFloat(new Boolean(false))) !== "NaN") {
-  $ERROR('#2: String(parseFloat(new Boolean(false))) === "NaN". Actual: ' + (String(parseFloat(new Boolean(false)))));
-}
+assert.sameValue(parseFloat(new Boolean(true)), NaN, "new Boolean(true)");
+assert.sameValue(parseFloat(new Boolean(false)), NaN, "new Boolean(false)");
diff --git a/test/built-ins/parseFloat/S15.1.2.3_A1_T7.js b/test/built-ins/parseFloat/S15.1.2.3_A1_T7.js
index 9cee05939fb5557c612c83582a723d49b706e73d..06a1221bd221d0948c7294e5887cbd7c19123b6e 100644
--- a/test/built-ins/parseFloat/S15.1.2.3_A1_T7.js
+++ b/test/built-ins/parseFloat/S15.1.2.3_A1_T7.js
@@ -9,9 +9,7 @@ description: If Type(value) is Object, evaluate ToPrimitive(value, String)
 
 //CHECK#1
 var object = {valueOf: function() {return 1}};
-if (isNaN(parseFloat(object)) !== true) {
-  $ERROR('#1: var object = {valueOf: function() {return 1}}; parseFloat(object) === Not-a-Number. Actual: ' + (parseFloat(object)));
-}
+assert.sameValue(parseFloat(object), NaN, "{valueOf: function() {return 1}}");
 
 //CHECK#2
 var object = {valueOf: function() {return 1}, toString: function() {return 0}};
diff --git a/test/built-ins/parseFloat/S15.1.2.3_A2_T1.js b/test/built-ins/parseFloat/S15.1.2.3_A2_T1.js
index ef0038ba89dd17e99501d9752364d5738a6ec75b..731e2646071921362913d193d3f263b6146dd3f7 100644
--- a/test/built-ins/parseFloat/S15.1.2.3_A2_T1.js
+++ b/test/built-ins/parseFloat/S15.1.2.3_A2_T1.js
@@ -33,6 +33,4 @@ if (parseFloat("			\u0009			\u0009-1.1") !== parseFloat("-1.1")) {
 }
 
 //CHECK#6
-if (isNaN(parseFloat("\u0009")) !== true) {
-  $ERROR('#6: parseFloat("\\u0009") === Not-a-Number. Actual: ' + (parseFloat("\u0009")));
-}
+assert.sameValue(parseFloat("\u0009"), NaN, "'\u0009'");
diff --git a/test/built-ins/parseFloat/S15.1.2.3_A2_T10.js b/test/built-ins/parseFloat/S15.1.2.3_A2_T10.js
index 5ffac8f0b112fefc6dd838753c87d427e88bf7e6..5b72b50beacab4e8a0b317d76abe140ef51c3367 100644
--- a/test/built-ins/parseFloat/S15.1.2.3_A2_T10.js
+++ b/test/built-ins/parseFloat/S15.1.2.3_A2_T10.js
@@ -8,12 +8,14 @@ description: "StrWhiteSpaceChar :: USP"
 ---*/
 
 //CHECK#
+var n;
 var count = 0;
 var errorCount = 0;
 var uspU = ["\u1680", "\u180E", "\u2000", "\u2001", "\u2002", "\u2003", "\u2004", "\u2005", "\u2006", "\u2007", "\u2008", "\u2009", "\u200A", "\u202F", "\u205F", "\u3000"];
 var uspS = ["1680", "180E", "2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009", "200A", "202F", "205F", "3000"];
 for (var index = 0; index < uspU.length; index++) {
   var result = true;  
+  n = false;
   if (parseFloat(uspU[index] + "1.1") !== parseFloat("1.1")) {
     $ERROR('#1.' +  uspS[index] + ' ');
     result = false;
@@ -22,7 +24,8 @@ for (var index = 0; index < uspU.length; index++) {
     $ERROR('#2.' +  uspS[index] + ' ');
     result = false;
   }
-  if (isNaN(parseFloat(uspU[index])) !== true) {
+  n = parseFloat(uspU[index]);
+  if (!(n !== n)) {
     $ERROR('#3.' +  uspS[index] + ' ');
     result = false;
   }
diff --git a/test/built-ins/parseFloat/S15.1.2.3_A2_T2.js b/test/built-ins/parseFloat/S15.1.2.3_A2_T2.js
index 2d39f4b532320b441313d0112a16e8ece6e1f4e0..abde61509a86ccd6ae2e4047d58f189c9a758e8f 100644
--- a/test/built-ins/parseFloat/S15.1.2.3_A2_T2.js
+++ b/test/built-ins/parseFloat/S15.1.2.3_A2_T2.js
@@ -33,6 +33,4 @@ if (parseFloat("       \u0020       \u0020-1.1") !== parseFloat("-1.1")) {
 }
 
 //CHECK#6
-if (isNaN(parseFloat("\u0020")) !== true) {
-  $ERROR('#6: parseFloat("\\u0020") === Not-a-Number. Actual: ' + (parseFloat("\u0020")));
-}
+assert.sameValue(parseFloat("\u0020"), NaN);
diff --git a/test/built-ins/parseFloat/S15.1.2.3_A2_T3.js b/test/built-ins/parseFloat/S15.1.2.3_A2_T3.js
index 4c325f6ac04ccbdd74363962b2cff9e02c8519af..8d5c956c2341accbd1dc4ff71ecf588b245a353b 100644
--- a/test/built-ins/parseFloat/S15.1.2.3_A2_T3.js
+++ b/test/built-ins/parseFloat/S15.1.2.3_A2_T3.js
@@ -18,6 +18,4 @@ if (parseFloat("\u00A0\u00A0-1.1") !== parseFloat("-1.1")) {
 }
 
 //CHECK#3
-if (isNaN(parseFloat("\u00A0")) !== true) {
-  $ERROR('#3: parseFloat("\\u00A0") === Not-a-Number. Actual: ' + (parseFloat("\u00A0")));
-}
+assert.sameValue(parseFloat("\u00A0"), NaN);
diff --git a/test/built-ins/parseFloat/S15.1.2.3_A2_T4.js b/test/built-ins/parseFloat/S15.1.2.3_A2_T4.js
index 2e926fa06d9d309c1bd70d31237e21ce2c837b46..379621a3a879cf8d788fe690e5f953b92f5ba271 100644
--- a/test/built-ins/parseFloat/S15.1.2.3_A2_T4.js
+++ b/test/built-ins/parseFloat/S15.1.2.3_A2_T4.js
@@ -18,6 +18,4 @@ if (parseFloat("\u000C\u000C-1.1") !== parseFloat("-1.1")) {
 }
 
 //CHECK#3
-if (isNaN(parseFloat("\u000C")) !== true) {
-  $ERROR('#3: parseFloat("\\u000C") === Not-a-Number. Actual: ' + (parseFloat("\u000C")));
-}
+assert.sameValue(parseFloat("\u000C"), NaN);
diff --git a/test/built-ins/parseFloat/S15.1.2.3_A2_T5.js b/test/built-ins/parseFloat/S15.1.2.3_A2_T5.js
index 5ee72d6eec589aad8b54de237bd3aaa7cd859e49..9ba570478a4f5fb1572e758535b706b890c73d3b 100644
--- a/test/built-ins/parseFloat/S15.1.2.3_A2_T5.js
+++ b/test/built-ins/parseFloat/S15.1.2.3_A2_T5.js
@@ -18,6 +18,4 @@ if (parseFloat("\u000B\u000B-1.1") !== parseFloat("-1.1")) {
 }
 
 //CHECK#3
-if (isNaN(parseFloat("\u000B")) !== true) {
-  $ERROR('#3: parseFloat("\\u000B") === Not-a-Number. Actual: ' + (parseFloat("\u000B")));
-}
+assert.sameValue(parseFloat("\u000B"), NaN);
diff --git a/test/built-ins/parseFloat/S15.1.2.3_A2_T6.js b/test/built-ins/parseFloat/S15.1.2.3_A2_T6.js
index 269a7d34898354ebe9f2455b6554a37c5a0fa045..d9c66c77dfed7ce7814d1a6ccc2efa2aebad218a 100644
--- a/test/built-ins/parseFloat/S15.1.2.3_A2_T6.js
+++ b/test/built-ins/parseFloat/S15.1.2.3_A2_T6.js
@@ -18,6 +18,4 @@ if (parseFloat("\u000D\u000D-1.1") !== parseFloat("-1.1")) {
 }
 
 //CHECK#3
-if (isNaN(parseFloat("\u000D")) !== true) {
-  $ERROR('#3: parseFloat("\\u000D") === Not-a-Number. Actual: ' + (parseFloat("\u000D")));
-}
+assert.sameValue(parseFloat("\u000D"), NaN);
diff --git a/test/built-ins/parseFloat/S15.1.2.3_A2_T7.js b/test/built-ins/parseFloat/S15.1.2.3_A2_T7.js
index 7646fbfbfeefa70f3af916944640cc6ed50402d4..8a4367df2ddbda31533e4536c54b379e67ff37ab 100644
--- a/test/built-ins/parseFloat/S15.1.2.3_A2_T7.js
+++ b/test/built-ins/parseFloat/S15.1.2.3_A2_T7.js
@@ -18,6 +18,4 @@ if (parseFloat("\u000A\u000A-1.1") !== parseFloat("-1.1")) {
 }
 
 //CHECK#3
-if (isNaN(parseFloat("\u000A")) !== true) {
-  $ERROR('#3: parseFloat("\\u000A") === Not-a-Number. Actual: ' + (parseFloat("\u000A")));
-}
+assert.sameValue(parseFloat("\u000A"), NaN);
diff --git a/test/built-ins/parseFloat/S15.1.2.3_A2_T8.js b/test/built-ins/parseFloat/S15.1.2.3_A2_T8.js
index ebc7198d5672e3746a3026c77bdb97e6c05948e7..a9e9241186a6aecc91a67063bfac9a6fff548928 100644
--- a/test/built-ins/parseFloat/S15.1.2.3_A2_T8.js
+++ b/test/built-ins/parseFloat/S15.1.2.3_A2_T8.js
@@ -18,6 +18,4 @@ if (parseFloat("\u2028\u2028-1.1") !== parseFloat("-1.1")) {
 }
 
 //CHECK#3
-if (isNaN(parseFloat("\u2028")) !== true) {
-  $ERROR('#3: parseFloat("\\u2028") === Not-a-Number. Actual: ' + (parseFloat("\u2028")));
-}
+assert.sameValue(parseFloat("\u2028"), NaN);
diff --git a/test/built-ins/parseFloat/S15.1.2.3_A2_T9.js b/test/built-ins/parseFloat/S15.1.2.3_A2_T9.js
index 9973b3f16be493ad3c2cb6b7a4a47adac6f412ee..a3d863c58bae4a12a43d65ac046299436758e736 100644
--- a/test/built-ins/parseFloat/S15.1.2.3_A2_T9.js
+++ b/test/built-ins/parseFloat/S15.1.2.3_A2_T9.js
@@ -18,6 +18,4 @@ if (parseFloat("\u2029\u2029-1.1") !== parseFloat("-1.1")) {
 }
 
 //CHECK#3
-if (isNaN(parseFloat("\u2029")) !== true) {
-  $ERROR('#3: parseFloat("\\u2029") === Not-a-Number. Actual: ' + (parseFloat("\u2029")));
-}
+assert.sameValue(parseFloat("\u2029"), NaN);
diff --git a/test/built-ins/parseFloat/S15.1.2.3_A3_T1.js b/test/built-ins/parseFloat/S15.1.2.3_A3_T1.js
index 594af67c5d0ef3740ebd1eb8e64b0336157842c6..99998f42228dedea0ddb0b54402b5c0951395f87 100644
--- a/test/built-ins/parseFloat/S15.1.2.3_A3_T1.js
+++ b/test/built-ins/parseFloat/S15.1.2.3_A3_T1.js
@@ -9,37 +9,7 @@ es5id: 15.1.2.3_A3_T1
 description: parseFloat("some string") return NaN
 ---*/
 
-//CHECK#1
-if (isNaN(parseFloat("str")) !== true) {
-  $ERROR('#1: parseFloat("str") === Not-a-Number. Actual: ' + (parseFloat("str")));
-}
-
-//CHECK#2
-if (isNaN(parseFloat("s1")) !== true) {
-  $ERROR('#2: parseFloat("s1") === Not-a-Number. Actual: ' + (parseFloat("s1")));
-}
-
-//CHECK#3
-if (isNaN(parseFloat("")) !== true) {
-  $ERROR('#3: parseFloat("") === Not-a-Number. Actual: ' + (parseFloat("")));
-}
-
-//CHECK#4
-if (String(parseFloat("str")) !== "NaN") {
-  $ERROR('#4: String(parseFloat("str")) === "NaN". Actual: ' + (String(parseFloat("str"))));
-}
-
-//CHECK#5
-if (String(parseFloat("s1")) !== "NaN") {
-  $ERROR('#5: String(parseFloat("s1")) === "NaN". Actual: ' + (String(parseFloat("s1"))));
-}
-
-//CHECK#6
-if (String(parseFloat("")) !== "NaN") {
-  $ERROR('#6: String(parseFloat("")) === "NaN". Actual: ' + (String(parseFloat(""))));
-}
-
-//CHECK#7
-if (String(parseFloat("+")) !== "NaN") {
-  $ERROR('#7: String(parseFloat("+")) === "NaN". Actual: ' + (String(parseFloat("+"))));
-}
+assert.sameValue(parseFloat("str"), NaN, "str");
+assert.sameValue(parseFloat("s1"), NaN, "s1");
+assert.sameValue(parseFloat(""), NaN, "");
+assert.sameValue(parseFloat("+"), NaN, "+");
diff --git a/test/built-ins/parseFloat/S15.1.2.3_A3_T2.js b/test/built-ins/parseFloat/S15.1.2.3_A3_T2.js
index 4115548d18a213d786cf5a9969724e367aa3f527..47520f40c13f632f76fef8e2f2706d009fe9e3d1 100644
--- a/test/built-ins/parseFloat/S15.1.2.3_A3_T2.js
+++ b/test/built-ins/parseFloat/S15.1.2.3_A3_T2.js
@@ -9,52 +9,9 @@ es5id: 15.1.2.3_A3_T2
 description: parseFloat("wrong number format with ExponentIndicator") return NaN
 ---*/
 
-//CHECK#1
-if (isNaN(parseFloat("e1")) !== true) {
-  $ERROR('#1: parseFloat("e1") === Not-a-Number. Actual: ' + (parseFloat("e1")));
-}
-
-//CHECK#2
-if (isNaN(parseFloat("e-1")) !== true) {
-  $ERROR('#2: parseFloat("e-1") === Not-a-Number. Actual: ' + (parseFloat("e-1")));
-}
-
-//CHECK#3
-if (isNaN(parseFloat("E+1")) !== true) {
-  $ERROR('#3: parseFloat("E+1") === Not-a-Number. Actual: ' + (parseFloat("E+1")));
-}
-
-//CHECK#4
-if (isNaN(parseFloat("E0")) !== true) {
-  $ERROR('#4: parseFloat("E0") === Not-a-Number. Actual: ' + (parseFloat("E0")));
-}
-
-//CHECK#5
-if (String(parseFloat("e1")) !== "NaN") {
-  $ERROR('#5: String(parseFloat("e1")) === "NaN". Actual: ' + (String(parseFloat("e1"))));
-}
-
-//CHECK#6
-if (String(parseFloat("e-1")) !== "NaN") {
-  $ERROR('#6: String(parseFloat("e-1")) === "NaN". Actual: ' + (String(parseFloat("e-1"))));
-}
-
-//CHECK#7
-if (String(parseFloat("E+1")) !== "NaN") {
-  $ERROR('#73: String(parseFloat("E+1")) === "NaN". Actual: ' + (String(parseFloat("E+1"))));
-}
-
-//CHECK#8
-if (String(parseFloat("E0")) !== "NaN") {
-  $ERROR('#8: String(parseFloat("E0")) === "NaN". Actual: ' + (String(parseFloat("E0"))));
-}
-
-//CHECK#9
-if (isNaN(parseFloat("-.e-1")) !== true) {
-  $ERROR('#9: parseFloat("-.e-1") === Not-a-Number. Actual: ' + (parseFloat("-.e-1")));
-}
-
-//CHECK#10
-if (isNaN(parseFloat(".e1")) !== true) {
-  $ERROR('#10: parseFloat(".e1") === Not-a-Number. Actual: ' + (parseFloat(".e1")));
-}
+assert.sameValue(parseFloat("e1"), NaN, "e1");
+assert.sameValue(parseFloat("e-1"), NaN, "e-1");
+assert.sameValue(parseFloat("E+1"), NaN, "E+1");
+assert.sameValue(parseFloat("E0"), NaN, "E0");
+assert.sameValue(parseFloat("-.e-1"), NaN, "-.e-1");
+assert.sameValue(parseFloat(".e1"), NaN, ".e1");
diff --git a/test/built-ins/parseFloat/S15.1.2.3_A3_T3.js b/test/built-ins/parseFloat/S15.1.2.3_A3_T3.js
index 667c5a8d6328e24918feaead42cf41632ba6c916..632f4f407ad875c5de3bfaf8e6ea6c229f4c18e7 100644
--- a/test/built-ins/parseFloat/S15.1.2.3_A3_T3.js
+++ b/test/built-ins/parseFloat/S15.1.2.3_A3_T3.js
@@ -9,42 +9,7 @@ es5id: 15.1.2.3_A3_T3
 description: parseFloat("wrong numbr format") return NaN
 ---*/
 
-//CHECK#1
-if (isNaN(parseFloat(".x")) !== true) {
-  $ERROR('#1: parseFloat(".x") === Not-a-Number. Actual: ' + (parseFloat(".x")));
-}
-
-//CHECK#2
-if (isNaN(parseFloat("+x")) !== true) {
-  $ERROR('#2: parseFloat("+x") === Not-a-Number. Actual: ' + (parseFloat("+x")));
-}
-
-//CHECK#3
-if (isNaN(parseFloat("infinity")) !== true) {
-  $ERROR('#3: parseFloat("infinity") === Not-a-Number. Actual: ' + (parseFloat("infinity")));
-}
-
-//CHECK#4
-if (isNaN(parseFloat("A")) !== true) {
-  $ERROR('#4: parseFloat("A") === Not-a-Number. Actual: ' + (parseFloat("A")));
-}
-
-//CHECK#5
-if (String(parseFloat(".s")) !== "NaN") {
-  $ERROR('#5: String(parseFloat(".s")) === "NaN". Actual: ' + (String(parseFloat(".s"))));
-}
-
-//CHECK#6
-if (String(parseFloat("+x")) !== "NaN") {
-  $ERROR('#6: String(parseFloat("+x")) === "NaN". Actual: ' + (String(parseFloat("+x"))));
-}
-
-//CHECK#7
-if (String(parseFloat("infinity")) !== "NaN") {
-  $ERROR('#73: String(parseFloat("infinity")) === "NaN". Actual: ' + (String(parseFloat("infinity"))));
-}
-
-//CHECK#8
-if (String(parseFloat("A")) !== "NaN") {
-  $ERROR('#8: String(parseFloat("A")) === "NaN". Actual: ' + (String(parseFloat("A"))));
-}
+assert.sameValue(parseFloat(".x"), NaN, ".x");
+assert.sameValue(parseFloat("+x"), NaN, "+x");
+assert.sameValue(parseFloat("infinity"), NaN, "infinity");
+assert.sameValue(parseFloat("A"), NaN, "A");
diff --git a/test/built-ins/parseInt/15.1.2.2-2-1.js b/test/built-ins/parseInt/15.1.2.2-2-1.js
index b87635ea9e99476bddd19acc7e9362120c3ace73..e896fca4cd972671acf8a5f887f8d5ca80f78211 100644
--- a/test/built-ins/parseInt/15.1.2.2-2-1.js
+++ b/test/built-ins/parseInt/15.1.2.2-2-1.js
@@ -8,5 +8,4 @@ description: >
     contain any such characters
 ---*/
 
-assert(isNaN(parseInt("")), 'isNaN(parseInt("")) !== true');
 assert.sameValue(parseInt(""), NaN, 'parseInt("")');
diff --git a/test/built-ins/parseInt/S15.1.2.2_A1_T1.js b/test/built-ins/parseInt/S15.1.2.2_A1_T1.js
index d529674511653b72d8ca134db5f399a8cca3e938..647f7ed102a17aec44f23a2b81a9772c7b5f4de9 100644
--- a/test/built-ins/parseInt/S15.1.2.2_A1_T1.js
+++ b/test/built-ins/parseInt/S15.1.2.2_A1_T1.js
@@ -7,12 +7,5 @@ es5id: 15.1.2.2_A1_T1
 description: Checking for boolean primitive
 ---*/
 
-//CHECK#1
-if (!(isNaN(parseInt(true)) && isNaN(parseInt("NaN")))) {
-  $ERROR('#1: parseInt(true) === Not-a-Number; parseInt("NaN") === Not-a-Number. Actual: ' + (parseInt("NaN")));
-}
-
-//CHECK#2
-if (String(parseInt(false)) !== "NaN") {
-  $ERROR('#2: String(parseInt(false)) === "NaN". Actual: ' + (String(parseInt(false))));
-}
+assert.sameValue(parseInt(true), NaN, "true");
+assert.sameValue(parseInt(false), NaN, "false");
diff --git a/test/built-ins/parseInt/S15.1.2.2_A1_T3.js b/test/built-ins/parseInt/S15.1.2.2_A1_T3.js
index d3669e503d2873f1b14c3775b678f83d6309a6eb..0d7e55e27464cc6a8247a9d41556a0ec3a6c568e 100644
--- a/test/built-ins/parseInt/S15.1.2.2_A1_T3.js
+++ b/test/built-ins/parseInt/S15.1.2.2_A1_T3.js
@@ -7,22 +7,5 @@ es5id: 15.1.2.2_A1_T3
 description: Checking for undefined and null
 ---*/
 
-//CHECK#1
-if (!(isNaN(parseInt(undefined)) && isNaN(parseInt("NaN")))) {
-  $ERROR('#1: parseInt(undefined) === Not-a-Number; parseInt("NaN") === Not-a-Number. Actual: ' + (parseInt("NaN")));
-}
-
-//CHECK#2
-if (!(isNaN(parseInt(null)) && isNaN(parseInt("NaN")))) {
-  $ERROR('#2: parseInt(null) === Not-a-Number; parseInt("NaN") === Not-a-Number. Actual: ' + (parseInt("NaN")));
-}
-
-//CHECK#3
-if (String(parseInt(undefined)) !== "NaN") {
-  $ERROR('#3: String(parseInt(undefined)) === "NaN". Actual: ' + (String(parseInt(undefined))));
-}
-
-//CHECK#4
-if (String(parseInt(null)) !== "NaN") {
-  $ERROR('#4: String(parseInt(null)) === "NaN". Actual: ' + (String(parseInt(null))));
-}
+assert.sameValue(parseInt(undefined), NaN, "undefined");
+assert.sameValue(parseInt(null), NaN, "null");
diff --git a/test/built-ins/parseInt/S15.1.2.2_A1_T4.js b/test/built-ins/parseInt/S15.1.2.2_A1_T4.js
index 0a54551ea03e7cd5448baf86190e17d42a7e6279..550b14d5bd18a88f8f82193991c575e4e458c206 100644
--- a/test/built-ins/parseInt/S15.1.2.2_A1_T4.js
+++ b/test/built-ins/parseInt/S15.1.2.2_A1_T4.js
@@ -7,12 +7,5 @@ es5id: 15.1.2.2_A1_T4
 description: Checking for Boolean object
 ---*/
 
-//CHECK#1
-if (!(isNaN(parseInt(new Boolean(true))) && isNaN(parseInt("NaN")))) {
-  $ERROR('#1: parseInt(new Boolean(true)) === Not-a-Number; parseInt("NaN") === Not-a-Number. Actual: ' + (parseInt("NaN")));
-}
-
-//CHECK#2
-if (String(parseInt(new Boolean(false))) !== "NaN") {
-  $ERROR('#2: String(parseInt(new Boolean(false))) === "NaN". Actual: ' + (String(parseInt(new Boolean(false)))));
-}
+assert.sameValue(parseInt(new Boolean(true)), NaN, "new Boolean(true)");
+assert.sameValue(parseInt(new Boolean(false)), NaN, "new Boolean(false)");
diff --git a/test/built-ins/parseInt/S15.1.2.2_A1_T7.js b/test/built-ins/parseInt/S15.1.2.2_A1_T7.js
index 7b72549c0b0cfa2af9ff06bb945967a6cdd91203..e0a60c87f84c3a2fb5fb8405a41c9ae32db16a10 100644
--- a/test/built-ins/parseInt/S15.1.2.2_A1_T7.js
+++ b/test/built-ins/parseInt/S15.1.2.2_A1_T7.js
@@ -9,9 +9,7 @@ description: If Type(value) is Object, evaluate ToPrimitive(value, String)
 
 //CHECK#1
 var object = {valueOf: function() {return 1}};
-if (isNaN(parseInt(object)) !== true) {
-  $ERROR('#1: var object = {valueOf: function() {return 1}}; parseInt(object) === Not-a-Number. Actual: ' + (parseInt(object)));
-}
+assert.sameValue(parseInt(object), NaN, "{valueOf: function() {return 1}}");
 
 //CHECK#2
 var object = {valueOf: function() {return 1}, toString: function() {return 0}};
diff --git a/test/built-ins/parseInt/S15.1.2.2_A2_T1.js b/test/built-ins/parseInt/S15.1.2.2_A2_T1.js
index f7705d94bd67ec2ac7ec4f429b8d81b71680b075..2b42ed5bb1076c9832b2004239a47280ed1510cf 100644
--- a/test/built-ins/parseInt/S15.1.2.2_A2_T1.js
+++ b/test/built-ins/parseInt/S15.1.2.2_A2_T1.js
@@ -33,6 +33,4 @@ if (parseInt("			\u0009			\u0009-1") !== parseInt("-1")) {
 }
 
 //CHECK#6
-if (isNaN(parseInt("\u0009")) !== true) {
-  $ERROR('#6: parseInt("\\u0009") === Not-a-Number. Actual: ' + (parseInt("\u0009")));
-}
+assert.sameValue(parseInt("\u0009"), NaN);
diff --git a/test/built-ins/parseInt/S15.1.2.2_A2_T10.js b/test/built-ins/parseInt/S15.1.2.2_A2_T10.js
index cd678c1918a85e28a0bda639e36446043e1cc5c6..e23704e3bec8bb978e7aa12830d423182d6348be 100644
--- a/test/built-ins/parseInt/S15.1.2.2_A2_T10.js
+++ b/test/built-ins/parseInt/S15.1.2.2_A2_T10.js
@@ -8,6 +8,7 @@ description: "StrWhiteSpaceChar :: USP"
 ---*/
 
 //CHECK#
+var n;
 var count = 0;
 var errorCount = 0;
 var uspU = ["\u1680", "\u180E", "\u2000", "\u2001", "\u2002", "\u2003", "\u2004", "\u2005", "\u2006", "\u2007", "\u2008", "\u2009", "\u200A", "\u202F", "\u205F", "\u3000"];
@@ -15,6 +16,7 @@ var uspS = ["1680", "180E", "2000", "2001", "2002", "2003", "2004", "2005", "200
 
 for (var index = 0; index < uspU.length; index++) {
   var result = true;
+  n = false;
   if (parseInt(uspU[index] + "1") !== parseInt("1")) {
     $ERROR('#1.' +  uspS[index] + ' ');
     result = false;
@@ -23,7 +25,8 @@ for (var index = 0; index < uspU.length; index++) {
     $ERROR('#2.' +  uspS[index] + ' ');
     result = false;
   }
-  if (isNaN(parseInt(uspU[index])) !== true) {
+  n = parseInt(uspU[index]);
+  if (!(n !== n)) {
     $ERROR('#3.' +  uspS[index] + ' ');
     result = false;
   }
diff --git a/test/built-ins/parseInt/S15.1.2.2_A2_T2.js b/test/built-ins/parseInt/S15.1.2.2_A2_T2.js
index 7e928a260fea761f25036716272b942e77a64d78..5ffe23c15230c8d266173707d0948d2e44bb41a5 100644
--- a/test/built-ins/parseInt/S15.1.2.2_A2_T2.js
+++ b/test/built-ins/parseInt/S15.1.2.2_A2_T2.js
@@ -33,6 +33,4 @@ if (parseInt("       \u0020       \u0020-1") !== parseInt("-1")) {
 }
 
 //CHECK#6
-if (isNaN(parseInt("\u0020")) !== true) {
-  $ERROR('#6: parseInt("\\u0020") === Not-a-Number. Actual: ' + (parseInt("\u0020")));
-}
+assert.sameValue(parseInt("\u0020"), NaN);
diff --git a/test/built-ins/parseInt/S15.1.2.2_A2_T3.js b/test/built-ins/parseInt/S15.1.2.2_A2_T3.js
index 810137144516886d0a869a08b0ee94a9f4f5e3be..1ef28fbbf3808c71336f7fbf24833ecbe388555d 100644
--- a/test/built-ins/parseInt/S15.1.2.2_A2_T3.js
+++ b/test/built-ins/parseInt/S15.1.2.2_A2_T3.js
@@ -18,6 +18,4 @@ if (parseInt("\u00A0\u00A0-1") !== parseInt("-1")) {
 }
 
 //CHECK#3
-if (isNaN(parseInt("\u00A0")) !== true) {
-  $ERROR('#3: parseInt("\\u00A0") === Not-a-Number. Actual: ' + (parseInt("\u00A0")));
-}
+assert.sameValue(parseInt("\u00A0"), NaN);
diff --git a/test/built-ins/parseInt/S15.1.2.2_A2_T4.js b/test/built-ins/parseInt/S15.1.2.2_A2_T4.js
index 8f2503a8769f45f6e889f3e888b108022f8263fe..9afef55d2c36ea0e581e85e5a8f0dc4ff6099870 100644
--- a/test/built-ins/parseInt/S15.1.2.2_A2_T4.js
+++ b/test/built-ins/parseInt/S15.1.2.2_A2_T4.js
@@ -18,6 +18,4 @@ if (parseInt("\u000C\u000C-1") !== parseInt("-1")) {
 }
 
 //CHECK#3
-if (isNaN(parseInt("\u000C")) !== true) {
-  $ERROR('#3: parseInt("\\u000C") === Not-a-Number. Actual: ' + (parseInt("\u000C")));
-}
+assert.sameValue(parseInt("\u000C"), NaN);
diff --git a/test/built-ins/parseInt/S15.1.2.2_A2_T5.js b/test/built-ins/parseInt/S15.1.2.2_A2_T5.js
index 3180d1d1029fa755c43bed9dc0748b6c6edfa2c8..cc339390dd75f44afdf45fb220b7f2737be50f29 100644
--- a/test/built-ins/parseInt/S15.1.2.2_A2_T5.js
+++ b/test/built-ins/parseInt/S15.1.2.2_A2_T5.js
@@ -18,6 +18,4 @@ if (parseInt("\u000B\u000B-1") !== parseInt("-1")) {
 }
 
 //CHECK#3
-if (isNaN(parseInt("\u000B")) !== true) {
-  $ERROR('#3: parseInt("\\u000B") === Not-a-Number. Actual: ' + (parseInt("\u000B")));
-}
+assert.sameValue(parseInt("\u000B"), NaN);
diff --git a/test/built-ins/parseInt/S15.1.2.2_A2_T6.js b/test/built-ins/parseInt/S15.1.2.2_A2_T6.js
index 1d21f5571678d7530bc2cff1dc20001905bedbb7..35d2a8683a72ffc37a2a950cbb0ec08d086b6784 100644
--- a/test/built-ins/parseInt/S15.1.2.2_A2_T6.js
+++ b/test/built-ins/parseInt/S15.1.2.2_A2_T6.js
@@ -18,6 +18,4 @@ if (parseInt("\u000D\u000D-1") !== parseInt("-1")) {
 }
 
 //CHECK#3
-if (isNaN(parseInt("\u000D")) !== true) {
-  $ERROR('#3: parseInt("\\u000D") === Not-a-Number. Actual: ' + (parseInt("\u000D")));
-}
+assert.sameValue(parseInt("\u000D"), NaN);
diff --git a/test/built-ins/parseInt/S15.1.2.2_A2_T7.js b/test/built-ins/parseInt/S15.1.2.2_A2_T7.js
index c64781bc4b0348bf1f8aeae1b7dfa8ef07acc701..447f1b4e8538777d3d0836fd4a253ddbe3021433 100644
--- a/test/built-ins/parseInt/S15.1.2.2_A2_T7.js
+++ b/test/built-ins/parseInt/S15.1.2.2_A2_T7.js
@@ -18,6 +18,4 @@ if (parseInt("\u000A\u000A-1") !== parseInt("-1")) {
 }
 
 //CHECK#3
-if (isNaN(parseInt("\u000A")) !== true) {
-  $ERROR('#3: parseInt("\\u000A") === Not-a-Number. Actual: ' + (parseInt("\u000A")));
-}
+assert.sameValue(parseInt("\u000A"), NaN);
diff --git a/test/built-ins/parseInt/S15.1.2.2_A2_T8.js b/test/built-ins/parseInt/S15.1.2.2_A2_T8.js
index 4510648431214159d912a1bd971873d22034d6ad..81757da32d0f3d68d0604e915b51afeaf07092e8 100644
--- a/test/built-ins/parseInt/S15.1.2.2_A2_T8.js
+++ b/test/built-ins/parseInt/S15.1.2.2_A2_T8.js
@@ -18,6 +18,4 @@ if (parseInt("\u2028\u2028-1") !== parseInt("-1")) {
 }
 
 //CHECK#3
-if (isNaN(parseInt("\u2028")) !== true) {
-  $ERROR('#3: parseInt("\\u2028") === Not-a-Number. Actual: ' + (parseInt("\u2028")));
-}
+assert.sameValue(parseInt("\u2028"), NaN);
diff --git a/test/built-ins/parseInt/S15.1.2.2_A2_T9.js b/test/built-ins/parseInt/S15.1.2.2_A2_T9.js
index 7a332f7d3a8d5297f15e5981650551e4a0f4351c..588d4c7a789cb7b33abd860397bc76dabcd0507d 100644
--- a/test/built-ins/parseInt/S15.1.2.2_A2_T9.js
+++ b/test/built-ins/parseInt/S15.1.2.2_A2_T9.js
@@ -18,6 +18,4 @@ if (parseInt("\u2029\u2029-1") !== parseInt("-1")) {
 }
 
 //CHECK#3
-if (isNaN(parseInt("\u2029")) !== true) {
-  $ERROR('#3: parseInt("\\u2029") === Not-a-Number. Actual: ' + (parseInt("\u2029")));
-}
+assert.sameValue(parseInt("\u2029"), NaN);
diff --git a/test/built-ins/parseInt/S15.1.2.2_A3.1_T1.js b/test/built-ins/parseInt/S15.1.2.2_A3.1_T1.js
index be42ba08dfbd8325160acb6281c02a58db00e162..517681d82da7164db4a7650f4bf9b9ce820c11c9 100644
--- a/test/built-ins/parseInt/S15.1.2.2_A3.1_T1.js
+++ b/test/built-ins/parseInt/S15.1.2.2_A3.1_T1.js
@@ -13,6 +13,4 @@ if (parseInt("11", false) !== parseInt("11", 10)) {
 }
 
 //CHECK#2
-if (isNaN(parseInt("11", true)) !== true) {
-  $ERROR('#2: parseInt("11", true) === Not-a-Number. Actual: ' + (parseInt("11", true)));
-}
+assert.sameValue(parseInt("11", true), NaN);
diff --git a/test/built-ins/parseInt/S15.1.2.2_A3.1_T4.js b/test/built-ins/parseInt/S15.1.2.2_A3.1_T4.js
index 3dd4d1151f6f3ffcbbbc43fce6289076faf46956..c454aa55e591a380d89df04bf508db604a824e2c 100644
--- a/test/built-ins/parseInt/S15.1.2.2_A3.1_T4.js
+++ b/test/built-ins/parseInt/S15.1.2.2_A3.1_T4.js
@@ -13,6 +13,4 @@ if (parseInt("11", new Boolean(false)) !== parseInt("11", false)) {
 }
 
 //CHECK#2
-if (isNaN(parseInt("11", new Boolean(true))) !== true) {
-  $ERROR('#2: parseInt("11", new Boolean(true)) === Not-a-Number. Actual: ' + (parseInt("11", new Boolean(true))));
-}
+assert.sameValue(parseInt("11", new Boolean(true)), NaN);
diff --git a/test/built-ins/parseInt/S15.1.2.2_A3.2_T3.js b/test/built-ins/parseInt/S15.1.2.2_A3.2_T3.js
index 61118e5f79e10727a37287995a8a372472178d4d..8c7d162eb941a6756fcfd3a923b2659e97631871 100644
--- a/test/built-ins/parseInt/S15.1.2.2_A3.2_T3.js
+++ b/test/built-ins/parseInt/S15.1.2.2_A3.2_T3.js
@@ -18,9 +18,7 @@ if (parseInt("11", 4294967296) !== parseInt("11", 10)) {
 }
 
 //CHECK#3
-if (isNaN(parseInt("11", -2147483650)) !== true) {
-  $ERROR('#3: parseInt("11", 2147483650) === Not-a-Number. Actual: ' + (parseInt("11", 2147483650)));
-}
+assert.sameValue(parseInt("11", -2147483650), NaN, "-2147483650");
 
 //CHECK#4
 if (parseInt("11", -4294967294) !== parseInt("11", 2)) {
diff --git a/test/built-ins/parseInt/S15.1.2.2_A4.2_T1.js b/test/built-ins/parseInt/S15.1.2.2_A4.2_T1.js
index eabf0ada79bf73ba8d380eaa25da2e775016b385..bde38d11b0f858ff3611e9ef924a3bf4c3ddbb1f 100644
--- a/test/built-ins/parseInt/S15.1.2.2_A4.2_T1.js
+++ b/test/built-ins/parseInt/S15.1.2.2_A4.2_T1.js
@@ -7,62 +7,15 @@ es5id: 15.1.2.2_A4.2_T1
 description: R = 1
 ---*/
 
-//CHECK#0
-if (isNaN(parseInt("0", 1)) !== true) {
-  $ERROR('#0: parseInt("0", 1) === Not-a-Number. Actual: ' + (parseInt("0", 1)));
-}  
-
-//CHECK#1
-if (isNaN(parseInt("1", 1)) !== true) {
-  $ERROR('#1: parseInt("1", 1) === Not-a-Number. Actual: ' + (parseInt("1", 1)));
-}  
-
-//CHECK#2
-if (isNaN(parseInt("2", 1)) !== true) {
-  $ERROR('#2: parseInt("2", 1) === Not-a-Number. Actual: ' + (parseInt("2", 1)));
-}  
-
-//CHECK#3
-if (isNaN(parseInt("3", 1)) !== true) {
-  $ERROR('#3: parseInt("3", 1) === Not-a-Number. Actual: ' + (parseInt("3", 1)));
-} 
-
-//CHECK#4
-if (isNaN(parseInt("4", 1)) !== true) {
-  $ERROR('#4: parseInt("4", 1) === Not-a-Number. Actual: ' + (parseInt("4", 1)));
-} 
-
-//CHECK#5
-if (isNaN(parseInt("5", 1)) !== true) {
-  $ERROR('#5: parseInt("5", 1) === Not-a-Number. Actual: ' + (parseInt("5", 1)));
-}  
-
-//CHECK#6
-if (isNaN(parseInt("6", 1)) !== true) {
-  $ERROR('#6: parseInt("6", 1) === Not-a-Number. Actual: ' + (parseInt("6", 1)));
-}  
-
-//CHECK#7
-if (isNaN(parseInt("7", 1)) !== true) {
-  $ERROR('#7: parseInt("7", 1) === Not-a-Number. Actual: ' + (parseInt("7", 1)));
-}  
-
-//CHECK#8
-if (isNaN(parseInt("8", 1)) !== true) {
-  $ERROR('#8: parseInt("8", 1) === Not-a-Number. Actual: ' + (parseInt("8", 1)));
-}  
-
-//CHECK#9
-if (isNaN(parseInt("9", 1)) !== true) {
-  $ERROR('#9: parseInt("9", 1) === Not-a-Number. Actual: ' + (parseInt("9", 1)));
-}  
-
-//CHECK#10
-if (isNaN(parseInt("10", 1)) !== true) {
-  $ERROR('#10: parseInt("10", 1) === Not-a-Number. Actual: ' + (parseInt("10", 1)));
-}  
-
-//CHECK#11
-if (isNaN(parseInt("11", 1)) !== true) {
-  $ERROR('#11: parseInt("11", 1) === Not-a-Number. Actual: ' + (parseInt("11", 1)));
-}
+assert.sameValue(parseInt("0", 1), NaN, "0");
+assert.sameValue(parseInt("1", 1), NaN, "1");
+assert.sameValue(parseInt("2", 1), NaN, "2");
+assert.sameValue(parseInt("3", 1), NaN, "3");
+assert.sameValue(parseInt("4", 1), NaN, "4");
+assert.sameValue(parseInt("5", 1), NaN, "5");
+assert.sameValue(parseInt("6", 1), NaN, "6");
+assert.sameValue(parseInt("7", 1), NaN, "7");
+assert.sameValue(parseInt("8", 1), NaN, "8");
+assert.sameValue(parseInt("9", 1), NaN, "9");
+assert.sameValue(parseInt("10", 1), NaN, "10");
+assert.sameValue(parseInt("11", 1), NaN, "11");
diff --git a/test/built-ins/parseInt/S15.1.2.2_A4.2_T2.js b/test/built-ins/parseInt/S15.1.2.2_A4.2_T2.js
index 2456c39d9dcb83c32feb221a69175613a7360d9c..d4e227ed9012f82cd2b4fe58dc3961dc96113056 100644
--- a/test/built-ins/parseInt/S15.1.2.2_A4.2_T2.js
+++ b/test/built-ins/parseInt/S15.1.2.2_A4.2_T2.js
@@ -7,62 +7,15 @@ es5id: 15.1.2.2_A4.2_T2
 description: R = 37
 ---*/
 
-//CHECK#0
-if (isNaN(parseInt("0", 37)) !== true) {
-  $ERROR('#0: parseInt("0", 37) === Not-a-Number. Actual: ' + (parseInt("0", 37)));
-}  
-
-//CHECK#1
-if (isNaN(parseInt("1", 37)) !== true) {
-  $ERROR('#1: parseInt("1", 37) === Not-a-Number. Actual: ' + (parseInt("1", 37)));
-}  
-
-//CHECK#2
-if (isNaN(parseInt("2", 37)) !== true) {
-  $ERROR('#2: parseInt("2", 37) === Not-a-Number. Actual: ' + (parseInt("2", 37)));
-}  
-
-//CHECK#3
-if (isNaN(parseInt("3", 37)) !== true) {
-  $ERROR('#3: parseInt("3", 37) === Not-a-Number. Actual: ' + (parseInt("3", 37)));
-} 
-
-//CHECK#4
-if (isNaN(parseInt("4", 37)) !== true) {
-  $ERROR('#4: parseInt("4", 37) === Not-a-Number. Actual: ' + (parseInt("4", 37)));
-} 
-
-//CHECK#5
-if (isNaN(parseInt("5", 37)) !== true) {
-  $ERROR('#5: parseInt("5", 37) === Not-a-Number. Actual: ' + (parseInt("5", 37)));
-}  
-
-//CHECK#6
-if (isNaN(parseInt("6", 37)) !== true) {
-  $ERROR('#6: parseInt("6", 37) === Not-a-Number. Actual: ' + (parseInt("6", 37)));
-}  
-
-//CHECK#7
-if (isNaN(parseInt("7", 37)) !== true) {
-  $ERROR('#7: parseInt("7", 37) === Not-a-Number. Actual: ' + (parseInt("7", 37)));
-}  
-
-//CHECK#8
-if (isNaN(parseInt("8", 37)) !== true) {
-  $ERROR('#8: parseInt("8", 37) === Not-a-Number. Actual: ' + (parseInt("8", 37)));
-}  
-
-//CHECK#9
-if (isNaN(parseInt("9", 37)) !== true) {
-  $ERROR('#9: parseInt("9", 37) === Not-a-Number. Actual: ' + (parseInt("9", 37)));
-}  
-
-//CHECK#10
-if (isNaN(parseInt("10", 37)) !== true) {
-  $ERROR('#10: parseInt("10", 37) === Not-a-Number. Actual: ' + (parseInt("10", 37)));
-}  
-
-//CHECK#11
-if (isNaN(parseInt("11", 37)) !== true) {
-  $ERROR('#11: parseInt("11", 37) === Not-a-Number. Actual: ' + (parseInt("11", 37)));
-}
+assert.sameValue(parseInt("0", 37), NaN, "0");
+assert.sameValue(parseInt("1", 37), NaN, "1");
+assert.sameValue(parseInt("2", 37), NaN, "2");
+assert.sameValue(parseInt("3", 37), NaN, "3");
+assert.sameValue(parseInt("4", 37), NaN, "4");
+assert.sameValue(parseInt("5", 37), NaN, "5");
+assert.sameValue(parseInt("6", 37), NaN, "6");
+assert.sameValue(parseInt("7", 37), NaN, "7");
+assert.sameValue(parseInt("8", 37), NaN, "8");
+assert.sameValue(parseInt("9", 37), NaN, "9");
+assert.sameValue(parseInt("10", 37), NaN, "10");
+assert.sameValue(parseInt("11", 37), NaN, "11");
diff --git a/test/built-ins/parseInt/S15.1.2.2_A4.2_T3.js b/test/built-ins/parseInt/S15.1.2.2_A4.2_T3.js
deleted file mode 100644
index 6982a6905936e1e939733b1402b7b24b69459aa7..0000000000000000000000000000000000000000
--- a/test/built-ins/parseInt/S15.1.2.2_A4.2_T3.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-info: If R < 2 or R > 36, then return NaN
-es5id: 15.1.2.2_A4.2_T3
-description: Complex test
----*/
-
-//CHECK#
-var pow = 2;
-for (var i = 1; i < 32; i++) {   
-  if (pow > 36) {  
-    var res = true;  
-    if (isNaN(parseInt(1, pow)) !== true) {
-      $ERROR('#1.' + i + ': If R < 2 or R > 36, then return NaN');
-    }
-    if (isNaN(parseInt(1, -pow)) !== true) {
-      $ERROR('#2.' + i + ': If R < 2 or R > 36, then return NaN');
-    }
-  }
-  pow = pow * 2;                        
-}
diff --git a/test/built-ins/parseInt/S15.1.2.2_A7.1_T1.js b/test/built-ins/parseInt/S15.1.2.2_A7.1_T1.js
index d14000321a11f0c97b10d11cf2322cbbe7c13b89..bacf290fe7dffd0e50f137aafded47acf1114c08 100644
--- a/test/built-ins/parseInt/S15.1.2.2_A7.1_T1.js
+++ b/test/built-ins/parseInt/S15.1.2.2_A7.1_T1.js
@@ -9,7 +9,5 @@ description: Complex test. R in [2, 36]
 
 //CHECK#
 for (var i = 2; i <= 36; i++) {
-  if (isNaN(parseInt("$string", i)) !== true) {
-    $ERROR('#' + i + ': parseInt("$string", i) === Not-a-Number. Actual: ' + (parseInt("$string", i)));
-  }
+  assert.sameValue(parseInt("$string", i), NaN);
 }
diff --git a/test/built-ins/parseInt/S15.1.2.2_A7.1_T2.js b/test/built-ins/parseInt/S15.1.2.2_A7.1_T2.js
index fa89df158ec985a4bf6c4dac72276475d87fef0c..82d9d7e7bd7194edfab359c593a2bb2484bbf6fa 100644
--- a/test/built-ins/parseInt/S15.1.2.2_A7.1_T2.js
+++ b/test/built-ins/parseInt/S15.1.2.2_A7.1_T2.js
@@ -7,27 +7,8 @@ es5id: 15.1.2.2_A7.1_T2
 description: x is not a radix-R digit
 ---*/
 
-//CHECK#1
-if (isNaN(parseInt("$0x")) !== true) {
-  $ERROR('#1: parseInt("$0x") === Not-a-Number. Actual: ' + (parseInt("$0x")));
-}
-
-//CHECK#2
-if (isNaN(parseInt("$0X")) !== true) {
-  $ERROR('#2: parseInt("$0X") === Not-a-Number. Actual: ' + (parseInt("$0X")));
-}
-
-//CHECK#3
-if (isNaN(parseInt("$$$")) !== true) {
-  $ERROR('#3: parseInt("$$$") === Not-a-Number. Actual: ' + (parseInt("$$$")));
-}
-
-//CHECK#4
-if (isNaN(parseInt("")) !== true) {
-  $ERROR('#4: parseInt("") === Not-a-Number. Actual: ' + (parseInt("")));
-}
-
-//CHECK#5
-if (isNaN(parseInt(" ")) !== true) {
-  $ERROR('#5: parseInt(" ") === Not-a-Number. Actual: ' + (parseInt(" ")));
-}
+assert.sameValue(parseInt("$0x"), NaN, "$0x");
+assert.sameValue(parseInt("$0X"), NaN, "$0X");
+assert.sameValue(parseInt("$$$"), NaN, "$$$");
+assert.sameValue(parseInt(""), NaN, "the empty string");
+assert.sameValue(parseInt(" "), NaN, "a string with a single space");
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A1.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A1.js
index 7b0a32744649b0855e00e40f37d3ab52871f0025..02e2049cdffbddf51d9b58c1b31545c0ee29d82c 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A1.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A1.js
@@ -20,7 +20,9 @@ bases[8] = NaN;
 
 
 for (var i = 0; i < bases.length; i++) {
-  if (!isNaN(bases[i] ** exponent)) {
-    $ERROR("isNaN(" + bases[i] + " ** " + exponent + ") === false");
-  }
+  assert.sameValue(
+    bases[i] ** exponent,
+    NaN,
+    bases[i] + " ** " + exponent
+  );
 }
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A23.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A23.js
index 2e36861c2fbe47f0c55ffada3128629b2cdb56e9..c2010f3ee3db900e833bc4736c635ece22f82da3 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A23.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A23.js
@@ -25,9 +25,11 @@ exponents[7] = Math.PI;
 
 for (var i = 0; i < bases.length; i++) {
   for (var j = 0; j < exponents.length; j++) {
-    if (!isNaN(bases[i] ** exponents[j])) {
-      $ERROR("isNaN(" + bases[i] + " **  " + exponents[j] + ") === false");
-    }
+    assert.sameValue(
+      bases[i] ** exponents[j],
+      NaN,
+      bases[i] + " ** " + exponents[j]
+    );
   }
 }
 
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A4.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A4.js
index f9178e29fabfb3184a0d12394111ad1a173e33aa..f7af9993227f4fa16e4f1b53de33695fd1238d5c 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A4.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A4.js
@@ -18,7 +18,9 @@ exponents[5] = +Infinity;
 exponents[6] = NaN;
 
 for (var i = 0; i < exponents.length; i++) {
-  if (!isNaN(base ** exponents[i])) {
-    $ERROR("isNaN(" + base + " **  " + exponents[i] + ") === false");
-  }
+  assert.sameValue(
+    base ** exponents[i],
+    NaN,
+    base + " ** " + exponents[i]
+  );
 }
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A7.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A7.js
index e5ea4c739881b066c5b17d0c4f1db3604fb504be..5420f64f89476fc0a020e5ab2bd4237e95131386 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A7.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A7.js
@@ -13,7 +13,9 @@ bases[0] = -1;
 bases[1] = 1
 
 for (var i = 0; i < bases.length; i++) {
-  if (!isNaN(bases[i] ** exponent)) {
-    $ERROR("isNaN(" + bases[i] + " **  " + exponent + ") === false");
-  }
+  assert.sameValue(
+    bases[i] ** exponent,
+    NaN,
+    bases[i] + " ** " + exponent
+  );
 }
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A8.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A8.js
index a240643798cf0e47f51b67b418c6fdea9550ecd6..0e3dcc3679f3617314943210593ebbcceb355b84 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A8.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A8.js
@@ -13,7 +13,9 @@ bases[0] = -1;
 bases[1] = 1
 
 for (var i = 0; i < bases.length; i++) {
-  if (!isNaN(bases[i] ** exponent)) {
-    $ERROR("isNaN(" + bases[i] + " **  " + exponent + ") === false");
-  }
+  assert.sameValue(
+    bases[i] ** exponent,
+    NaN,
+    bases[i] + " ** " + exponent
+  );
 }
diff --git a/test/language/statements/throw/S12.13_A2_T5.js b/test/language/statements/throw/S12.13_A2_T5.js
index f6736794cb77d472ffe19f3d0729db3a246d2c95..782bf16054b2638bf01b4ce7a0fd90f07163d7bf 100644
--- a/test/language/statements/throw/S12.13_A2_T5.js
+++ b/test/language/statements/throw/S12.13_A2_T5.js
@@ -39,7 +39,7 @@ try{
   throw NaN;
 }
 catch(e){
-  if (!isNaN(e)) $ERROR('#4: Exception is NaN');
+  assert.sameValue(e, NaN, "e is NaN");
 }
 
 // CHECK#5
diff --git a/test/language/statements/try/S12.14_A18_T5.js b/test/language/statements/try/S12.14_A18_T5.js
index c22ced99e1dad7f63959049fbba6c8492c9314c3..13a92ab50721986ed1dd8b82942b9eb32ecd67c6 100644
--- a/test/language/statements/try/S12.14_A18_T5.js
+++ b/test/language/statements/try/S12.14_A18_T5.js
@@ -64,7 +64,7 @@ try{
   throw NaN;
 }
 catch(e){
-  if (!isNaN(e)) $ERROR('#7: Exception is NaN');
+  assert.sameValue(e, NaN, "e is NaN");
 }
 
 // CHECK#8
diff --git a/test/language/statements/with/S12.10_A1.11_T1.js b/test/language/statements/with/S12.10_A1.11_T1.js
index dd5c3541bcde7bc1350cbc14c489d11b25ce601a..43ee0c775eb633d085d26b96c51d47dc7d73dce9 100644
--- a/test/language/statements/with/S12.10_A1.11_T1.js
+++ b/test/language/statements/with/S12.10_A1.11_T1.js
@@ -113,9 +113,7 @@ if(!(st_parseInt === parseInt)){
   $ERROR('#11: st_parseInt === parseInt. Actual:  st_parseInt ==='+ st_parseInt  );
 }
 
-if(!isNaN(st_NaN)){
-  $ERROR('#12: st_NaN === NaN. Actual:  st_NaN ==='+ st_NaN  );
-}
+assert.sameValue(st_NaN, NaN, "st_NaN is NaN");
 
 if(!(st_Infinity === Infinity)){
   $ERROR('#13: st_Infinity === Infinity. Actual:  st_Infinity ==='+ st_Infinity  );
diff --git a/test/language/statements/with/S12.10_A1.11_T2.js b/test/language/statements/with/S12.10_A1.11_T2.js
index 3ad8c7185e839bfee35c5140a30ead96f3ab9fd1..823f8949876e56ec88ecda8841d9726c6a65b4c7 100644
--- a/test/language/statements/with/S12.10_A1.11_T2.js
+++ b/test/language/statements/with/S12.10_A1.11_T2.js
@@ -118,9 +118,7 @@ if(!(st_parseInt === parseInt)){
   $ERROR('#11: st_parseInt === parseInt. Actual:  st_parseInt ==='+ st_parseInt  );
 }
 
-if(!isNaN(st_NaN)){
-  $ERROR('#12: st_NaN === NaN. Actual:  st_NaN ==='+ st_NaN  );
-}
+assert.sameValue(st_NaN, NaN, "st_NaN is NaN");
 
 if(!(st_Infinity === Infinity)){
   $ERROR('#13: st_Infinity === Infinity. Actual:  st_Infinity ==='+ st_Infinity  );
diff --git a/test/language/statements/with/S12.10_A1.11_T4.js b/test/language/statements/with/S12.10_A1.11_T4.js
index 368a781fa32cf4e413725ef07866bcd4bcf80de9..d44954f9b68ce06b9b0da02cb7196496a0be049e 100644
--- a/test/language/statements/with/S12.10_A1.11_T4.js
+++ b/test/language/statements/with/S12.10_A1.11_T4.js
@@ -121,9 +121,7 @@ if(!(st_parseInt === parseInt)){
   $ERROR('#11: st_parseInt === parseInt. Actual:  st_parseInt ==='+ st_parseInt  );
 }
 
-if(!isNaN(st_NaN)){
-  $ERROR('#12: st_NaN === NaN. Actual:  st_NaN ==='+ st_NaN  );
-}
+assert.sameValue(st_NaN, NaN, 'st_NaN is NaN');
 
 if(!(st_Infinity === Infinity)){
   $ERROR('#13: st_Infinity === Infinity. Actual:  st_Infinity ==='+ st_Infinity  );
diff --git a/test/language/types/object/S8.6_A2_T1.js b/test/language/types/object/S8.6_A2_T1.js
index c9f209cce8dfe9473de6435a4a181c2d353d1280..af6e0ee290105e826b4d1016973a4f6f5f4856a4 100644
--- a/test/language/types/object/S8.6_A2_T1.js
+++ b/test/language/types/object/S8.6_A2_T1.js
@@ -13,9 +13,7 @@ var __map={foo:"bar"};
 //CHECK#1
 
 __map.foo++;
-if (!isNaN(__map.foo)) {
-  $ERROR('#1: var __map={foo:"bar"}; __map.foo++; __map.foo === Not-a-Number. Actual: ' + (__map.foo));
-}
+assert.sameValue(__map.foo, NaN);
 
 //
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/types/object/S8.6_A2_T2.js b/test/language/types/object/S8.6_A2_T2.js
index 06976ab7ed230247bde3c1609968abb24f1d2ad4..28984e4efa2112374846aa7a5e98dbe2f20fa2c5 100644
--- a/test/language/types/object/S8.6_A2_T2.js
+++ b/test/language/types/object/S8.6_A2_T2.js
@@ -11,9 +11,7 @@ var __map={};
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
-if (!isNaN(__map.foo++)) {
-  $ERROR('#1: var __map={}; __map.foo === Not-a-Number. Actual: ' + (__map.foo));
-}
+assert.sameValue(__map.foo++, NaN);
 //
 //////////////////////////////////////////////////////////////////////////////
 
diff --git a/test/language/types/object/S8.6_A3_T1.js b/test/language/types/object/S8.6_A3_T1.js
index 3412fce32512559e045988b1f6ac0f6a35c11286..dc06cd85375276a92f0a7fa430a65b34d4932c6e 100644
--- a/test/language/types/object/S8.6_A3_T1.js
+++ b/test/language/types/object/S8.6_A3_T1.js
@@ -13,9 +13,6 @@ var __map={foo:'bar'};
 //CHECK#1
 
 ++__map.foo;
-if (!isNaN(__map.foo)) {
-  $ERROR('#1:  var __map={foo:"bar"}; ++__map.foo; __map.foo === Not-a-Number. Actual: ' + (__map.foo));
-}
-
+assert.sameValue(__map.foo, NaN);
 //
 //////////////////////////////////////////////////////////////////////////////
diff --git a/test/language/types/object/S8.6_A3_T2.js b/test/language/types/object/S8.6_A3_T2.js
index f57c37dc342d773d2cb9680078a2f4f0f3bf47e4..7e495c64af5d0aec3cbf2978eba65f00fdce57dd 100644
--- a/test/language/types/object/S8.6_A3_T2.js
+++ b/test/language/types/object/S8.6_A3_T2.js
@@ -11,9 +11,7 @@ var __map={};
 
 //////////////////////////////////////////////////////////////////////////////
 //CHECK#1
-if (!isNaN(++__map.foo)) {
-  $ERROR('#1:  var __map={}; __map.foo++; __map.foo === Not-a-Number. Actual: ' + (__map.foo));
-}
+assert.sameValue(++__map.foo, NaN, "++__map.foo");
 //
 //////////////////////////////////////////////////////////////////////////////