diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-0-1.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-0-1.js
index 76bc2de0bba7d1e0f652253189f7b3c50ed603b0..0e9a9b35065a0570a3c4e3355ba91e64b181acb8 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-0-1.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-0-1.js
@@ -4,12 +4,6 @@
 /*---
 es5id: 15.2.3.3-0-1
 description: Object.getOwnPropertyDescriptor must exist as a function
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-  if (typeof(Object.getOwnPropertyDescriptor) === "function") {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(typeof(Object.getOwnPropertyDescriptor), "function", 'typeof(Object.getOwnPropertyDescriptor)');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-0-2.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-0-2.js
index 1028ef79900877b899bd4f2e630eb9b12752047b..ca8ea579ec0006160474468fcee9c32d4c63dd2b 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-0-2.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-0-2.js
@@ -6,12 +6,6 @@ es5id: 15.2.3.3-0-2
 description: >
     Object.getOwnPropertyDescriptor must exist as a function taking 2
     parameters
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-  if (Object.getOwnPropertyDescriptor.length === 2) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(Object.getOwnPropertyDescriptor.length, 2, 'Object.getOwnPropertyDescriptor.length');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-1-3.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-1-3.js
index ddff2a7bacb38f4606cf6434a0665effa0717f4f..580a6811b7242864e1c1b1fae5c20fe877fe792c 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-1-3.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-1-3.js
@@ -6,11 +6,6 @@ es5id: 15.2.3.3-1-3
 description: >
     Object.getOwnPropertyDescriptor - TypeError is not thrown when
     first param is a boolean
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
     Object.getOwnPropertyDescriptor(true, "foo");
-    return true;
-}
-runTestCase(testcase);
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-1-4.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-1-4.js
index 9a7ba3e54f1a0bf594828dd06f37a6580ee16e75..f11a5206e09f72a16365c604ce49eb3a6ec0d4d1 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-1-4.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-1-4.js
@@ -6,11 +6,6 @@ es5id: 15.2.3.3-1-4
 description: >
     Object.getOwnPropertyDescriptor - TypeError is not thrown when
     first param is a number
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
     Object.getOwnPropertyDescriptor(-2, "foo");
-    return true;
-}
-runTestCase(testcase);
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-1.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-1.js
index 9be2f0e215471f19a0939b46b1db5d71ca6e6685..b2713da646d1f9762e6277215e255f8cd93d69f9 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-1.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-1.js
@@ -6,11 +6,6 @@ es5id: 15.2.3.3-1
 description: >
     Object.getOwnPropertyDescriptor does not throw TypeError if type
     of first param is not Object
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
     Object.getOwnPropertyDescriptor(0, "foo");
-    return true;
-}
-runTestCase(testcase);
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-1.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-1.js
index 815781b4b273828489833ecdb0f737ca3545e27e..579f005bf37b4c83fe92ca19388a6c53e01913ee 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-1.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-1.js
@@ -6,14 +6,9 @@ es5id: 15.2.3.3-2-1
 description: >
     Object.getOwnPropertyDescriptor returns undefined for undefined
     property name
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
     var o = {};
     var desc = Object.getOwnPropertyDescriptor(o, undefined);
-    if (desc === undefined) {
-      return true;
-    }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc, undefined, 'desc');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-10.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-10.js
index 18d10079561ae521237e4e7588342d7ea8ec83c4..51c962ec84af0e7def28d9ef4b3251b4e110045c 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-10.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-10.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-10
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a number that
     converts to a string (value is -0)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "0": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, -0);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-11.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-11.js
index ca8936c082075442f198f0c87c62ba116ab035cc..6096a9edd7ef5c652f349de8bd6abb2864c63fe4 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-11.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-11.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-11
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a number that
     converts to a string (value is positive number)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "30": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, 30);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-12.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-12.js
index ceecd8559b10f141d41f7da3e087a8665423dd80..dd07bbf9d4526aaa3595b99da3c340be1f89b907 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-12.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-12.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-12
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a number that
     converts to a string (value is negative number)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "-20": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, -20);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-13.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-13.js
index cdd9bbe5e6709d83b8e07f788e198f3a0732e218..aaf67dc7eae3985342ce01fc31ba62fc10111267 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-13.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-13.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-13
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a number that
     converts to a string (value is Infinity)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "Infinity": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, Infinity);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-14.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-14.js
index a33eaf8dfb371209109b63756c4cd4a155838f08..4ec76de3f5ab4c4c132cd30478073e8989493dba 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-14.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-14.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-14
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a number that
     converts to a string (value is +Infinity)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "Infinity": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, +Infinity);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-15.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-15.js
index 7ed0a7f704c3f405fe0464db3523d9b4e5fdee24..5550e02a12aeef0d35491f651e9026af9d523e06 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-15.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-15.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-15
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a number that
     converts to a string (value is -Infinity)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "-Infinity": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, -Infinity);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-16.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-16.js
index 4e714cc8588bf1b6e8fa723f8cb23107c8be0746..9806a60dc2f6be985ea7ed8d08492bb7cd6bacb9 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-16.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-16.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-16
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a number that
     converts to a string (value is 1(following 20 zeros))
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "100000000000000000000": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, 100000000000000000000);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-17.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-17.js
index 1e10bd9f5cdd8c3ccbd1476ea89b7608d43125ea..e665e5f7be7f3b21229775796d648b2a72dd02bd 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-17.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-17.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-17
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a number that
     converts to a string (value is 1(following 21 zeros))
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "1e+21": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, 1000000000000000000000);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-18.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-18.js
index d841047ffe1365888ef2f473562cab5bbcbd6d44..52629a60e0ceb09a06e4c5e26ea4cc9aef01702b 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-18.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-18.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-18
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a number that
     converts to a string (value is 1(following 22 zeros))
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "1e+22": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, 10000000000000000000000);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-19.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-19.js
index aa2b652ed1a6b8cc8d385a7eaced1e1a40240dcb..2efc16d3a24d2e74996ab8ba6bdaab8e73470907 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-19.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-19.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-19
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a number that
     converts to a string (value is 1e+20)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "100000000000000000000": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, 1e+20);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-2.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-2.js
index e945dbae1e2bb635940ff680bd95516e0b4995c7..ec8e546878a85d71a4328ecf3f0345ee3c697b2c 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-2.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-2.js
@@ -6,14 +6,9 @@ es5id: 15.2.3.3-2-2
 description: >
     Object.getOwnPropertyDescriptor returns undefined for null
     property name
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
     var o = {};
     var desc = Object.getOwnPropertyDescriptor(o, null);
-    if (desc === undefined) {
-      return true;
-    }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc, undefined, 'desc');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-20.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-20.js
index 3c5a8ef8b1b357e1e1736680e72ef35759907d54..b2cc6480bf2db24967e5f6c80773565bbfe89664 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-20.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-20.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-20
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a number that
     converts to string (value is 1e+21)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "1e+21": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, 1e+21);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-21.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-21.js
index 6df59ba52dfad3086ca943757cf0638a4c2e7cd6..a11547398b6bb27ae2bbca1bc024e07a7a0605cb 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-21.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-21.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-21
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a number that
     converts to a string (value is 1e+22)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "1e+22": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, 1e+22);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-22.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-22.js
index 6a1c19879994c77bbbb816e3bde4a4464820f9a8..80cbf6f4ee9ff0c71d92227ed6ff6468dfeb561f 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-22.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-22.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-22
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a number that
     converts to a string (value is 0.000001)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "0.000001": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, 0.000001);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-23.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-23.js
index cf92865c49d6e5226ad46cc0d6aafee643abd8e0..2398ebc574c854453a6a26f3c0430ad034dbad42 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-23.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-23.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-23
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a number that
     converts to a string (value is 0.0000001)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "1e-7": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, 0.0000001);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-24.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-24.js
index 0f4c9abb8e98b4aa6639fa5b7d80254d08521749..b3cf0bb3c51959405c4516fb96a9a25ba895a435 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-24.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-24.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-24
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a number that
     converts to a string (value is 0.00000001)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "1e-8": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, 0.00000001);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-25.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-25.js
index 90e75880631294af830730504ab1dfe03545e39d..cab2b57b43d3fe8834a62535812b45425a617e98 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-25.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-25.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-25
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a number that
     converts to a string (value is 1e-7)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "1e-7": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, 1e-7);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-26.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-26.js
index a3694a895c25587f49813490e979c14588bd09e0..2b096d817a665af121eaf002d456c0533b0b41b3 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-26.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-26.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-26
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a number that
     converts to a string (value is 1e-6)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "0.000001": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, 1e-6);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-27.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-27.js
index d03264f2be0ac08ba29bffc4e784dabbc3d39d46..9cda3a078df24776afa68574f90a153109bad479 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-27.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-27.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-27
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a number that
     converts to a string (value is 1e-5)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "0.00001": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, 1e-5);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-28.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-28.js
index 0387fb63f861d7006729ff757dd4a16a0456b80e..907ef5941752cb764b9f5f8670c3911135ce5ddb 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-28.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-28.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-28
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is an integer that
     converts to a string (value is 123)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "123": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, 123);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-29.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-29.js
index 2d7bed668814d6f86eeaa1dafb16216455cb2625..3450595896c38690ec62a44bea872157d12a97b7 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-29.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-29.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-29
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a decimal that
     converts to a string (value is 123.456)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "123.456": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, 123.456);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-3.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-3.js
index 23f98e9db3ac168fe69aae1b01531964480b2915..0d6b390443df066edfb3fe1a59c74d627964f42a 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-3.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-3.js
@@ -4,15 +4,12 @@
 /*---
 es5id: 15.2.3.3-2-3
 description: Object.getOwnPropertyDescriptor - argument 'P' is undefined
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "undefined": 1 };
 
         var desc1 = Object.getOwnPropertyDescriptor(obj, undefined);
         var desc2 = Object.getOwnPropertyDescriptor(obj, "undefined");
 
-        return desc1.value === 1 && desc2.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc1.value, 1, 'desc1.value');
+assert.sameValue(desc2.value, 1, 'desc2.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-30.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-30.js
index 77cafa54f4553907fefd7c9a28a8b54419eaec59..765ffb58448dfa790fc40b4cd81b20d79179b3bd 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-30.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-30.js
@@ -6,14 +6,11 @@ es5id: 15.2.3.3-2-30
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a number that
     converts to a string (value is 100000000000000000000.123)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "100000000000000000000": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, 100000000000000000000.123);
 
-        return typeof desc !== "undefined" && desc.value === 1;
-    }
-runTestCase(testcase);
+assert(typeof desc !== "undefined", 'typeof desc !== "undefined" !== true');
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-31.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-31.js
index 1b06f55c3fb1aec683b5b1a44447bf311663f8f8..6012c8bc196a8492e6adc2ac0e78668b312994cc 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-31.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-31.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-31
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a number that
     converts to a string (value is 123.1234567)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "123.1234567": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, 123.1234567);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-32.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-32.js
index 53e886b9e70b09f6ca503644937a71c29c0f2deb..e3769e7bdba4223dce54357717fce8b84adfa2aa 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-32.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-32.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-32
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is applied to an
     empty string
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, "");
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-33.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-33.js
index 5e965d8f9511066ed257e6f6a677d5521a066116..15f3eb2ae9978399cd8d6a34dbf33e28115eaa3a 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-33.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-33.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-33
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is applied to
     string 'AB  \cd'
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "AB\n\\cd": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, "AB\n\\cd");
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-34.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-34.js
index c7a8c935ed03ced158c5a32f341d7785b26df039..e6eb6681e58d06f676e4dabb0cc5e339bcfd9744 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-34.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-34.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-34
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is applied to
     string 'undefined'
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "undefined": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, "undefined");
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-35.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-35.js
index 815ee9bdef799e27efa8ec5f4702dc79ff0888df..d0de7e71ee073cea84f705927504ab5ceeeff89e 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-35.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-35.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-35
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is applied to
     string 'null'
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "null": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, "null");
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-36.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-36.js
index 72365e37671d8db51af73e5f80e1cb62c6bd2e17..e8fa1a16405812b28a7ef5a11f9758c3e82cf5d1 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-36.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-36.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-36
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is applied to
     string '123���¦�cd'
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "123���¦�cd": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, "123���¦�cd");
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-37.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-37.js
index 44dd472b15f56be50898910f0692d43c20b6bcee..8fe16690bd24f7c8ede47f0bb64eb7b12e2be422 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-37.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-37.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-37
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is applied to
     string '1'
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "1": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, 1);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-38.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-38.js
index 855ec7182a8ae788a66a6d2a26b0a579cde3968f..6d3ae01351ac4b527285295e88b7a6494faf4ad0 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-38.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-38.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-38
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is an array that
     converts to a string
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "1": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, [1]);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-39.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-39.js
index cc755566c45e7844c278e7bb470c619aa24a346f..92c9d4f62038447588b4acb72c1b3ad78fcc00fc 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-39.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-39.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-39
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a String Object
     that converts to a string
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "Hello": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, new String("Hello"));
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-4.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-4.js
index baa55f2a0c7d7c6003109e97b80311ab304fa972..9cdca680fb904b44433ba2c59eb6b9fbddfeaa61 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-4.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-4.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-4
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is null that
     converts to string 'null'
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "null": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, null);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-40.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-40.js
index ed4aef702a1e85b97f5a2256c4340d9930e83843..d8105069217fc13229a4d05fcdcbc958e90b9be9 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-40.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-40.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-40
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a Boolean Object
     that converts to a string
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "true": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, new Boolean(true));
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-41.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-41.js
index a465304c5f0bf63022d48aef6576bf861b11a95e..88ab0b4c4e91febdefb19a75f30316f421575fb3 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-41.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-41.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-41
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a Number Object
     that converts to a string
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "123": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, new Number(123));
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-42.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-42.js
index ce284a69b33b3f62829786b64ba2a3d04e144380..ecc16066c41c0424ae8622e292bd8429fc5c181f 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-42.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-42.js
@@ -6,10 +6,8 @@ es5id: 15.2.3.3-2-42
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is an object which
     has an own toString method
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "abc": 1 };
 
         var ownProp = {
@@ -20,6 +18,4 @@ function testcase() {
 
         var desc = Object.getOwnPropertyDescriptor(obj, ownProp);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-43.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-43.js
index 97cd703cbc4412c4a318d10299b53a3e7d6e7aeb..fbfb42f5101db6ba4a65f21b2c7ac0c82361df7b 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-43.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-43.js
@@ -6,10 +6,8 @@ es5id: 15.2.3.3-2-43
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is an object which
     has an own valueOf method
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "[object Object]": 1, "abc" : 2 };
 
         var ownProp = {
@@ -20,6 +18,4 @@ function testcase() {
 
         var desc = Object.getOwnPropertyDescriptor(obj, ownProp);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-44.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-44.js
index a41b1818eb17396b229b1d5eb3b65a615fcddc6c..115f34333be6a1c88fb4ea7bd6f644fc04782bb5 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-44.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-44.js
@@ -7,10 +7,8 @@ description: >
     Object.getOwnPropertyDescriptor - argument 'P' is an object that
     has an own toString method that returns an object and toValue
     method that returns a primitive value
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "abc": 1 };
         var valueOfAccessed = false;
         var toStringAccessed = false;
@@ -28,6 +26,6 @@ function testcase() {
 
         var desc = Object.getOwnPropertyDescriptor(obj, ownProp);
 
-        return desc.value === 1 && valueOfAccessed && toStringAccessed;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
+assert(valueOfAccessed, 'valueOfAccessed !== true');
+assert(toStringAccessed, 'toStringAccessed !== true');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-45.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-45.js
index 87ce669e80786032c09cc4aec5eddecd644d4af3..aa318dc2f6e3e3436a09130a1a8a739baf7f3570 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-45.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-45.js
@@ -6,10 +6,8 @@ es5id: 15.2.3.3-2-45
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is an object which
     has an own toString and valueOf method
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "bbq": 1, "abc": 2 };
         var valueOfAccessed = false;
 
@@ -25,6 +23,5 @@ function testcase() {
 
         var desc = Object.getOwnPropertyDescriptor(obj, ownProp);
 
-        return desc.value === 1 && !valueOfAccessed;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
+assert.sameValue(valueOfAccessed, false, 'valueOfAccessed');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-47.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-47.js
index d681477e7e551872f9ef19e587a479b7468d713c..f07c6f385da5b19f3c4f5ef3e3ebed97426b382c 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-47.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-47.js
@@ -7,10 +7,8 @@ description: >
     Object.getOwnPropertyDescriptor - uses inherited toString method
     when 'P' is an object with an own valueOf and inherited toString
     methods
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var proto = {};
         var valueOfAccessed = false;
         var toStringAccessed = false;
@@ -31,6 +29,6 @@ function testcase() {
         var obj = { "10": "length1", "test": "length2" };
         var desc = Object.getOwnPropertyDescriptor(obj, child);
 
-        return desc.value === "length2" && toStringAccessed && !valueOfAccessed;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, "length2", 'desc.value');
+assert(toStringAccessed, 'toStringAccessed !== true');
+assert.sameValue(valueOfAccessed, false, 'valueOfAccessed');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-5.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-5.js
index 92c775642ab5a47fdfc6a83d498895dc584f9e87..5a332dfaae83aa7c1fa35a64909fe1800349d261 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-5.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-5.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-5
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a boolean whose
     value is false
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "false": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, false);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-6.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-6.js
index a022513b7ad3951903c63b9c248244e37df46fdd..66f9b1dd6d23071e621b5b467cb25117faba2cd9 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-6.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-6.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-6
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a boolean whose
     value is true
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "true": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, true);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-7.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-7.js
index 6321db6c9617e678099e81d7f9277f99e02452a5..5077f4049e74d55c294a629c4590a06b0a26b396 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-7.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-7.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-7
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a number that
     converts to a string (value is NaN)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "NaN": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, NaN);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-8.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-8.js
index 08b7014ea6d6dc4a25717de7d911f71e1219c9ee..0b38934c2041488f082575219cf2c29973fd3c75 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-8.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-8.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-8
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a number that
     converts to a string (value is 0)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "0": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, 0);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-9.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-9.js
index 78ac4e7326690c714113e7475140d535baf69039..88bd6bda1ae365f0f450c9bb8691322ba56dd0db 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-9.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-9.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-2-9
 description: >
     Object.getOwnPropertyDescriptor - argument 'P' is a number that
     converts to a string (value is +0)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "0": 1 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, +0);
 
-        return desc.value === 1;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, 1, 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-1.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-1.js
index 7b123b8ffd7c838523bd07317abb4f93f034727a..cb66bc4f4feb49b4540fbbb1f8a197bf05cf2509 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-1.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-1.js
@@ -4,17 +4,12 @@
 /*---
 es5id: 15.2.3.3-3-1
 description: Object.getOwnPropertyDescriptor - 'P' is own data property
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-
         var obj = {
             property: "ownDataProperty"
         };
 
         var desc = Object.getOwnPropertyDescriptor(obj, "property");
 
-        return desc.value === "ownDataProperty";
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, "ownDataProperty", 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-10.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-10.js
index bab5bcb63dc01f7cbcba3531f9a2f7dd7f63325d..72462590963f3c41596d87fbd4647ab64a03a12e 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-10.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-10.js
@@ -4,17 +4,12 @@
 /*---
 es5id: 15.2.3.3-3-10
 description: Object.getOwnPropertyDescriptor - 'P' is not an existing property
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-
         var obj = {
             property: "ownDataProperty"
         };
 
         var desc = Object.getOwnPropertyDescriptor(obj, "propertyNonExist");
 
-        return typeof desc === "undefined";
-    }
-runTestCase(testcase);
+assert.sameValue(typeof desc, "undefined", 'typeof desc');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-13.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-13.js
index b3306779e1577985f6a27a81decf8ab8a36d9d1b..2640e9092a0413de950bc110c5e81ea3ce62f210 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-13.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-13.js
@@ -6,17 +6,15 @@ es5id: 15.2.3.3-3-13
 description: >
     Object.getOwnPropertyDescriptor applied to the Arguments object
     which implements its own property get method
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-
         var arg = (function () {
             return arguments;
         }("ownProperty", true));
 
         var desc = Object.getOwnPropertyDescriptor(arg, "0");
 
-        return desc.value === "ownProperty" && desc.writable === true && desc.enumerable === true && desc.configurable === true;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, "ownProperty", 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, true, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-14.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-14.js
index 3119ef5424e117a637ba30a755b43662d6abadb9..d6fce8e89074693886f24647cc160828d8fef579 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-14.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-14.js
@@ -6,15 +6,10 @@ es5id: 15.2.3.3-3-14
 description: >
     Object.getOwnPropertyDescriptor applied to a String object which
     implements its own property get method
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-
         var str = new String("123");
 
         var desc = Object.getOwnPropertyDescriptor(str, "2");
 
-        return desc.value === "3";
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, "3", 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-15.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-15.js
index cd126daf52bc853909ac58cb8128a46b25bca3eb..3f12ff690ef211b85ce9a7ab52cd78fefa76bfd9 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-15.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-15.js
@@ -6,11 +6,8 @@ es5id: 15.2.3.3-3-15
 description: >
     Object.getOwnPropertyDescriptor applied to a Function object which
     implements its own property get method
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-
         var obj = function (a, b) {
             return a + b;
         };
@@ -18,6 +15,4 @@ function testcase() {
 
         var desc = Object.getOwnPropertyDescriptor(obj, "1");
 
-        return desc.value === "ownProperty";
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, "ownProperty", 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-2.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-2.js
index 819d647af14d7ecd3490e08f609ad82a2ad36a4b..09f56f6dea06d91b24b07e957ff8f1fb17b43f54 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-2.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-2.js
@@ -4,11 +4,8 @@
 /*---
 es5id: 15.2.3.3-3-2
 description: Object.getOwnPropertyDescriptor - 'P' is inherited data property
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-
         var proto = {
             property: "inheritedDataProperty"
         };
@@ -20,6 +17,4 @@ function testcase() {
 
         var desc = Object.getOwnPropertyDescriptor(child, "property");
 
-        return typeof desc === "undefined";
-    }
-runTestCase(testcase);
+assert.sameValue(typeof desc, "undefined", 'typeof desc');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-3.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-3.js
index a845b75188fd7c72fb04794ebb82d5d9c7c7dab7..930eccc68f21445a8d98a132b8a3ad40b99a10cb 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-3.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-3.js
@@ -6,11 +6,8 @@ es5id: 15.2.3.3-3-3
 description: >
     Object.getOwnPropertyDescriptor - 'P' is own data property that
     overrides an inherited data property
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-
         var proto = {
             property: "inheritedDataProperty"
         };
@@ -23,6 +20,4 @@ function testcase() {
 
         var desc = Object.getOwnPropertyDescriptor(child, "property");
 
-        return desc.value === "ownDataProperty";
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, "ownDataProperty", 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-4.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-4.js
index 78a403313905763fccefcb3ed0fca0049e5148c4..a01c60d49d426780d607b757e5c7ef021a85de67 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-4.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-4.js
@@ -6,11 +6,8 @@ es5id: 15.2.3.3-3-4
 description: >
     Object.getOwnPropertyDescriptor - 'P' is own data property that
     overrides an inherited accessor property
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-
         var proto = {};
         Object.defineProperty(proto, "property", {
             get: function () {
@@ -30,6 +27,4 @@ function testcase() {
 
         var desc = Object.getOwnPropertyDescriptor(child, "property");
 
-        return desc.value === "ownDataProperty";
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, "ownDataProperty", 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-5.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-5.js
index 8886a5652c0f375d6dfa444119d4b1f35d1a72e4..0baa73874ae8c8709cc72705548bb5c1d5e42aff 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-5.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-5.js
@@ -4,11 +4,8 @@
 /*---
 es5id: 15.2.3.3-3-5
 description: Object.getOwnPropertyDescriptor - 'P' is own accessor property
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-
         var obj = {};
         var fun = function () {
             return "ownAccessorProperty";
@@ -20,6 +17,4 @@ function testcase() {
 
         var desc = Object.getOwnPropertyDescriptor(obj, "property");
 
-        return desc.get === fun;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.get, fun, 'desc.get');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-6.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-6.js
index b4b11b526838f1a671b8e28244d786e2096873d7..c2e77346d0ce9d020d3fe84ebf2275ae2c58979e 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-6.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-6.js
@@ -6,11 +6,8 @@ es5id: 15.2.3.3-3-6
 description: >
     Object.getOwnPropertyDescriptor - 'P' is inherited accessor
     property
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-
         var proto = {};
         var fun = function () {
             return "ownAccessorProperty";
@@ -27,6 +24,4 @@ function testcase() {
 
         var desc = Object.getOwnPropertyDescriptor(child, "property");
 
-        return typeof desc === "undefined";
-    }
-runTestCase(testcase);
+assert.sameValue(typeof desc, "undefined", 'typeof desc');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-7.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-7.js
index ed7a6e51fc6951ce0763ec6bb6ae83e8a5ece326..b8caeb90d46ee4abe7673523d53856a7210ab79a 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-7.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-7.js
@@ -6,11 +6,8 @@ es5id: 15.2.3.3-3-7
 description: >
     Object.getOwnPropertyDescriptor - 'P' is own accessor property
     that overrides an inherited data property
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-
         var proto = {
             property: "inheritedDataProperty"
         };
@@ -29,6 +26,4 @@ function testcase() {
 
         var desc = Object.getOwnPropertyDescriptor(child, "property");
 
-        return desc.get === fun;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.get, fun, 'desc.get');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-8.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-8.js
index 6e958918df47f371abeb2e590b1c57309acbc558..05e0bcd206a90894c33a2b8df7569ee593f8f848 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-8.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-8.js
@@ -6,11 +6,8 @@ es5id: 15.2.3.3-3-8
 description: >
     Object.getOwnPropertyDescriptor - 'P' is own accessor property
     that overrides an inherited accessor property
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-
         var proto = {};
         Object.defineProperty(proto, "property", {
             get: function () {
@@ -33,6 +30,4 @@ function testcase() {
 
         var desc = Object.getOwnPropertyDescriptor(child, "property");
 
-        return desc.get === fun;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.get, fun, 'desc.get');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-9.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-9.js
index d39f43296a21806a5c9569a835f9549bddf6c7ce..c2f364066be1f4137adddc14c26a9bfed56d2038 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-9.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-9.js
@@ -6,11 +6,8 @@ es5id: 15.2.3.3-3-9
 description: >
     Object.getOwnPropertyDescriptor - 'P' is own accessor property
     without a get function
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
-
         var obj = {};
         var fun = function () { };
         Object.defineProperty(obj, "property", {
@@ -20,6 +17,4 @@ function testcase() {
 
         var desc = Object.getOwnPropertyDescriptor(obj, "property");
 
-        return desc.set === fun;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.set, fun, 'desc.set');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-1.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-1.js
index f72e3cace744d853e1f68329061bb72e6f3a2dae..5a6ffb8f2e208caadfca0e8f523c4eadb44a9fb0 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-1.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-1.js
@@ -6,21 +6,16 @@ es5id: 15.2.3.3-4-1
 description: >
     Object.getOwnPropertyDescriptor returns an object representing a
     data desc for valid data valued properties
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
     var o = {};
     o["foo"] = 101;
 
     var desc = Object.getOwnPropertyDescriptor(o, "foo");
-    if (desc.value === 101 &&
-        desc.enumerable === true &&
-        desc.writable === true &&
-        desc.configurable === true &&
-        !desc.hasOwnProperty("get") &&
-        !desc.hasOwnProperty("set")) {
-      return true;
-    }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, 101, 'desc.value');
+assert.sameValue(desc.enumerable, true, 'desc.enumerable');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty("get"), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty("set"), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-10.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-10.js
index 95c7740f7d3d18a07bc47a1cd178c2cd68580871..58a828328adf0e96ea4722720370fc9159849506 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-10.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-10.js
@@ -6,19 +6,13 @@ es5id: 15.2.3.3-4-10
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Global.decodeURIComponent)
-includes:
-    - runTestCase.js
-    - fnGlobalObject.js
+includes: [fnGlobalObject.js]
 ---*/
 
-function testcase() {
   var global = fnGlobalObject();
   var desc = Object.getOwnPropertyDescriptor(global,  "decodeURIComponent");
-  if (desc.value === global.decodeURIComponent &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, global.decodeURIComponent, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-100.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-100.js
index ab801b4a07891b0408dcb188fd3b3b9e3c903fb1..78551fec91783cdd3022e3b78a3053e481982a11 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-100.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-100.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-100
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Math.atan2)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "atan2");
-  if (desc.value === Math.atan2 &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Math.atan2, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-101.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-101.js
index b87ed0be85f1f71a182f1ff8e4defc9ffc574345..dfdb37d1b7d34404242515d20232dc4fe86f392d 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-101.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-101.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-101
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Math.ceil)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "ceil");
-  if (desc.value === Math.ceil &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Math.ceil, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-102.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-102.js
index 304b90fa22f2aba6f695b4a09623a7968ff40c01..302bc798e69645db31ace1c3b1e992e84424c56d 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-102.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-102.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-102
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Math.cos)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "cos");
-  if (desc.value === Math.cos &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Math.cos, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-103.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-103.js
index 0cf0a618d0f04f216abe4f70313fd0291de24550..57806ffe6fc1859e585d0e6fb2cfed82b57129ec 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-103.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-103.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-103
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Math.exp)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "exp");
-  if (desc.value === Math.exp &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Math.exp, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-104.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-104.js
index 5ab93a20e8904c15fb5e7f4aa6b18b5ecdf5577f..66f69b55eced4ea3af8b6c0c5e84c56d0d0cb900 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-104.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-104.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-104
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Math.floor)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "floor");
-  if (desc.value === Math.floor &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Math.floor, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-105.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-105.js
index fef7fcc63c2ea131b04ea5b229fd2e16e0fd8ff7..5643e8febabf267feda6b2ede2d1be841d52ef9f 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-105.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-105.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-105
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Math.log)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "log");
-  if (desc.value === Math.log &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Math.log, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-106.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-106.js
index 29e8d83924ea69bd670b01121c5de5cdad9bd2da..9db5008435c75913a5113309d34005abc4d538d4 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-106.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-106.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-106
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Math.max)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "max");
-  if (desc.value === Math.max &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Math.max, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-107.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-107.js
index e055ce7f8cb132d38df1b7d44678c1caf62aaf18..9df5a48126aa2199eeb19b0063fcdb58b8129ded 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-107.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-107.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-107
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Math.min)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "min");
-  if (desc.value === Math.min &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Math.min, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-108.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-108.js
index e2df653eeb3f4778bc74fc610ee4869a8bd00672..fe1004579a6f46fb7d63776fa7c062f9e428acc6 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-108.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-108.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-108
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Math.pow)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "pow");
-  if (desc.value === Math.pow &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Math.pow, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-109.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-109.js
index 6830937fa2aded6913ec8897fc46285d97695672..8001e1dd65fbdf50a790ecfef9d34b35a98aa6a5 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-109.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-109.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-109
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Math.random)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "random");
-  if (desc.value === Math.random &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Math.random, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-11.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-11.js
index 11450e1737cd0ae95c1f3dcc76a4586cdbf9e351..49f25de6d5df70e5e48525bebcfced72ba1fdc63 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-11.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-11.js
@@ -6,19 +6,13 @@ es5id: 15.2.3.3-4-11
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Global.encodeURIComponent)
-includes:
-    - runTestCase.js
-    - fnGlobalObject.js
+includes: [fnGlobalObject.js]
 ---*/
 
-function testcase() {
   var global = fnGlobalObject();
   var desc = Object.getOwnPropertyDescriptor(global,  "encodeURIComponent");
-  if (desc.value === global.encodeURIComponent &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, global.encodeURIComponent, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-110.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-110.js
index 87681346cb1f370db752fa36a52934bf51c9209f..8410bc9687af18bd091d6f919145dc25357c518c 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-110.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-110.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-110
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Math.round)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "round");
-  if (desc.value === Math.round &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Math.round, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-111.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-111.js
index c5bd55cd96051f42146286095c42be6a96f9bed1..8d7a89f5567eeebb7cc36cb47bd8b4885c39222d 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-111.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-111.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-111
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Math.sin)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "sin");
-  if (desc.value === Math.sin &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Math.sin, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-112.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-112.js
index 7794473a53f16774d3aaaa1c6711ac64cb5714b3..445f7adb06045f324dc17147c8ecf1048208eef1 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-112.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-112.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-112
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Math.sqrt)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "sqrt");
-  if (desc.value === Math.sqrt &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Math.sqrt, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-113.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-113.js
index 3eb8aac29c948e2d0c06490f53bcf0258da494ba..c4d1aecc83ad487fc0c4dc6a072830f28b26076a 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-113.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-113.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-113
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Math.tan)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "tan");
-  if (desc.value === Math.tan &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Math.tan, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-114.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-114.js
index 3bca6a675b8a6e0569c3aad111705590b902e7fb..e111b361a08b074df399daf7eaa0ab3948c1896a 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-114.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-114.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-114
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.parse)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date, "parse");
-  if (desc.value === Date.parse &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.parse, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-115.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-115.js
index 75239221af073aa53b03e36f237d29e3c0be2bfc..7cc8f4b45046a756c207bc97055894d568214c93 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-115.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-115.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-115
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.UTC)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date, "UTC");
-  if (desc.value === Date.UTC &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.UTC, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-116.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-116.js
index 823adb72be24310880364a7341a4cb1fefd1f616..023c9a9ef1ae20405a46248d6640a99cdec3d802 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-116.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-116.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-116
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.constructor)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "constructor");
-  if (desc.value === Date.prototype.constructor &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.constructor, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-117.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-117.js
index addca6cce867d90b90a08a6c108440dfd08ed9ea..bc009fc36d7ab9e2e6eb32304b81942e62b97c6d 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-117.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-117.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-117
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.getTime)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getTime");
-  if (desc.value === Date.prototype.getTime &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.getTime, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-118.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-118.js
index f662d50aaec8ec78f1d9ca160167ddf8c3f037a9..157058626014df6a94a192e94639ef7f123fcfe3 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-118.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-118.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-118
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.getTimezoneOffset)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getTimezoneOffset");
-  if (desc.value === Date.prototype.getTimezoneOffset &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.getTimezoneOffset, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-120.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-120.js
index 2baa7d8c74bf20a47992f0428fa69e7f5de31e82..2915ede2a3bbe88f1f20ddf9f5a4f620af743b8d 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-120.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-120.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-120
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.getFullYear)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getFullYear");
-  if (desc.value === Date.prototype.getFullYear &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.getFullYear, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-121.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-121.js
index 26546adad1e66692c63199147e44099fdd23500e..4bd159bf5b7e320b229533c66f2187a2f1f07e40 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-121.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-121.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-121
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.getMonth)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getMonth");
-  if (desc.value === Date.prototype.getMonth &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.getMonth, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-122.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-122.js
index a8929e4b5d3cae9f7596517588f0547960075982..6516d891779e36b25a59a04ac8f94e16cbe24f2b 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-122.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-122.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-122
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.getDate)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getDate");
-  if (desc.value === Date.prototype.getDate &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.getDate, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-123.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-123.js
index 8905d889a4f250d8bb5225b9081df00d0a11c1af..421ca744e1d123adbe46f78750d8afe8d14bda27 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-123.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-123.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-123
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.getDay)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getDay");
-  if (desc.value === Date.prototype.getDay &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.getDay, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-124.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-124.js
index a3555164a276e8d132432cb1a816e84efe75a633..789e7ba064e0139bdc95a9e838c653a5f1ee9714 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-124.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-124.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-124
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.getHours)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getHours");
-  if (desc.value === Date.prototype.getHours &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.getHours, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-125.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-125.js
index 53caa35b2edca0f3c246e37eeaa4078e359fd10d..b6dcb8c6bc8c703b36d406808ef3ef2ecca8b06d 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-125.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-125.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-125
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.getMinutes)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getMinutes");
-  if (desc.value === Date.prototype.getMinutes &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.getMinutes, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-126.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-126.js
index c7497d982ebd9fc7ac43ffba57767c276751b4d2..4d315aca02aab44b9f4ee4131004444532106adf 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-126.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-126.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-126
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.getSeconds)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getSeconds");
-  if (desc.value === Date.prototype.getSeconds &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.getSeconds, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-127.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-127.js
index 2ce33387d1d17dac334dae4a4dbf0b39e7250804..ec29ff4607ee0b1409dac97d51882fc2cbf5641b 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-127.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-127.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-127
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.getMilliseconds)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getMilliseconds");
-  if (desc.value === Date.prototype.getMilliseconds &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.getMilliseconds, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-128.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-128.js
index ca244465806b334afba4b76c4db38ead1059383f..4df71b5a70b03c6821f15599a2d1bb0363ab874b 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-128.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-128.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-128
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.getUTCFullYear)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getUTCFullYear");
-  if (desc.value === Date.prototype.getUTCFullYear &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.getUTCFullYear, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-129.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-129.js
index 97cec5db9dc33d7d1cfa539a6157ff099a0d8540..00c26597d2e494c533b78142f30b2fc4cf904028 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-129.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-129.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-129
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.getUTCMonth)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getUTCMonth");
-  if (desc.value === Date.prototype.getUTCMonth &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.getUTCMonth, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-130.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-130.js
index abf33e8bca2dd47e4a544dc54323b5ce18cff145..b5ff8f449208b9ad60b438a3cbca20423c309552 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-130.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-130.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-130
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.getUTCDate)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getUTCDate");
-  if (desc.value === Date.prototype.getUTCDate &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.getUTCDate, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-131.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-131.js
index facf0f6f6e22f3521feda7e0d558e0d7a030803a..ce2f09bf871be4948a69be464c403a8b6a189357 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-131.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-131.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-131
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.getUTCDay)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getUTCDay");
-  if (desc.value === Date.prototype.getUTCDay &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.getUTCDay, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-132.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-132.js
index 36e86825ba6efe4917c767662e9debc3b48a3bc4..5f6d6e80558df554128aae310c195fb4f70aee51 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-132.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-132.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-132
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.getUTCHours)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getUTCHours");
-  if (desc.value === Date.prototype.getUTCHours &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.getUTCHours, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-133.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-133.js
index ddb08b6dd74de6c0b2c43759a35aed643b2b7cb6..458a9962a7f74c73df06bbecd2303d40de766d36 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-133.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-133.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-133
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.getUTCMinutes)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getUTCMinutes");
-  if (desc.value === Date.prototype.getUTCMinutes &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.getUTCMinutes, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-134.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-134.js
index 51ae1d71f0a10a692bc5f6bc4825af7d6e622876..0b2198275752bfe9cb6ba105f191e60655c682a7 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-134.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-134.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-134
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.getUTCSeconds)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getUTCSeconds");
-  if (desc.value === Date.prototype.getUTCSeconds &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.getUTCSeconds, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-135.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-135.js
index f2f821d0750bc03e721d7a1367e2a4a0ef756aaa..2859d423c36011a005bf355ab77af6c32dc10d87 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-135.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-135.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-135
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.getUTCMilliseconds)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getUTCMilliseconds");
-  if (desc.value === Date.prototype.getUTCMilliseconds &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.getUTCMilliseconds, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-136.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-136.js
index f2850073175e63dbaf7b6dd53147f00f093f444e..3e8f04704757d42c2bc3438c559b3c7562ee9391 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-136.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-136.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-136
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.setTime)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setTime");
-  if (desc.value === Date.prototype.setTime &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.setTime, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-138.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-138.js
index d3305df2884d81b7307bcf6306731476165bf332..e0346638aa7eb1e11b392369d07d052b288e1b92 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-138.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-138.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-138
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.setFullYear)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setFullYear");
-  if (desc.value === Date.prototype.setFullYear &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.setFullYear, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-139.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-139.js
index 2111048d0b4cca7f77ea296ac59bda84fde7ed46..feac0f29d89102a124f0aaf09f7b1c4b36c89244 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-139.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-139.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-139
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.setMonth)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setMonth");
-  if (desc.value === Date.prototype.setMonth &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.setMonth, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-14.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-14.js
index cc2317acfb141d7536dcfad74e912d74af22bf34..5b240016167e6451471600620956c3dde11dad6f 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-14.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-14.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-14
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Object.getPrototypeOf)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Object, "getPrototypeOf");
-  if (desc.value === Object.getPrototypeOf &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Object.getPrototypeOf, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-140.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-140.js
index 699188fb30dd1ffc3065dbd1bb10e21d67cd40f5..9b10d080032f180b560182ab422fea616c2df06f 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-140.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-140.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-140
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.setDate)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setDate");
-  if (desc.value === Date.prototype.setDate &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.setDate, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-141.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-141.js
index cde501ff4a017930c41418206671db3ad9827114..0044448d2afca52bec3b5e21b3904faa8c730e65 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-141.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-141.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-141
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.setHours)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setHours");
-  if (desc.value === Date.prototype.setHours &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.setHours, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-142.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-142.js
index b6b1757013596daabbbe5707e23b28d159cf27da..fd380809e0f01b6e0cb2d33f87cd1bfe06c220ea 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-142.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-142.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-142
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.setMinutes)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setMinutes");
-  if (desc.value === Date.prototype.setMinutes &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.setMinutes, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-143.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-143.js
index a597899dad6789b8c84228771f086324903738cb..81c76f8bdbffdc0993241b28e5f38cddb43c1b0f 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-143.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-143.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-143
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.setSeconds)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setSeconds");
-  if (desc.value === Date.prototype.setSeconds &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.setSeconds, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-144.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-144.js
index 8169615201cc35e435272961efe40d3ff1e0f855..211b12fd7b13a4768986d9c0612f9db9fe1181d1 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-144.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-144.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-144
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.setMilliseconds)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setMilliseconds");
-  if (desc.value === Date.prototype.setMilliseconds &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.setMilliseconds, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-145.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-145.js
index 3fe7f3d7ae5648fd68ce6b0ab5a438e1892194e0..72a228dc0f1cf754d0090b1f78cccc6ed681776a 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-145.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-145.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-145
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.setUTCFullYear)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setUTCFullYear");
-  if (desc.value === Date.prototype.setUTCFullYear &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.setUTCFullYear, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-146.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-146.js
index a92647d5ca5e5751237d3e1eecaf882f3388d90f..6c0fd95aa0ed1e3416e5402c8ddc60b450839495 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-146.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-146.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-146
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.setUTCMonth)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setUTCMonth");
-  if (desc.value === Date.prototype.setUTCMonth &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.setUTCMonth, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-147.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-147.js
index bb24ab9f7da89bbf27e6f92ac87b027a09bdbf4d..91dd4ffa9ff70976fa4d3fb1f9c45b432485305d 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-147.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-147.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-147
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.setUTCDate)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setUTCDate");
-  if (desc.value === Date.prototype.setUTCDate &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.setUTCDate, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-148.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-148.js
index db6c47f6c9777d7ae5aed82d41b43d0651f15e1e..7ae25261021f22f0b91650335bf4002dc23e26be 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-148.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-148.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-148
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.setUTCHours)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setUTCHours");
-  if (desc.value === Date.prototype.setUTCHours &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.setUTCHours, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-149.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-149.js
index 36d1d161b502b9b08bffaf5c73ad48916c2e291f..122df12b7adb3ad4b79f35636e8c57e24b3dfd34 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-149.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-149.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-149
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.setUTCMinutes)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setUTCMinutes");
-  if (desc.value === Date.prototype.setUTCMinutes &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.setUTCMinutes, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-15.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-15.js
index 58235aceae4fbf833af9e64352f92b1e6cddb160..75f7919ce217a2e43052105e7ef047347ba3bc85 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-15.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-15.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-15
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Object.getOwnPropertyDescriptor)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Object, "getOwnPropertyDescriptor");
-  if (desc.value === Object.getOwnPropertyDescriptor &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Object.getOwnPropertyDescriptor, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-150.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-150.js
index 410ec67d82fb60a33cd4bf53a406804ebf705903..68f15d923c19001edf5eec7e530c456b84a18823 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-150.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-150.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-150
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.setUTCSeconds)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setUTCSeconds");
-  if (desc.value === Date.prototype.setUTCSeconds &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.setUTCSeconds, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-151.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-151.js
index dff94438f08631c04712d5daaf4bc7375265ded7..3bf72cdb3493c9d400550204b215c2c9dc894182 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-151.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-151.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-151
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.setUTCMilliseconds)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setUTCMilliseconds");
-  if (desc.value === Date.prototype.setUTCMilliseconds &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.setUTCMilliseconds, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-152.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-152.js
index 81db4f0962417404aec07c27bd0f827f6c6e16ac..ac79016a3fbec7c1cc04ecd1c063e5f1680977a2 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-152.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-152.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-152
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.toLocaleString)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "toLocaleString");
-  if (desc.value === Date.prototype.toLocaleString &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.toLocaleString, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-153.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-153.js
index 4be9d41b77acc4b57c71ffb24b785c179485f54a..3676e7f4970d29e27eb3c23547f14eea308cc306 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-153.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-153.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-153
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.toString)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "toString");
-  if (desc.value === Date.prototype.toString &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.toString, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-154.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-154.js
index 5b903950654e8c7dcf78a22622445f01ee004911..b64b5f214946fe79cc6caa2722a834ce9faeb73e 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-154.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-154.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-154
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.toUTCString)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "toUTCString");
-  if (desc.value === Date.prototype.toUTCString &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.toUTCString, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-156.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-156.js
index dc68a943234067486c4b7e3053127550fdece175..273256a21c210d250d6fc95a85812c70dd25fa4f 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-156.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-156.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-156
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.toTimeString)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "toTimeString");
-  if (desc.value === Date.prototype.toTimeString &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.toTimeString, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-157.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-157.js
index 456a32c10dab084c404d7618de563409ba106f5b..fc30bbdd0de120df325dd1d3c61f2a7fb83e63be 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-157.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-157.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-157
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.toDateString)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "toDateString");
-  if (desc.value === Date.prototype.toDateString &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.toDateString, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-158.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-158.js
index 0e30dad98ae46e63bb92a05f8e7fb2ca67049264..b769536862d9be38cd0209ab9c2435ca1503be7b 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-158.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-158.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-158
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.toLocaleDateString)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "toLocaleDateString");
-  if (desc.value === Date.prototype.toLocaleDateString &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.toLocaleDateString, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-159.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-159.js
index f73106c27b26acb9029cbdff0845a4fa02c7dbff..06c70b3b4d61b27ddad3c5e9bc2ba8ccc99df64b 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-159.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-159.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-159
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.toLocaleTimeString)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "toLocaleTimeString");
-  if (desc.value === Date.prototype.toLocaleTimeString &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.toLocaleTimeString, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-16.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-16.js
index f0c0701303fc4320c4a041c7013131c4578fee5b..78e8b7f8afb419742279bba8453bfdf4feae6bc0 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-16.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-16.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-16
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Object.getOwnPropertyNames)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Object, "getOwnPropertyNames");
-  if (desc.value === Object.getOwnPropertyNames &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Object.getOwnPropertyNames, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-160.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-160.js
index 48b7e3c8353e78c346f6da0d7f10d0ee9aca9a46..18a6dc05897317ce12215efddde10a503edfb630 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-160.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-160.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-160
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.valueOf)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "valueOf");
-  if (desc.value === Date.prototype.valueOf &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.valueOf, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-161.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-161.js
index 24cb99755d6fb82352cb96351f5168ea63917306..1d3cf47cdc0c55edb44a03bf493fa7802569e49c 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-161.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-161.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-161
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.toISOString)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "toISOString");
-  if (desc.value === Date.prototype.toISOString &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.toISOString, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-162.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-162.js
index a5f2dd39aa0252e4006803394b8255730fb1debf..1bd2da199e9f20a188a6c2836227b47023e54ac9 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-162.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-162.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-162
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Date.prototype.toJSON)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date.prototype, "toJSON");
-  if (desc.value === Date.prototype.toJSON &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Date.prototype.toJSON, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-163.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-163.js
index a55f285dc5b80bb3dc0e224fe1fc03e073f086ec..717ba8b69f5db7af53f22d697a1b457abda451e6 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-163.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-163.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-163
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (RegExp.prototype.constructor)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "constructor");
-  if (desc.value === RegExp.prototype.constructor &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, RegExp.prototype.constructor, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-165.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-165.js
index 1327bde311b112601458c994a2ef5014bd78daff..387f8b6b00ef3853a5817572eee8ead5efec286d 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-165.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-165.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-165
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (RegExp.prototype.exec)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "exec");
-  if (desc.value === RegExp.prototype.exec &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, RegExp.prototype.exec, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-166.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-166.js
index dc5191d0c1bbb832cc2efc1a9960d902e31b83f6..adaffc79e2964a72194269fccf700f02d647e0b7 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-166.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-166.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-166
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (RegExp.prototype.test)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "test");
-  if (desc.value === RegExp.prototype.test &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, RegExp.prototype.test, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-167.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-167.js
index cc1da7b430df4f8e45f5b09128e135d1144d3cc6..03a41746565bc2c39fc4d81acf6072cddb4974a4 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-167.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-167.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-167
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (RegExp.prototype.toString)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "toString");
-  if (desc.value === RegExp.prototype.toString &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, RegExp.prototype.toString, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-168.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-168.js
index cfa5e8b5c5b4a33b9e7c098622b5e736f20fc9ed..90c3efd9a13a5c5310c741b35512a88bb233d4d7 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-168.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-168.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-168
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Error.prototype.constructor)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Error.prototype, "constructor");
-  if (desc.value === Error.prototype.constructor &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Error.prototype.constructor, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-169.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-169.js
index 2bb4ba00e1c2e8b82d39af4d60d5f36d0d98de89..1e4890e17c6fa1d4d56217c73181bae64ab88943 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-169.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-169.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-169
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Error.prototype.toString)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Error.prototype, "toString");
-  if (desc.value === Error.prototype.toString &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Error.prototype.toString, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-17.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-17.js
index f1ea7fbc56b488996259b3bfb43d876b2c2f68e6..1b2e42315d89e278c72254027e6a562e807adfce 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-17.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-17.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-17
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Object.create)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Object, "create");
-  if (desc.value === Object.create &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Object.create, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-170.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-170.js
index 963c0cf0dcf48496e7c631da7ed0894b59a51dad..2deebcd6f77c568eb610e5cef646f30956e6fd89 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-170.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-170.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-170
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (EvalError.prototype.constructor)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(EvalError.prototype, "constructor");
-  if (desc.value === EvalError.prototype.constructor &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, EvalError.prototype.constructor, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-171.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-171.js
index aae14313d0775df7531eb0ce6eb6b25150cd4860..f5de8176f450498a06a5029751dc7b3fc4c6e9b8 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-171.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-171.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-171
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (RangeError.prototype.constructor)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(RangeError.prototype, "constructor");
-  if (desc.value === RangeError.prototype.constructor &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, RangeError.prototype.constructor, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-172.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-172.js
index 3d8074c99577081d5fd4904ca0285f5677152f3b..e60eb6edc0f19050f0820cdca99b73870d4ab227 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-172.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-172.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-172
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (ReferenceError.prototype.constructor)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(ReferenceError.prototype, "constructor");
-  if (desc.value === ReferenceError.prototype.constructor &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, ReferenceError.prototype.constructor, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-173.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-173.js
index 5e2d0a59a31bbf23c3cde0c6614b555fcb083450..38702336b47c6158c77021771d744200ae5364e7 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-173.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-173.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-173
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (SyntaxError.prototype.constructor)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(SyntaxError.prototype, "constructor");
-  if (desc.value === SyntaxError.prototype.constructor &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, SyntaxError.prototype.constructor, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-174.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-174.js
index c707857f2f6971df4e6785ff10e390bcdedab447..210e33fdf5cea2dd7fec2a092fe9aa16d38f3174 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-174.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-174.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-174
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (TypeError.prototype.constructor)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(TypeError.prototype, "constructor");
-  if (desc.value === TypeError.prototype.constructor &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, TypeError.prototype.constructor, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-175.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-175.js
index df5d5b7eb23b7b017ea44e139c3fe3580d4668ce..e7a59840e007d753bcf1bf46a21fd98c34603a99 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-175.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-175.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-175
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (URIError.prototype.constructor)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(URIError.prototype, "constructor");
-  if (desc.value === URIError.prototype.constructor &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, URIError.prototype.constructor, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-176.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-176.js
index 89a768c8163ddcb70fb1adbc38690f15afb83e40..3cac6f215d21132e67163b2367def4c63ca92026 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-176.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-176.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-176
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (JSON.stringify)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(JSON, "stringify");
-  if (desc.value === JSON.stringify &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, JSON.stringify, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-177.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-177.js
index a6dab6fd0f07a822abfee6b3cda4f8830a3a92b1..52dfbd152ce878a62f05d5a7580824ff52745222 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-177.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-177.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-177
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (JSON.parse)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(JSON, "parse");
-  if (desc.value === JSON.parse &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, JSON.parse, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-178.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-178.js
index e389236716a313d9e88abb74b744925e874b7c0f..9b3668eca804a4e21514fcac517a8ae247c7e69c 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-178.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-178.js
@@ -6,22 +6,14 @@ es5id: 15.2.3.3-4-178
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (Global.NaN)
-includes:
-    - runTestCase.js
-    - fnGlobalObject.js
+includes: [fnGlobalObject.js]
 ---*/
 
-function testcase() {
   // in non-strict mode, 'this' is bound to the global object.
   var desc = Object.getOwnPropertyDescriptor(fnGlobalObject(), "NaN");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
-  return false;
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-179.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-179.js
index c00291e2b87b79ac05c22111d8b001fd8f3709c9..2cad474cdff131b1a3d22cf817a8057237a9d555 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-179.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-179.js
@@ -6,22 +6,14 @@ es5id: 15.2.3.3-4-179
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (Global.Infinity)
-includes:
-    - runTestCase.js
-    - fnGlobalObject.js
+includes: [fnGlobalObject.js]
 ---*/
 
-function testcase() {
   // in non-strict mode, 'this' is bound to the global object.
   var desc = Object.getOwnPropertyDescriptor(fnGlobalObject(),  "Infinity");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
-  return false;
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-18.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-18.js
index 10f05b7b3906490d5284c07ea55bf15770bc5ea0..d7ced8dabc8f3a11dc1fe4a09037ae226adc7f88 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-18.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-18.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-18
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Object.defineProperty)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Object, "defineProperty");
-  if (desc.value === Object.defineProperty &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Object.defineProperty, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-180.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-180.js
index 203eca51706455dd9f4920b6ae50ee04e42df1c5..9f73a8a376116cd25087915937757dab9c389e5f 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-180.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-180.js
@@ -6,22 +6,14 @@ es5id: 15.2.3.3-4-180
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (Global.undefined)
-includes:
-    - runTestCase.js
-    - fnGlobalObject.js
+includes: [fnGlobalObject.js]
 ---*/
 
-function testcase() {
   // in non-strict mode, 'this' is bound to the global object.
   var desc = Object.getOwnPropertyDescriptor(fnGlobalObject(),  "undefined");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
-  return false;
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-182.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-182.js
index 4345bd90ad84e417a90001c77957825fbe74b9ea..33da0a40b622da8f5161a39f42140aa05ff53274 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-182.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-182.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-182
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (Object.prototype)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Object, "prototype");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-183.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-183.js
index 8220eaa59f006764e1b7493538717589b26ca8c4..3501500ff9f1803dc0bd584b63c5096e0b0db8dd 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-183.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-183.js
@@ -6,15 +6,8 @@ es5id: 15.2.3.3-4-183
 description: >
     Object.getOwnPropertyDescriptor returns undefined for non-existent
     property (arguments_1) on built-in object (Function)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Function, "arguments_1");
 
-  if (desc === undefined)
-    return true;
-  else
-    return false;  
- }
-runTestCase(testcase);
+assert.sameValue(desc, undefined, 'desc');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-184.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-184.js
index b2b46634c1b448217f4bfaa1feb223f256e62589..465abc470808c066876b61208e42cd84eccc9d17 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-184.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-184.js
@@ -6,15 +6,8 @@ es5id: 15.2.3.3-4-184
 description: >
     Object.getOwnPropertyDescriptor returns undefined for non-existent
     property (caller) on built-in object (Math)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "caller");
 
-  if (desc === undefined)
-    return true;  
-  else
-    return false;
- }
-runTestCase(testcase);
+assert.sameValue(desc, undefined, 'desc');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-185.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-185.js
index 7a94d405d27a53f43617583d600120cddc45a437..ce028abd73b50838cb777f8385a4969170e090b0 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-185.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-185.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-185
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (Function.prototype)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Function, "prototype");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-186.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-186.js
index 7e59850b6abcd2417f103344810984c2c399c561..157dc97c7df2a5974c413e414d0242652f015bbf 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-186.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-186.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-186
 description: >
     Object.getOwnPropertyDescriptor returns data desc for properties
     on built-ins (Function.length)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Function, "length");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === true &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-187.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-187.js
index 607b0c2cf6d79a958a2629acb8c0c082ecb4d844..21c83658fef754a41281dfd432984256f265d2c6 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-187.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-187.js
@@ -6,20 +6,14 @@ es5id: 15.2.3.3-4-187
 description: >
     Object.getOwnPropertyDescriptor returns data desc for properties
     on built-ins (Function (instance).length)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var f = Function('return 42;');
 
   var desc = Object.getOwnPropertyDescriptor(f, "length");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === true &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-188.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-188.js
index f533063eeef0793a53871195fb205f4ae28d4357..31a6e9cfbf6f58f7d8f4f6dec61de1b84593283a 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-188.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-188.js
@@ -6,12 +6,9 @@ es5id: 15.2.3.3-4-188
 description: >
     Object.getOwnPropertyDescriptor returns undefined for non-existent
     properties on built-ins (Function (instance).name)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var f = Function('return 42;');
   var desc = Object.getOwnPropertyDescriptor(f, "functionNameHopefullyDoesNotExist");
-  return desc === undefined;
- }
-runTestCase(testcase);
+
+assert.sameValue(desc, undefined, 'desc');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-189.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-189.js
index 1a6fbc89319d608db3d13860df5ce144885875ee..b7111c0fa54f1b2e34832f2540db0648fa12782e 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-189.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-189.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-189
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (Array.prototype)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Array, "prototype");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-19.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-19.js
index e063a44e5238f304c29b12988e37c884142ec6e5..950f690bee60294504e5bcada4ee839b2723f574 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-19.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-19.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-19
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Object.defineProperties)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Object, "defineProperties");
-  if (desc.value === Object.defineProperties &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Object.defineProperties, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-190.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-190.js
index 8f292c5fa7065b327c034be2b37f54fad56583ad..f190508dc7b8ef75011724480eb019479e6dcfd2 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-190.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-190.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-190
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (String.prototype)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(String, "prototype");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-191.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-191.js
index b03f1a535840c83b9222561e6cf0302fa809718f..4f351bf89298ceb787f2e1352a455ea7b13060a1 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-191.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-191.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-191
 description: >
     Object.getOwnPropertyDescriptor returns data desc for properties
     on built-ins (String.length)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(String, "length");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === true &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-192.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-192.js
index 45dcc6b45aa6d28b3109e495acd9030de607c6de..e20fb56dc9ae6dc0b22589a023a96d23a102c123 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-192.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-192.js
@@ -6,19 +6,13 @@ es5id: 15.2.3.3-4-192
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (String (instance).length)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var s = new String("abc");
   var desc = Object.getOwnPropertyDescriptor(s, "length");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-193.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-193.js
index bdecafd8586aea7e0e54c0825ad6a159601d8e85..b0e4b8e0bf7ed4e616cd0a221280e5d286948a4c 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-193.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-193.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-193
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (Boolean.prototype)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Boolean, "prototype");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-194.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-194.js
index c26303ed7e25efbb069e7ee35e9e9da7148aa1ac..41d92a8bf2d5f818e70d75c66f59d567e20e1ba8 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-194.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-194.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-194
 description: >
     Object.getOwnPropertyDescriptor returns data desc for properties
     on built-ins (Boolean.length)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Boolean, "length");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === true &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-195.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-195.js
index ed9e207ff25de0c8aca0d3dcbadd427a411b9292..96cca8650c51ed31d04b2ebe7f3028c8a322c2f4 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-195.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-195.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-195
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (Number.prototype)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Number, "prototype");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-196.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-196.js
index 89646bb8d55e217ea0ed7e983f1c5e83f41e8e98..c1b5a1fbb08d83a8f9a6310ac7854189f287a534 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-196.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-196.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-196
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (Number.MAX_VALUE)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Number, "MAX_VALUE");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-197.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-197.js
index db4dad93bc9f28bf24cca1438915e3591462ebec..e09636d4511a723f1cd53f90a4eb981fd38d93ab 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-197.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-197.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-197
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (Number.MIN_VALUE)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Number, "MIN_VALUE");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-198.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-198.js
index fae7f8838f584205052e8dcff1e6d026bcc5bcaf..660e7d41bcd286b53072b59a0e4a416cb0109a35 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-198.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-198.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-198
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (Number.NaN)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Number, "NaN");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-199.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-199.js
index d16678845567c6c9a800e3ddf4894fcd4cf72d3e..1f02fbb74c51c6f1a2d9d57451b03c246bce93d9 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-199.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-199.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-199
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (Number.NEGATIVE_INFINITY)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Number, "NEGATIVE_INFINITY");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-2.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-2.js
index 6032c0dba1cfcbd7b9c2a817c5fb8a1cc46ee678..57fbdce5b938cd1599f02c58d4bf02e6b65dc0c9 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-2.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-2.js
@@ -6,15 +6,10 @@ es5id: 15.2.3.3-4-2
 description: >
     Object.getOwnPropertyDescriptor returns undefined for non-existent
     properties
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
     var o = {};
 
     var desc = Object.getOwnPropertyDescriptor(o, "foo");
-    if (desc === undefined) {
-      return true;
-    }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc, undefined, 'desc');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-20.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-20.js
index f46f5578027adbb220fe7f769ba5e99521745a6d..1c444266c962758c2710da8f0dbfc548f845c023 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-20.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-20.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-20
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Object.seal)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Object, "seal");
-  if (desc.value === Object.seal &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Object.seal, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-200.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-200.js
index ab3d1f83b1f66db61ce7a8469f5f9993b2bcaae9..7cd42f388eac90a298be056707e5f1ed3527318d 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-200.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-200.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-200
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (Number.POSITIVE_INFINITY)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Number, "POSITIVE_INFINITY");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-201.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-201.js
index 439e292675d9ae108805ac633d3a22613d9358cd..68bafbcb86fffec024729783aa449874f149cd43 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-201.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-201.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-201
 description: >
     Object.getOwnPropertyDescriptor returns data desc for properties
     on built-ins (Number.length)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Number, "length");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === true &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-202.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-202.js
index d06e845f855bedd260b24ebc576aa12dfd643ce1..5eb7df674ffd46d24c6b94f4e87e9b53272985dd 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-202.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-202.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-202
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (Math.E)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "E");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-203.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-203.js
index 24dee1f732b2e187f7b4148d1749a1aae9bf727c..2b203feb98ce5517a01256ae9d2b6d87ecde3fec 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-203.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-203.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-203
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (Math.LN10)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "LN10");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-204.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-204.js
index 41b36e1e814f4e69d6400a4bf424a8b0ede4040d..e91ce89ba20d359bbc182eecc422bc86644961f5 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-204.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-204.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-204
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (Math.LN2)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "LN2");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-205.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-205.js
index 274bfe7dad210a43114ad7be767138d10d5d49f0..703820573aa2382feae717a87593abbe53d938ef 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-205.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-205.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-205
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (Math.LOG2E)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "LOG2E");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-206.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-206.js
index a1a03483a77022aa4384c72ad9bf68e060176a9c..1025fa7ac8ef750bd0ea1473d3e98782848b714c 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-206.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-206.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-206
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (Math.LOG10E)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "LOG10E");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-207.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-207.js
index 0bfe4f624bcc58b7bbb15885256e861b40832d32..a311883b6da233e4954940d56a186d4813a5b324 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-207.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-207.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-207
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (Math.PI)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "PI");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-208.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-208.js
index 9cb59dbc6d6c03a63ee5717c8412c7ac04df9dfd..6134a8182661ffe619e7439ed2cfba1d709f2ed0 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-208.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-208.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-208
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (Math.SQRT1_2)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "SQRT1_2");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-209.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-209.js
index 0daebe82a26be40e413622a7c0b6ccf61cf1b4c6..df90c64898b33d38813220771fe899973f2e2af5 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-209.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-209.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-209
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (Math.SQRT2)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "SQRT2");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-21.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-21.js
index 020b65d030b29a3ec599f58e65ac50d6b8e9597b..0c062b3a389ab5e05e89a78b40b22a7f37a34c3b 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-21.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-21.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-21
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Object.freeze)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Object, "freeze");
-  if (desc.value === Object.freeze &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Object.freeze, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-210.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-210.js
index 698bdfdc3e8228bbbe4dc4cd128cf9a153b6fa85..57b44134e336040facff85e1d38e104daa05b654 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-210.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-210.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-210
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (Date.prototype)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Date, "prototype");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-211.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-211.js
index 411e952b289d4803e50145f3a4299038326e17be..be1a29328ff014cd2ee375e1d4493c4e73ee74b1 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-211.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-211.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-211
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (RegExp.prototype)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(RegExp, "prototype");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-212.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-212.js
index db114c71b7665f90aae6d8bcd7ea3f4995ab03f5..38c6a0721a88d069cbf84cee48af1febac61dd5a 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-212.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-212.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-212
 description: >
     Object.getOwnPropertyDescriptor returns accessor desc for
     accessors on built-ins (RegExp.prototype.source)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "source");
 
-  if (desc.hasOwnProperty('writable') === false &&
-      desc.enumerable === false &&
-      desc.configurable === true &&
-      typeof desc.get === 'function' &&
-      desc.set === undefined) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.hasOwnProperty('writable'), false, 'desc.hasOwnProperty("writable")');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
+assert.sameValue(typeof desc.get, 'function', 'typeof desc.get');
+assert.sameValue(desc.set, undefined, 'desc.set');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-213.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-213.js
index 5868891ec8bc37491eca07dfe4ce0dca5e730105..f76fd78011500031a905964332d1636e4736a0d0 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-213.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-213.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-213
 description: >
     Object.getOwnPropertyDescriptor returns accessor desc for
     accessors on built-ins (RegExp.prototype.global)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "global");
 
-  if (desc.hasOwnProperty('writable') === false &&
-      desc.enumerable === false &&
-      desc.configurable === true &&
-      typeof desc.get === 'function' &&
-      desc.set === undefined) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.hasOwnProperty('writable'), false, 'desc.hasOwnProperty("writable")');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
+assert.sameValue(typeof desc.get, 'function', 'typeof desc.get');
+assert.sameValue(desc.set, undefined, 'desc.set');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-214.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-214.js
index f4d93c5cb792146c57d74604a10e41f314458b27..53ee976e355aa24b986dd4c31b83fa6e897ab46c 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-214.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-214.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-214
 description: >
     Object.getOwnPropertyDescriptor returns accessor desc for
     accessors on built-ins (RegExp.prototype.ignoreCase)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "ignoreCase");
 
-  if (desc.hasOwnProperty('writable') === false &&
-      desc.enumerable === false &&
-      desc.configurable === true &&
-      typeof desc.get === 'function' &&
-      desc.set === undefined) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.hasOwnProperty('writable'), false, 'desc.hasOwnProperty("writable")');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
+assert.sameValue(typeof desc.get, 'function', 'typeof desc.get');
+assert.sameValue(desc.set, undefined, 'desc.set');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-215.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-215.js
index 983b3b385bd94349396708d8212ea1ed61994199..524d5a9409250caa24a40f8261c4a7403b915ae1 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-215.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-215.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-215
 description: >
     Object.getOwnPropertyDescriptor returns accessor desc for
     accessors on built-ins (RegExp.prototype.multiline)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "multiline");
 
-  if (desc.hasOwnProperty('writable') === false &&
-      desc.enumerable === false &&
-      desc.configurable === true &&
-      typeof desc.get === 'function' &&
-      desc.set === undefined) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.hasOwnProperty('writable'), false, 'desc.hasOwnProperty("writable")');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
+assert.sameValue(typeof desc.get, 'function', 'typeof desc.get');
+assert.sameValue(desc.set, undefined, 'desc.set');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-216.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-216.js
index 65f1ae42189266826bf43bd33e5a743c5542f8d6..d78a100e2f5618532f8d63e212dd623fe31e9875 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-216.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-216.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-216
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (Error.prototype)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Error, "prototype");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-217.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-217.js
index 754a9fe908cb52b11edb8b78d4a9e33cfecf2306..96f15d285ee8f807e26f0227f909b6600f63187a 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-217.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-217.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-217
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (EvalError.prototype)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(EvalError, "prototype");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-218.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-218.js
index 6db4b77e55f720feea575daf83429e8164f305cb..9ee73cee5061f36c6673776f8f9c33b1c3e9d734 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-218.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-218.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-218
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (RangeError.prototype)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(RangeError, "prototype");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-219.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-219.js
index 98a6119ca35f683f8ce74326451a96ccda55c9e2..3c480f1fe499ed99163f3a5e745417b7cb12b10d 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-219.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-219.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-219
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (ReferenceError.prototype)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(ReferenceError, "prototype");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-22.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-22.js
index 42734603dd8602330ab84605fa626cff89efa381..78ad6671d4317b10c6b6bc9cd7bebf4cbf08ae12 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-22.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-22.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-22
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Object.preventExtensions)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Object, "preventExtensions");
-  if (desc.value === Object.preventExtensions &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Object.preventExtensions, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-220.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-220.js
index 3cfe046e7e869efa976d268e54c9ddf4f4b9d9d1..9472c9a6c1097d16744f1ed30bf39c5d1d41f0e0 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-220.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-220.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-220
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (SyntaxError.prototype)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(SyntaxError, "prototype");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-221.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-221.js
index a1d6c4510060a5dd4912a103898a24c06a196072..77a19e11ec73376eb5006d6e6f2a93d2addcc4a1 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-221.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-221.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-221
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (TypeError.prototype)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(TypeError, "prototype");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-222.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-222.js
index 9b15146b21a739a82e659a8f3f08a6c3d2449ae4..26be6babdc843c25d20c30b4837357add2bfd76c 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-222.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-222.js
@@ -6,18 +6,12 @@ es5id: 15.2.3.3-4-222
 description: >
     Object.getOwnPropertyDescriptor returns data desc (all false) for
     properties on built-ins (URIError.prototype)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(URIError, "prototype");
 
-  if (desc.writable === false &&
-      desc.enumerable === false &&
-      desc.configurable === false &&
-      desc.hasOwnProperty('get') === false &&
-      desc.hasOwnProperty('set') === false) {
-    return true;
-  }
- }
-runTestCase(testcase);
+assert.sameValue(desc.writable, false, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
+assert.sameValue(desc.hasOwnProperty('get'), false, 'desc.hasOwnProperty("get")');
+assert.sameValue(desc.hasOwnProperty('set'), false, 'desc.hasOwnProperty("set")');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-223.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-223.js
index dd659ac8925d48d4f4dcbf335b23ffe506ea68fd..14882f661e8bbed7d90fb0f256ff250719ff534d 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-223.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-223.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-4-223
 description: >
     Object.getOwnPropertyDescriptor - ensure that 'value' property of
     returned object is data property with correct 'value' attribute
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "property": "ownDataProperty" };
 
         var desc = Object.getOwnPropertyDescriptor(obj, "property");
 
-        return desc.value === "ownDataProperty";
-    }
-runTestCase(testcase);
+assert.sameValue(desc.value, "ownDataProperty", 'desc.value');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-225.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-225.js
index 7d24d41127a2eef9c76c892cd28be41579fd3d5d..a0efcad8017455d1297a4dfe944db7ad5c71b4e6 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-225.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-225.js
@@ -7,10 +7,8 @@ description: >
     Object.getOwnPropertyDescriptor - ensure that 'value' property of
     returned object is data property with correct 'enumerable'
     attribute
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "property": "ownDataProperty" };
 
         var desc = Object.getOwnPropertyDescriptor(obj, "property");
@@ -22,6 +20,4 @@ function testcase() {
             }
         }
 
-        return accessed;
-    }
-runTestCase(testcase);
+assert(accessed, 'accessed !== true');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-227.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-227.js
index 4df2a95a38828d6ca9d84ee4819e7ac6db9e99bf..bb608b3062b4e5aac9297bd2a3de48ebeea203be 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-227.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-227.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-4-227
 description: >
     Object.getOwnPropertyDescriptor - ensure that 'writable' property
     of returned object is data property with correct 'value' attribute
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "property": "ownDataProperty" };
 
         var desc = Object.getOwnPropertyDescriptor(obj, "property");
 
-        return desc.writable === true;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.writable, true, 'desc.writable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-229.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-229.js
index 7d155aef1e840ebd334028be085fba9c9da76d03..667429b87700d55443698622264b3361c5789f29 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-229.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-229.js
@@ -7,10 +7,8 @@ description: >
     Object.getOwnPropertyDescriptor - ensure that 'writable' property
     of returned object is data property with correct 'enumerable'
     attribute
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "property": "ownDataProperty" };
 
         var desc = Object.getOwnPropertyDescriptor(obj, "property");
@@ -22,6 +20,4 @@ function testcase() {
             }
         }
 
-        return accessed;
-    }
-runTestCase(testcase);
+assert(accessed, 'accessed !== true');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-23.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-23.js
index 42084f259debefb82a18e3486ab5a72ffe168250..ffb6f0a008bce596c0752a1013dd13aad8eaab6c 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-23.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-23.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-23
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Object.isSealed)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Object, "isSealed");
-  if (desc.value === Object.isSealed &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Object.isSealed, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-231.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-231.js
index 22340b0570479181f3cede02bf2e4534ad76cdd6..a93538a55a7af8e5ccaf9e9314074703eed50b2b 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-231.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-231.js
@@ -7,14 +7,10 @@ description: >
     Object.getOwnPropertyDescriptor - ensure that 'enumerable'
     property of returned object is data property with correct 'value'
     attribute
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "property": "ownDataProperty" };
 
         var desc = Object.getOwnPropertyDescriptor(obj, "property");
 
-        return desc.enumerable === true;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.enumerable, true, 'desc.enumerable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-233.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-233.js
index bcca19e99f0d4a6a7a8e74bf0402bad189a018db..8bffb2b625270758ad12d589c7b9af94455adebf 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-233.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-233.js
@@ -7,10 +7,8 @@ description: >
     Object.getOwnPropertyDescriptor - ensure that 'enumerable'
     property of returned object is data property with correct
     'enumerable' attribute
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "property": "ownDataProperty" };
 
         var desc = Object.getOwnPropertyDescriptor(obj, "property");
@@ -22,6 +20,4 @@ function testcase() {
             }
         }
 
-        return accessed;
-    }
-runTestCase(testcase);
+assert(accessed, 'accessed !== true');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-235.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-235.js
index c85dc80d932e20c6f76779dd582e68d76c1b0a37..37c5c80d2c64f3a25c5aa963f5a2547eca5d98ae 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-235.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-235.js
@@ -7,14 +7,10 @@ description: >
     Object.getOwnPropertyDescriptor - ensure that 'configurable'
     property of returned object is data property with correct 'value'
     attribute
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "property": "ownDataProperty" };
 
         var desc = Object.getOwnPropertyDescriptor(obj, "property");
 
-        return desc.configurable === true;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-237.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-237.js
index 479b66b3574ffda922c5aa2b0afbf502d4b1011f..1117ab125f2a78b47308f8137057deb2fb8c027d 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-237.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-237.js
@@ -7,10 +7,8 @@ description: >
     Object.getOwnPropertyDescriptor - ensure that 'configurable'
     property of returned object is data property with correct
     'enumerable' attribute
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "property": "ownDataProperty" };
 
         var desc = Object.getOwnPropertyDescriptor(obj, "property");
@@ -22,6 +20,4 @@ function testcase() {
             }
         }
 
-        return accessed;
-    }
-runTestCase(testcase);
+assert(accessed, 'accessed !== true');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-239.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-239.js
index b743f135a93100af409261997044171b27305f2e..12164016702bd1cd495452809943762e6c5cfd0b 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-239.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-239.js
@@ -6,10 +6,8 @@ es5id: 15.2.3.3-4-239
 description: >
     Object.getOwnPropertyDescriptor - ensure that 'get' property of
     returned object is data property with correct 'value' attribute
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = {};
         var fun = function () {
             return "ownDataProperty";
@@ -21,6 +19,4 @@ function testcase() {
 
         var desc = Object.getOwnPropertyDescriptor(obj, "property");
 
-        return desc.get === fun;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.get, fun, 'desc.get');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-24.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-24.js
index 92692ab858d572d46cb8b67504b258adf5afa245..6fec737dc1c9ca3a6664dd89fe6363040e8f8b1e 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-24.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-24.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-24
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Object.isFrozen)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Object, "isFrozen");
-  if (desc.value === Object.isFrozen &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Object.isFrozen, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-241.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-241.js
index 586b4d6cd70ab176c792766c369a444170490fb6..0f0ce28130d8a3ddff78d411167d73bc0e631b21 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-241.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-241.js
@@ -7,10 +7,8 @@ description: >
     Object.getOwnPropertyDescriptor - ensure that 'get' property of
     returned object is data property with correct 'enumerable'
     attribute
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = {};
         var fun = function () {
             return "ownDataProperty";
@@ -29,6 +27,4 @@ function testcase() {
             }
         }
 
-        return accessed;
-    }
-runTestCase(testcase);
+assert(accessed, 'accessed !== true');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-243.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-243.js
index f34380d9314c83ffa51fdd2657c6636ab4664b47..6fbe775307fccf1e8c27279227b5bec137fb8101 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-243.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-243.js
@@ -6,10 +6,8 @@ es5id: 15.2.3.3-4-243
 description: >
     Object.getOwnPropertyDescriptor - ensure that 'set' property of
     returned object is data property with correct 'value' attribute
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = {};
         var fun = function () {
             return "ownSetProperty";
@@ -21,6 +19,4 @@ function testcase() {
 
         var desc = Object.getOwnPropertyDescriptor(obj, "property");
 
-        return desc.set === fun;
-    }
-runTestCase(testcase);
+assert.sameValue(desc.set, fun, 'desc.set');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-245.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-245.js
index 5193716ca8351ff1a269396989cdf947cb2b9fd5..35d73454d29910466de19f9b6152d56c88c3dc37 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-245.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-245.js
@@ -7,10 +7,8 @@ description: >
     Object.getOwnPropertyDescriptor - ensure that 'set' property of
     returned object is data property with correct 'enumerable'
     attribute
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = {};
         var fun = function () {
             return "ownSetProperty";
@@ -29,6 +27,4 @@ function testcase() {
             }
         }
 
-        return accessed;
-    }
-runTestCase(testcase);
+assert(accessed, 'accessed !== true');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-247.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-247.js
index fec0c0845854d4cf849a68472e4f180dba9985e7..06bd87e7add62e35ebf9d3b287a23d06a0d83cd6 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-247.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-247.js
@@ -6,14 +6,10 @@ es5id: 15.2.3.3-4-247
 description: >
     Object.getOwnPropertyDescriptor - returned value is an instance of
     object
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = { "property": 100 };
 
         var desc = Object.getOwnPropertyDescriptor(obj, "property");
 
-        return desc instanceof Object;
-    }
-runTestCase(testcase);
+assert(desc instanceof Object, 'desc instanceof Object !== true');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-248.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-248.js
index 9e99ea607c655b2fcfc5b079fa10f2d91d4ceb2e..210d9286c8768595a2d69569f18651513ccd9b8a 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-248.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-248.js
@@ -7,10 +7,8 @@ description: >
     Object.getOwnPropertyDescriptor - returned object contains the
     property 'value' if the value of property 'value' is not
     explicitly specified when defined by Object.defineProperty
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = {};
         Object.defineProperty(obj, "property", {
             writable: true,
@@ -19,6 +17,4 @@ function testcase() {
 
         var desc = Object.getOwnPropertyDescriptor(obj, "property");
 
-        return "value" in desc;
-    }
-runTestCase(testcase);
+assert("value" in desc, '"value" in desc !== true');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-249.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-249.js
index 2b4dce2a2650eec271411e5ba5a1eac3c8cf1602..e19f7efceae9ca5c6302cfec4d1732d7d0d2dd7e 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-249.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-249.js
@@ -7,10 +7,8 @@ description: >
     Object.getOwnPropertyDescriptor - returned object contains the
     property 'set' if the value of property 'set' is not explicitly
     specified when defined by Object.defineProperty.
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = {};
         Object.defineProperty(obj, "property", {
             get: function () { },
@@ -19,6 +17,4 @@ function testcase() {
 
         var desc = Object.getOwnPropertyDescriptor(obj, "property");
 
-        return "set" in desc;
-    }
-runTestCase(testcase);
+assert("set" in desc, '"set" in desc !== true');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-25.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-25.js
index f162e99e22d41a2c66c513ced7a27e9e145ab849..6eadcabf30d22b01b2e2dac703096aa2956d6ff9 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-25.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-25.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-25
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Object.isExtensible)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Object, "isExtensible");
-  if (desc.value === Object.isExtensible &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Object.isExtensible, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-250.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-250.js
index 55d4eb0d54cf2f157130b2eaeb5c8fff8606a913..f2863cbe8237e174229687e28797800389a5aede 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-250.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-250.js
@@ -7,10 +7,8 @@ description: >
     Object.getOwnPropertyDescriptor - returned object contains the
     property 'get' if the value of property 'get' is not explicitly
     specified when defined by Object.defineProperty.
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
         var obj = {};
         Object.defineProperty(obj, "property", {
             set: function () {},
@@ -19,6 +17,4 @@ function testcase() {
 
         var desc = Object.getOwnPropertyDescriptor(obj, "property");
 
-        return "get" in desc;
-    }
-runTestCase(testcase);
+assert("get" in desc, '"get" in desc !== true');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-26.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-26.js
index 53a7cc6c613f4aab2621652787859178c01a8487..5428c62a32b53917455bb1de59a8255fb49030a3 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-26.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-26.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-26
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Object.keys)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Object, "keys");
-  if (desc.value === Object.keys &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Object.keys, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-27.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-27.js
index d7874f43aa076d8d78bf2201e53827c9389abe34..7b223ebdaaea8511278af252e527812252840e2a 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-27.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-27.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-27
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Object.prototype.constructor)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Object.prototype, "constructor");
-  if (desc.value === Object.prototype.constructor &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Object.prototype.constructor, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-28.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-28.js
index 5ae0f3afc02e297d69db3343c9da3c1ae546e930..0c01763f650b5b75bd8167776adc9f17de70f165 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-28.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-28.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-28
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Object.prototype.toString)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Object.prototype, "toString");
-  if (desc.value === Object.prototype.toString &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Object.prototype.toString, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-29.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-29.js
index fdb3e00681623585364ef2f38304e0d74b86543e..05b1775bfa7ad0ccdec409348ed157176300a46e 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-29.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-29.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-29
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Object.prototype.valueOf)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Object.prototype, "valueOf");
-  if (desc.value === Object.prototype.valueOf &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Object.prototype.valueOf, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-3.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-3.js
index fd8f7d9aeacdef5300949c0235077d75181549da..51507f70b5904fb8006ebd303b3c5a43714a329b 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-3.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-3.js
@@ -6,10 +6,8 @@ es5id: 15.2.3.3-4-3
 description: >
     Object.getOwnPropertyDescriptor returns an object representing an
     accessor desc for valid accessor properties
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
     var o = {};
 
     // dummy getter
@@ -19,11 +17,8 @@ function testcase() {
     Object.defineProperty(o, "foo", d);
 
     var desc = Object.getOwnPropertyDescriptor(o, "foo");
-    if (desc.get === getter &&
-        desc.set === undefined &&
-        desc.enumerable === false &&
-        desc.configurable === false) {
-      return true;
-    }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.get, getter, 'desc.get');
+assert.sameValue(desc.set, undefined, 'desc.set');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, false, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-30.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-30.js
index e7a77e6e5f552f63f5b7ef93686eefb9b9a23411..4b21dcaee578bd380d57e0447390c235a57a5edb 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-30.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-30.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-30
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Object.prototype.isPrototypeOf)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Object.prototype, "isPrototypeOf");
-  if (desc.value === Object.prototype.isPrototypeOf &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Object.prototype.isPrototypeOf, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-31.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-31.js
index 39c1af5688fc5e9716e7aa946af9db4730f1737d..7d0c1791d658080278f0b60e82be7c6ff42bc6a9 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-31.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-31.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-31
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Object.prototype.hasOwnProperty)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Object.prototype, "hasOwnProperty");
-  if (desc.value === Object.prototype.hasOwnProperty &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Object.prototype.hasOwnProperty, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-32.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-32.js
index 97d26b2c9f1d654a1d81f22b2642ae0550cc9915..df0942fea78fb5e112f2f9ec99c6d87a4c5e9509 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-32.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-32.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-32
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Object.prototype.propertyIsEnumerable)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Object.prototype, "propertyIsEnumerable");
-  if (desc.value === Object.prototype.propertyIsEnumerable &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Object.prototype.propertyIsEnumerable, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-33.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-33.js
index 92d5e4ed0360fc3f95cf79e97aa38437d3c0e262..ce6709d7c3d8f0bdbdb805b4b00906be9de493fb 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-33.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-33.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-33
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Object.prototype.toLocaleString)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Object.prototype, "toLocaleString");
-  if (desc.value === Object.prototype.toLocaleString &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Object.prototype.toLocaleString, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-34.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-34.js
index 3fc6a6fc161770eeb7861b623a2ad7e1ec9869d5..ee5c0a2f79815a39cbd3f41b8787b66e307c4742 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-34.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-34.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-34
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Function.prototype.constructor)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Function.prototype, "constructor");
-  if (desc.value === Function.prototype.constructor &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Function.prototype.constructor, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-35.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-35.js
index b023380dcfb6e11d512f7e67e97f57161cf68043..f3032e9006255e2de0e5dd24c15b8198561dfe7e 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-35.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-35.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-35
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Function.prototype.toString)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Function.prototype, "toString");
-  if (desc.value === Function.prototype.toString &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Function.prototype.toString, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-36.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-36.js
index aa09d9882f0568fa8899683749d1153b6930fd79..eb0099b59ef2e14706a8065fb058d31785534295 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-36.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-36.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-36
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Function.prototype.apply)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Function.prototype, "apply");
-  if (desc.value === Function.prototype.apply &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Function.prototype.apply, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-37.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-37.js
index ced2b5d6bae96e8a0f24a17fa14897296dc9be8e..bd67212c33039731d4072ec8d6429543a806f308 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-37.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-37.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-37
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Function.prototype.call)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Function.prototype, "call");
-  if (desc.value === Function.prototype.call &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Function.prototype.call, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-38.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-38.js
index eb1dba184ce4fe81505565252abaf90b17cdb8c6..4221bd930eed73f916c484c46bae88946cdbfb2c 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-38.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-38.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-38
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Function.prototype.bind)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Function.prototype, "bind");
-  if (desc.value === Function.prototype.bind &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Function.prototype.bind, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-39.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-39.js
index 836b62f4e4f8c009e3f6b7938bd247784d3992bd..88845ce6ca6b06c7971cdcf615b67dd1033aff04 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-39.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-39.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-39
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Array.prototype.constructor)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Array.prototype, "constructor");
-  if (desc.value === Array.prototype.constructor &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Array.prototype.constructor, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-4.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-4.js
index 371e10d6062c56c04b272347dfe1a48072e564e6..26c26fd7ed6c532a9d10a264cf67c72c130fb7db 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-4.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-4.js
@@ -6,19 +6,13 @@ es5id: 15.2.3.3-4-4
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Global.eval)
-includes:
-    - runTestCase.js
-    - fnGlobalObject.js
+includes: [fnGlobalObject.js]
 ---*/
 
-function testcase() {
   var global = fnGlobalObject();
   var desc = Object.getOwnPropertyDescriptor(global,  "eval");
-  if (desc.value === global.eval &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, global.eval, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-40.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-40.js
index d55dd1a168e04e1935b19510f383fc08204d6ee4..41ff7c2ed9f85d11aa14e752d17c580a2dec00ee 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-40.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-40.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-40
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Array.prototype.concat)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Array.prototype, "concat");
-  if (desc.value === Array.prototype.concat &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Array.prototype.concat, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-41.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-41.js
index 17f5084ca9a7cfd4cbbae66421e827cad07ae9fc..837182940453cdaaa32c217d752900a370e4b9c4 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-41.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-41.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-41
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Array.prototype.join)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Array.prototype, "join");
-  if (desc.value === Array.prototype.join &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Array.prototype.join, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-42.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-42.js
index 0e86655c9c9f166b65638caac395b1dd0263cf7a..cc6ebd3373fee74ed5599f2fb8d62b2bd170e5d5 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-42.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-42.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-42
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Array.prototype.reverse)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Array.prototype, "reverse");
-  if (desc.value === Array.prototype.reverse &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Array.prototype.reverse, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-43.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-43.js
index ee0fb759cb98f470d21b744cce1e785162b08842..aeee8d512f033d0fd3b2c30dbf62aa24194eee50 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-43.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-43.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-43
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Array.prototype.slice)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Array.prototype, "slice");
-  if (desc.value === Array.prototype.slice &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Array.prototype.slice, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-44.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-44.js
index cd85140e406065ea2a6ee315f66c58e688c71657..9203bfce748e8ec59a3dff27b1ac4a3a9ad70aca 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-44.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-44.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-44
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Array.prototype.sort)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Array.prototype, "sort");
-  if (desc.value === Array.prototype.sort &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Array.prototype.sort, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-45.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-45.js
index f6afd8375f0107c6064871cb134995a1c6597190..50148ed31e47e602fd7f05e0227a5d161989456d 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-45.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-45.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-45
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Array.prototype.toString)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Array.prototype, "toString");
-  if (desc.value === Array.prototype.toString &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Array.prototype.toString, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-46.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-46.js
index 7e024a695b093278132dfd347f6b08f0089d00b6..ff1b0d9ed83b23234783fdf002a02c14fca242c8 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-46.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-46.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-46
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Array.prototype.push)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Array.prototype, "push");
-  if (desc.value === Array.prototype.push &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Array.prototype.push, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-47.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-47.js
index b483255f947efe69d7b3a9eda378d4474d425c9c..932f02c6090ddc5a2d97d7c67f38b87d361e5a04 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-47.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-47.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-47
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Array.prototype.pop)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Array.prototype, "pop");
-  if (desc.value === Array.prototype.pop &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Array.prototype.pop, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-48.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-48.js
index d96e76c3be51f2f9ab078852b2f3fad737916754..eded49311d6097de3a24ff8619127425f2f2e807 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-48.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-48.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-48
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Array.prototype.shift)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Array.prototype, "shift");
-  if (desc.value === Array.prototype.shift &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Array.prototype.shift, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-49.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-49.js
index 7f13b40c2373bdd05da6c28ff10b1dcba9ec0e92..969af5e534240bc980394217483a49765b915e52 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-49.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-49.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-49
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Array.prototype.unshift)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Array.prototype, "unshift");
-  if (desc.value === Array.prototype.unshift &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Array.prototype.unshift, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-5.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-5.js
index de15574643a5f37d29941036ff8ac1b4172e40f0..fb442a07138dd322dffa666921f503a320349512 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-5.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-5.js
@@ -6,19 +6,13 @@ es5id: 15.2.3.3-4-5
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Global.parseInt)
-includes:
-    - runTestCase.js
-    - fnGlobalObject.js
+includes: [fnGlobalObject.js]
 ---*/
 
-function testcase() {
   var global = fnGlobalObject();
   var desc = Object.getOwnPropertyDescriptor(global,  "parseInt");
-  if (desc.value === global.parseInt &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, global.parseInt, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-50.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-50.js
index 8f101284963f29f52853357b63688dc945e3ed4d..c8edbe16dc1aae1b270e742e7445667deddede3a 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-50.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-50.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-50
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Array.prototype.splice)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Array.prototype, "splice");
-  if (desc.value === Array.prototype.splice &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Array.prototype.splice, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-51.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-51.js
index 0e7ec12640dd7d203f63aa17ad9554520d1ea44d..ea44b8ff6fda7e8a5b3917e327ce6f9af9b0568f 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-51.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-51.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-51
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Array.prototype.toLocaleString)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Array.prototype, "toLocaleString");
-  if (desc.value === Array.prototype.toLocaleString &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Array.prototype.toLocaleString, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-52.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-52.js
index 15098f9965c2930254d1020cf40174272cc9ca27..5081cc373506140ae4d80936ed67b1f30473915e 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-52.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-52.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-52
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Array.prototype.indexOf)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Array.prototype, "indexOf");
-  if (desc.value === Array.prototype.indexOf &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Array.prototype.indexOf, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-53.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-53.js
index 2a68f5af26c9b9550f5dd32f49a1c465cb75895e..82c22d316664305914d9ac8026a11071ddac2354 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-53.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-53.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-53
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Array.prototype.lastIndexOf)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Array.prototype, "lastIndexOf");
-  if (desc.value === Array.prototype.lastIndexOf &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Array.prototype.lastIndexOf, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-54.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-54.js
index 19864af4b2f484f002eee42b8a36747a57c82303..04a7d7a2b47bddcc10b51f590b65e6395c89aa8a 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-54.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-54.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-54
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Array.prototype.every)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Array.prototype, "every");
-  if (desc.value === Array.prototype.every &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Array.prototype.every, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-55.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-55.js
index cef09d3cd3666e1244ad7340120c7103858c0a41..993393559b1abac218c07986432752e0cc27fd46 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-55.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-55.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-55
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Array.prototype.some)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Array.prototype, "some");
-  if (desc.value === Array.prototype.some &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Array.prototype.some, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-56.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-56.js
index a7addb9d87951799e7a074f4d67ff3ef3afe1955..02d6dc70f67a111b6d700095820a67c2dc1ac473 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-56.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-56.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-56
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Array.prototype.forEach)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Array.prototype, "forEach");
-  if (desc.value === Array.prototype.forEach &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Array.prototype.forEach, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-57.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-57.js
index 93f19f35ac5fe17df3f07b6db8262361158b1f6b..22bce1956f455cecb81b704c667d775d1411a2f7 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-57.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-57.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-57
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Array.prototype.map)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Array.prototype, "map");
-  if (desc.value === Array.prototype.map &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Array.prototype.map, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-58.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-58.js
index ef5260666238ae65f7c994b43486b66a49fd9e99..ccc1c60d1ffb44ebf4a16bd9d421974cf4b13c48 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-58.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-58.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-58
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Array.prototype.filter)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Array.prototype, "filter");
-  if (desc.value === Array.prototype.filter &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Array.prototype.filter, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-59.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-59.js
index 16d6ec7bb01109a9c8287490408616940bedff1e..0f261012972d66e10246dd4df05edd47594eba96 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-59.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-59.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-59
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Array.prototype.reduce)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Array.prototype, "reduce");
-  if (desc.value === Array.prototype.reduce &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Array.prototype.reduce, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-6.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-6.js
index 19a7078018a70cda702be29a8bd172f459c41089..f4287cf87d7c14e8cea6deb36ef1517f650c56fe 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-6.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-6.js
@@ -6,19 +6,13 @@ es5id: 15.2.3.3-4-6
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Global.parseFloat)
-includes:
-    - runTestCase.js
-    - fnGlobalObject.js
+includes: [fnGlobalObject.js]
 ---*/
 
-function testcase() {
   var global = fnGlobalObject();
   var desc = Object.getOwnPropertyDescriptor(global, "parseFloat");
-  if (desc.value === global.parseFloat &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, global.parseFloat, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-60.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-60.js
index a71b20a974368b8b48d198cec36970ac6ad8afea..c1322e64c8c2801a17ffc1597d998d06dbfebb53 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-60.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-60.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-60
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Array.prototype.reduceRight)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Array.prototype, "reduceRight");
-  if (desc.value === Array.prototype.reduceRight &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Array.prototype.reduceRight, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-61.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-61.js
index fc9b089021eb00252e4b7ea7d9bec7af7caf828e..d01a7fad80fb3ec0cdc45d602116e10130b9d121 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-61.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-61.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-61
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (String.fromCharCode)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(String, "fromCharCode");
-  if (desc.value === String.fromCharCode &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, String.fromCharCode, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-62.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-62.js
index cc6d020d07ea39c6c73e622db2c8511aee8c1b91..0bdc7d40e49fc5aa83baef47a37786abe51e8c49 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-62.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-62.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-62
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (String.prototype.constructor)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(String.prototype, "constructor");
-  if (desc.value === String.prototype.constructor &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, String.prototype.constructor, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-63.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-63.js
index e65ca54d2d18d7aaec10bef871476decab312bd6..f1cc351388e345e1398b80d19224236a0be82a9f 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-63.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-63.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-63
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (String.prototype.charAt)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(String.prototype, "charAt");
-  if (desc.value === String.prototype.charAt &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, String.prototype.charAt, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-64.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-64.js
index 43ba1e6932c51b1fd48b96dcac1674e7b3ef3b61..51b1254def31cd1b4f4fc967f676c958c89ff26f 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-64.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-64.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-64
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (String.prototype.charCodeAt)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(String.prototype, "charCodeAt");
-  if (desc.value === String.prototype.charCodeAt &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, String.prototype.charCodeAt, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-65.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-65.js
index 8085aabaf096c2e2767af70077c0ffd7752c703b..dae2b940f828705a60d8959ae2abd805eb527ad8 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-65.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-65.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-65
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (String.prototype.concat)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(String.prototype, "concat");
-  if (desc.value === String.prototype.concat &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, String.prototype.concat, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-66.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-66.js
index 101427299f99d930454cf667cbbc3fbf9510ba14..ebc3efd6d235b41031d81df41b05d64c672d7b1c 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-66.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-66.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-66
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (String.prototype.indexOf)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(String.prototype, "indexOf");
-  if (desc.value === String.prototype.indexOf &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, String.prototype.indexOf, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-67.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-67.js
index c5f2f0b4fb4c8c054efdc0724e7820385f42bcd0..9d6819d2d730fac1e9c01e16e775935ceafb4683 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-67.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-67.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-67
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (String.prototype.lastIndexOf)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(String.prototype, "lastIndexOf");
-  if (desc.value === String.prototype.lastIndexOf &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, String.prototype.lastIndexOf, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-68.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-68.js
index 1a69af4f0078e9ae2bc3afa44b9874daddcd4d2a..cdd96266201245696084a60549062d480e07c40e 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-68.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-68.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-68
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (String.prototype.match)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(String.prototype, "match");
-  if (desc.value === String.prototype.match &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, String.prototype.match, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-69.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-69.js
index 07e8a670e4c62d6feb340868897a8a5dd13245b3..d1f0b5a916ceadbc4f2a43782690b05dc74ac411 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-69.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-69.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-69
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (String.prototype.replace)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(String.prototype, "replace");
-  if (desc.value === String.prototype.replace &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, String.prototype.replace, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-7.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-7.js
index 37077cd0386a5e0cef5cba74f6f6479f047f0a78..ddeb2a079b3b41540a0a8d57ad4a8d868f8575c2 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-7.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-7.js
@@ -6,19 +6,13 @@ es5id: 15.2.3.3-4-7
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Global.isNaN)
-includes:
-    - runTestCase.js
-    - fnGlobalObject.js
+includes: [fnGlobalObject.js]
 ---*/
 
-function testcase() {
   var global = fnGlobalObject();
   var desc = Object.getOwnPropertyDescriptor(global,  "isNaN");
-  if (desc.value === global.isNaN &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, global.isNaN, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-70.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-70.js
index 692ed9970ac2dd0744a23e9cfc613cb2e4f42525..5a3348774b7dd0f4839856281d831be03e70a8d9 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-70.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-70.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-70
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (String.prototype.search)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(String.prototype, "search");
-  if (desc.value === String.prototype.search &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, String.prototype.search, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-71.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-71.js
index b3f5b75ba12ebf7b5e1786e96ae45d4f5c36fca8..20b8f3cd46c5e914d60a58bacb339c6a65e7caad 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-71.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-71.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-71
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (String.prototype.slice)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(String.prototype, "slice");
-  if (desc.value === String.prototype.slice &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, String.prototype.slice, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-72.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-72.js
index d2010852baac0d8e5e80365a915b29551a70bbff..f3a6a9a484de5ad30df2a6b864a6408e648a7278 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-72.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-72.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-72
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (String.prototype.split)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(String.prototype, "split");
-  if (desc.value === String.prototype.split &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, String.prototype.split, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-73.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-73.js
index 7aa95043d0ceb3e5d6219e91b8fb19fef0d92b50..a1b0a50734baabc404c5cbbbb35e20d33c40eb42 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-73.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-73.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-73
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (String.prototype.substring)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(String.prototype, "substring");
-  if (desc.value === String.prototype.substring &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, String.prototype.substring, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-75.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-75.js
index 423248f47e56bc4cc51fe3e585750ab161a45e5e..6bfd04221fad2986e25dae30c0f4f8ccb54b10c6 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-75.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-75.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-75
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (String.prototype.toLowerCase)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(String.prototype, "toLowerCase");
-  if (desc.value === String.prototype.toLowerCase &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, String.prototype.toLowerCase, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-76.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-76.js
index cd1d98dd2a820b210ce97620f13fe1bf3523cf7b..4044ddd372e8d44fb4614fd3339a929f68e16927 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-76.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-76.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-76
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (String.prototype.toString)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(String.prototype, "toString");
-  if (desc.value === String.prototype.toString &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, String.prototype.toString, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-77.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-77.js
index 17a34a42bc30a1a023ea23059bbcd34f4291f6a5..63118de0853ab77dd0bd7e22d577b473cd9dd939 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-77.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-77.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-77
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (String.prototype.toUpperCase)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(String.prototype, "toUpperCase");
-  if (desc.value === String.prototype.toUpperCase &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, String.prototype.toUpperCase, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-78.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-78.js
index ba9fed18a1f60d6d7407f886e9ffb2981c092b51..26793f30031a58d772d2b76cb4502eb9a5e2ccac 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-78.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-78.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-78
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (String.prototype.valueOf)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(String.prototype, "valueOf");
-  if (desc.value === String.prototype.valueOf &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, String.prototype.valueOf, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-79.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-79.js
index 66b160053540b15de040fd2b3d0e7b205282ac30..e81d1eb99d26706c7e6948675ae9f2ad8ddbd450 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-79.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-79.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-79
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (String.prototype.toLocaleLowerCase)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(String.prototype, "toLocaleLowerCase");
-  if (desc.value === String.prototype.toLocaleLowerCase &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, String.prototype.toLocaleLowerCase, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-8.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-8.js
index c410e86064af4cdbf9f1ffa113dd9f2d8bef936d..39a189fd5dea7fc463cf34329f52888df7bde52c 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-8.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-8.js
@@ -6,19 +6,13 @@ es5id: 15.2.3.3-4-8
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Global.isFinite)
-includes:
-    - runTestCase.js
-    - fnGlobalObject.js
+includes: [fnGlobalObject.js]
 ---*/
 
-function testcase() {
   var global = fnGlobalObject();
   var desc = Object.getOwnPropertyDescriptor(global,  "isFinite");
-  if (desc.value === global.isFinite &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, global.isFinite, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-80.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-80.js
index 8070e4f92e9688e91813023df9e7317adcb9b125..577756342cdde54fcada5ac606cb96dc43dc450e 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-80.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-80.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-80
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (String.prototype.toLocaleUpperCase)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(String.prototype, "toLocaleUpperCase");
-  if (desc.value === String.prototype.toLocaleUpperCase &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, String.prototype.toLocaleUpperCase, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-81.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-81.js
index fc9a9aea523a9273a5205a2592b802f2d10bcc52..d399238b12d8750ebe25b77c3804918b043cf9cd 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-81.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-81.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-81
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (String.prototype.localeCompare)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(String.prototype, "localeCompare");
-  if (desc.value === String.prototype.localeCompare &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, String.prototype.localeCompare, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-82.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-82.js
index 1ae008c3e163fcecf11d762c8de1001dfc0c924c..3412ec421ae0e2b63ecaf4eb287cc3ceb51dbb84 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-82.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-82.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-82
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (String.prototype.trim)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(String.prototype, "trim");
-  if (desc.value === String.prototype.trim &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, String.prototype.trim, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-84.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-84.js
index 6969f0dda1143e000110e5efacfdc7e1f5338d7e..25ab07de3df2e2341f48733467a20f907780d76a 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-84.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-84.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-84
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Boolean.prototype.constructor)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Boolean.prototype, "constructor");
-  if (desc.value === Boolean.prototype.constructor &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Boolean.prototype.constructor, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-85.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-85.js
index 117dfb5770a136fd7f1cd1125cd5a86a4d432e96..463d1e39d5c75bcd2985be02bfedccf6aad7561b 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-85.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-85.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-85
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Boolean.prototype.toString)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Boolean.prototype, "toString");
-  if (desc.value === Boolean.prototype.toString &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Boolean.prototype.toString, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-86.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-86.js
index 8aa72545e143fb0291630a8178cdd5757fce0f4a..4b5880d4e187f60b35add7ab57e7eaaf501f9614 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-86.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-86.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-86
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Boolean.prototype.valueOf)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Boolean.prototype, "valueOf");
-  if (desc.value === Boolean.prototype.valueOf &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Boolean.prototype.valueOf, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-88.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-88.js
index 7812d8aaf0350387e51bdbda9198758cbfe3e5bf..130d2d45a6c9fcde0f2aa7f76aea711e5925439b 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-88.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-88.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-88
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Number.prototype.constructor)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Number.prototype, "constructor");
-  if (desc.value === Number.prototype.constructor &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Number.prototype.constructor, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-89.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-89.js
index 0fac176a46fd34548405f85404f93ee97cea54e2..b392e59799f28ecbad6f64d8c7f1a4d591b7b950 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-89.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-89.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-89
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Number.prototype.toString)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Number.prototype, "toString");
-  if (desc.value === Number.prototype.toString &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Number.prototype.toString, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-9.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-9.js
index 56f83565ecaab00958d8a59bb9c905a39b07cbdb..cefada6b5ad05e4d893e1f6497f3bcbda9f10efb 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-9.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-9.js
@@ -6,19 +6,13 @@ es5id: 15.2.3.3-4-9
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Global.decodeURI)
-includes:
-    - runTestCase.js
-    - fnGlobalObject.js
+includes: [fnGlobalObject.js]
 ---*/
 
-function testcase() {
   var global = fnGlobalObject();
   var desc = Object.getOwnPropertyDescriptor(global, "decodeURI");
-  if (desc.value === global.decodeURI &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, global.decodeURI, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-90.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-90.js
index 864ebdb995ad32d3255c22d96fa32cd1d8cc9617..2f8c7252709501323e31c4768f4d80e3e23ddfcb 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-90.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-90.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-90
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Number.prototype.toLocaleString)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Number.prototype, "toLocaleString");
-  if (desc.value === Number.prototype.toLocaleString &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Number.prototype.toLocaleString, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-91.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-91.js
index 4ece44de641c90f6a0d312395b364edc6ad5fdf4..674acf087f1cad132c29c834471c6ce0004fe255 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-91.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-91.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-91
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Number.prototype.toFixed)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Number.prototype, "toFixed");
-  if (desc.value === Number.prototype.toFixed &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Number.prototype.toFixed, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-92.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-92.js
index 21d99f7926c718803b8588333f5573287839a99e..553bf70bcc74a3e41d8ed2f0d45604e07fe5bec5 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-92.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-92.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-92
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Number.prototype.toExponential)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Number.prototype, "toExponential");
-  if (desc.value === Number.prototype.toExponential &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Number.prototype.toExponential, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-93.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-93.js
index 4160a1effbc129832bf458faaa0169836ba0ccbc..76fcf8ae104afd29e18d5f7ae8150619ee35e2c6 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-93.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-93.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-93
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Number.prototype.toPrecision)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Number.prototype, "toPrecision");
-  if (desc.value === Number.prototype.toPrecision &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Number.prototype.toPrecision, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-94.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-94.js
index 96af15ad691be09c802f5cc68b97e6d07513d9a9..13159813f7c5751dd28e7c14ba1f0828d78371c0 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-94.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-94.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-94
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Number.prototype.valueOf)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Number.prototype, "valueOf");
-  if (desc.value === Number.prototype.valueOf &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Number.prototype.valueOf, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-96.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-96.js
index 1c5b0267ac60149b58893fa4703b79ac6922dcae..603e590b480f17e8271baf88dcd51be7658e0bf2 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-96.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-96.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-96
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Math.abs)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "abs");
-  if (desc.value === Math.abs &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Math.abs, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-97.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-97.js
index c8fc0a0467d79012399aac3da9c64dc142c78330..2c3e9ca5b65a6e574cf9b7c2c0e99d89ff340a1b 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-97.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-97.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-97
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Math.acos)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "acos");
-  if (desc.value === Math.acos &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Math.acos, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-98.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-98.js
index 293c28f7f1eebe7f6fd311a271418ccad945ea1c..3833480fd62ab86ecb5249a7bab40bb3309fb225 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-98.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-98.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-98
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Math.asin)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "asin");
-  if (desc.value === Math.asin &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Math.asin, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-99.js b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-99.js
index 7fc08472d36bef2d4d6ad6e0b97e725d54ef3cd3..0fa81e5453c5dd83d8ab9d946f9944f5c388092a 100644
--- a/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-99.js
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-99.js
@@ -6,16 +6,11 @@ es5id: 15.2.3.3-4-99
 description: >
     Object.getOwnPropertyDescriptor returns data desc for functions on
     built-ins (Math.atan)
-includes: [runTestCase.js]
 ---*/
 
-function testcase() {
   var desc = Object.getOwnPropertyDescriptor(Math, "atan");
-  if (desc.value === Math.atan &&
-      desc.writable === true &&
-      desc.enumerable === false &&
-      desc.configurable === true) {
-    return true;
-  }
- }
-runTestCase(testcase);
+
+assert.sameValue(desc.value, Math.atan, 'desc.value');
+assert.sameValue(desc.writable, true, 'desc.writable');
+assert.sameValue(desc.enumerable, false, 'desc.enumerable');
+assert.sameValue(desc.configurable, true, 'desc.configurable');