diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-174.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-174.js
index 3e191f2af1f292bec2c94b0b3baaea07d0a3e064..2171d3cffbb173dd6ff9d8667c22210e0f0b2cf4 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-174.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-174.js
@@ -12,19 +12,14 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
-
-        Object.defineProperties(obj, {
-            property: {
-                writable: ""
-            }
-        });
-
-        obj.property = "isWritable";
-
-        return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined";
+var obj = {};
 
+Object.defineProperties(obj, {
+    property: {
+        writable: ""
     }
+});
+
 assert(obj.hasOwnProperty("property"));
 verifyNotWritable(obj, "property");
-assert(obj.hasOwnProperty("property"));
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-68.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-68.js
index 2326f56dd623be2086dcffbd7e83e90484d97f7a..83ac7f041acdd53a78be42cd104127f6b57ce92e 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-68.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-68.js
@@ -14,30 +14,28 @@ includes: [propertyHelper.js]
 ---*/
 
 
-        var obj = {};
-        var proto = {};
-        Object.defineProperty(proto, "configurable", {
-            get: function () {
-                return true;
-            }
-        });
+var obj = {};
+var proto = {};
+Object.defineProperty(proto, "configurable", {
+    get: function () {
+        return true;
+    }
+});
 
-        var Con = function () { };
-        Con.prototype = proto;
-        var descObj = new Con();
+var Con = function () { };
+Con.prototype = proto;
+var descObj = new Con();
 
-        Object.defineProperty(descObj, "configurable", {
-            get: function () {
-                return false;
-            }
-        });
+Object.defineProperty(descObj, "configurable", {
+    get: function () {
+        return false;
+    }
+});
 
-        Object.defineProperties(obj, {
-            prop: descObj
-        });
-        var result1 = obj.hasOwnProperty("prop");
-        delete obj.prop;
-        var result2 = obj.hasOwnProperty("prop");
+Object.defineProperties(obj, {
+    prop: descObj
+});
 
-        return result1 === true && result2 === true;
-    }
+assert(obj.hasOwnProperty("prop"));
+verifyNotConfigurable(obj, "prop");
+assert(obj.hasOwnProperty("prop"));
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-44.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-44.js
index a2c04a3d46046e3b306e12216d0d389fa1ea54aa..3ab8ccd5a413aaa8751828b16d5aa7e38d52d5bb 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-44.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-44.js
@@ -13,31 +13,18 @@ includes: [propertyHelper.js]
 ---*/
 
 
-        var obj = {};
+var obj = {};
 
-        var desc = { value: NaN };
-        Object.defineProperty(obj, "foo", desc);
+var desc = { value: NaN };
+Object.defineProperty(obj, "foo", desc);
 
-        Object.defineProperties(obj, {
-            foo: {
-                value: NaN
-            }
-        });
-
-        var verifyEnumerable = false;
-        for (var p in obj) {
-            if (p === "foo") {
-                verifyEnumerable = true;
-            }
-        }
-
-        var verifyValue = false;
-        obj.prop = "overrideData";
-        verifyValue = obj.foo !== obj.foo && isNaN(obj.foo);
+Object.defineProperties(obj, {
+    foo: {
+        value: NaN
+    }
+});
 
-        var verifyConfigurable = false;
-        delete obj.foo;
-        verifyConfigurable = obj.hasOwnProperty("foo");
+verifyNotEnumerable(obj, "foo");
+verifyNotWritable(obj, "foo");
+verifyNotConfigurable(obj, "foo");
 
-        return verifyConfigurable && !verifyEnumerable && verifyValue;
-    }
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-100.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-100.js
index 11288266c0368036984c7048f54c6eec84ea7200..8b2623ece86c1a0afce1f5642877e2b9c29b75ab 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-100.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-100.js
@@ -12,15 +12,9 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = { };
+var obj = { };
 
-        Object.defineProperty(obj, "property", { configurable: null });
+Object.defineProperty(obj, "property", { configurable: null });
 
-        var beforeDeleted = obj.hasOwnProperty("property");
-
-        delete obj.property;
-
-        var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined";
-
-        return beforeDeleted === true && afterDeleted === true;
-    }
+assert(obj.hasOwnProperty("property"));
+verifyNotConfigurable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-102.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-102.js
index 260f289e5b6f3b2e8b3ee88a2396404a139828fc..b92d1772249cae9785fca56f6f74704df3b2a16c 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-102.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-102.js
@@ -12,15 +12,9 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = { };
+var obj = { };
 
-        Object.defineProperty(obj, "property", { configurable: false });
+Object.defineProperty(obj, "property", { configurable: false });
 
-        var beforeDeleted = obj.hasOwnProperty("property");
-
-        delete obj.property;
-
-        var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined";
-
-        return beforeDeleted === true && afterDeleted === true;
-    }
+assert(obj.hasOwnProperty("property"));
+verifyNotConfigurable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-103.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-103.js
index e0c5d1a0a114b7eefb4095b4f426111ffeb4ebf6..019fc5a1ddc563882711128e51a18643693c9700 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-103.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-103.js
@@ -12,15 +12,9 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = { };
+var obj = { };
 
-        Object.defineProperty(obj, "property", { configurable: 0 });
+Object.defineProperty(obj, "property", { configurable: 0 });
 
-        var beforeDeleted = obj.hasOwnProperty("property");
-
-        delete obj.property;
-
-        var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined";
-
-        return beforeDeleted === true && afterDeleted === true;
-    }
+assert(obj.hasOwnProperty("property"));
+verifyNotConfigurable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-104.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-104.js
index b6f676fd479f9305f4150da17e20d23948b8aad7..816c19f54ffd4cc271ca687023936108182f7cad 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-104.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-104.js
@@ -12,15 +12,9 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        Object.defineProperty(obj, "property", { configurable: +0 });
+Object.defineProperty(obj, "property", { configurable: +0 });
 
-        var beforeDeleted = obj.hasOwnProperty("property");
-
-        delete obj.property;
-
-        var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined";
-
-        return beforeDeleted === true && afterDeleted === true;
-    }
+assert(obj.hasOwnProperty("property"));
+verifyNotConfigurable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-105.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-105.js
index 7b87534a83deb810c64b1a2b65b5125bcb767534..5ee08a0aa58fdadf77ac18bcb239c31718cd5f4f 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-105.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-105.js
@@ -12,15 +12,9 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = { };
+var obj = { };
 
-        Object.defineProperty(obj, "property", { configurable: -0 });
+Object.defineProperty(obj, "property", { configurable: -0 });
 
-        var beforeDeleted = obj.hasOwnProperty("property");
-
-        delete obj.property;
-
-        var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined";
-
-        return beforeDeleted === true && afterDeleted === true;
-    }
+assert(obj.hasOwnProperty("property"));
+verifyNotConfigurable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-106.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-106.js
index 6244d2598ea472fbfe4ffa91e85898b75fb31f5b..c2433150e175a9e7b22abd57ea6ade92093e8780 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-106.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-106.js
@@ -12,15 +12,9 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = { };
+var obj = { };
 
-        Object.defineProperty(obj, "property", { configurable: NaN });
+Object.defineProperty(obj, "property", { configurable: NaN });
 
-        var beforeDeleted = obj.hasOwnProperty("property");
-
-        delete obj.property;
-
-        var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined";
-
-        return beforeDeleted === true && afterDeleted === true;
-    }
+assert(obj.hasOwnProperty("property"));
+verifyNotConfigurable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-109.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-109.js
index f0a80e8498a8429cf762c823115ceed5f9e6274c..01c765f036f20c3b590c855e255440572af8874e 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-109.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-109.js
@@ -12,15 +12,9 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = { };
+var obj = { };
 
-        Object.defineProperty(obj, "property", { configurable: "" });
+Object.defineProperty(obj, "property", { configurable: "" });
 
-        var beforeDeleted = obj.hasOwnProperty("property");
-
-        delete obj.property;
-
-        var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined";
-
-        return beforeDeleted === true && afterDeleted === true;
-    }
+assert(obj.hasOwnProperty("property"));
+verifyNotConfigurable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-152.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-152.js
index 8ac30dace48af48b29419d842704ba1846681097..56762ac69babefb477a1a5cd93e99fadaa63d7ba 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-152.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-152.js
@@ -12,19 +12,15 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        var attr = {
-            writable: false
-        };
+var attr = {
+    writable: false
+};
 
-        Object.defineProperty(obj, "property", attr);
+Object.defineProperty(obj, "property", attr);
 
-        var beforeWrite = obj.hasOwnProperty("property");
+assert(obj.hasOwnProperty("property"));
+verifyNotWritable(obj, "property");
+verifyNotConfigurable(obj, "property");
 
-        obj.property = "isWritable";
-
-        var afterWrite = (obj.property === "isWritable");
-
-        return beforeWrite === true && afterWrite === false;
-    }
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-153.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-153.js
index 45883fe9efeca661b85cba43d5f715faecb79411..0be434d96456f4557cc6a49703db35d9416bd059 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-153.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-153.js
@@ -12,19 +12,13 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        var attr = {
-            value: 100
-        };
+var attr = {
+    value: 100
+};
 
-        Object.defineProperty(obj, "property", attr);
+Object.defineProperty(obj, "property", attr);
 
-        var beforeWrite = obj.hasOwnProperty("property");
-
-        obj.property = "isWritable";
-
-        var afterWrite = (obj.property === "isWritable");
-
-        return beforeWrite === true && afterWrite === false;
-    }
+assert(obj.hasOwnProperty("property"));
+verifyNotWritable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-162.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-162.js
index 59694cf22f191b67d1a2a558114652763a20f873..bbf29fbb8d0e3cd17c2c4ce11129446b7b4c24d4 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-162.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-162.js
@@ -12,20 +12,15 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        var attr = {};
-        Object.defineProperty(attr, "writable", {
-            set: function () { }
-        });
+var attr = {};
+Object.defineProperty(attr, "writable", {
+    set: function () { }
+});
 
-        Object.defineProperty(obj, "property", attr);
+Object.defineProperty(obj, "property", attr);
 
-        var beforeWrite = obj.hasOwnProperty("property");
+assert(obj.hasOwnProperty("property"));
+verifyNotWritable(obj, "property");
 
-        obj.property = "isWritable";
-
-        var afterWrite = (typeof (obj.property) === "undefined");
-
-        return beforeWrite === true && afterWrite === true;
-    }
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-163.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-163.js
index d3ae486cccc1cf9d8d23c3b0e35e2d4f971a7d15..a06ade9b83d8756144dc1a49259ec937d6773a7d 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-163.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-163.js
@@ -13,30 +13,24 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        var proto = {};
-        Object.defineProperty(proto, "writable", {
-            get: function () {
-                return true;
-            }
-        });
-
-        var ConstructFun = function () { };
-        ConstructFun.prototype = proto;
-
-        var child = new ConstructFun();
-        Object.defineProperty(child, "writable", {
-            set: function () { }
-        });
-
-        Object.defineProperty(obj, "property", child);
+var proto = {};
+Object.defineProperty(proto, "writable", {
+    get: function () {
+        return true;
+    }
+});
 
-        var beforeWrite = obj.hasOwnProperty("property");
+var ConstructFun = function () { };
+ConstructFun.prototype = proto;
 
-        obj.property = "isWritable";
+var child = new ConstructFun();
+Object.defineProperty(child, "writable", {
+    set: function () { }
+});
 
-        var afterWrite = (typeof (obj.property) === "undefined");
+Object.defineProperty(obj, "property", child);
 
-        return beforeWrite === true && afterWrite === true;
-    }
+assert(obj.hasOwnProperty("property"));
+verifyNotWritable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-164.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-164.js
index 44f347895e390cd2def3243842fe8f463db7473a..cfffc62d077700d21eded3fb8a1a170647dadf21 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-164.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-164.js
@@ -13,25 +13,19 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        var proto = {};
-        Object.defineProperty(proto, "writable", {
-            set: function () { }
-        });
+var proto = {};
+Object.defineProperty(proto, "writable", {
+    set: function () { }
+});
 
-        var ConstructFun = function () { };
-        ConstructFun.prototype = proto;
+var ConstructFun = function () { };
+ConstructFun.prototype = proto;
 
-        var child = new ConstructFun();
+var child = new ConstructFun();
 
-        Object.defineProperty(obj, "property", child);
+Object.defineProperty(obj, "property", child);
 
-        var beforeWrite = obj.hasOwnProperty("property");
-
-        obj.property = "isWritable";
-
-        var afterWrite = (typeof (obj.property) === "undefined");
-
-        return beforeWrite === true && afterWrite === true;
-    }
+assert(obj.hasOwnProperty("property"));
+verifyNotWritable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-171-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-171-1.js
index 80b1ed0fe45ca16bd7e55c26426c7457067b17ce..a91b4e92c889fd75533f64b7403355f135689e03 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-171-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-171-1.js
@@ -13,22 +13,15 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
-        try {
-            Date.prototype.writable = true;
+var obj = {};
+try {
+    Date.prototype.writable = true;
 
-            dateObj = new Date();
+    var dateObj = new Date();
 
-            Object.defineProperty(obj, "property", dateObj);
+    Object.defineProperty(obj, "property", dateObj);
+    verifyWritable(obj, "property");
 
-            var beforeWrite = obj.hasOwnProperty("property");
-
-            obj.property = "isWritable";
-
-            var afterWrite = (obj.property === "isWritable");
-
-            return beforeWrite === true && afterWrite === true;
-        } finally {
-            delete Date.prototype.writable;
-        }
-    }
+} finally {
+    delete Date.prototype.writable;
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-178.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-178.js
index 1a40c0e7d5223c3348459d0effc69eed3227eb15..93f5dcb54c0a10cc7173e6b0735eadb3e45cc0c0 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-178.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-178.js
@@ -12,17 +12,11 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        Object.defineProperty(obj, "property", {
-            writable: undefined
-        });
+Object.defineProperty(obj, "property", {
+    writable: undefined
+});
 
-        var beforeWrite = obj.hasOwnProperty("property");
-
-        obj.property = "isWritable";
-
-        var afterWrite = (typeof (obj.property) === "undefined");
-
-        return beforeWrite === true && afterWrite === true;
-    }
+assert(obj.hasOwnProperty("property"));
+verifyNotWritable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-179.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-179.js
index 8e954ed5e0565d7183ba835872b1acd93ab726f5..2ef1f2af28929510988010f524756b12297e520b 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-179.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-179.js
@@ -12,15 +12,9 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = { };
+var obj = { };
 
-        Object.defineProperty(obj, "property", { writable: null });
+Object.defineProperty(obj, "property", { writable: null });
 
-        var beforeWrite = obj.hasOwnProperty("property");
-
-        obj.property = "isWritable";
-
-        var afterWrite = (typeof (obj.property) === "undefined");
-
-        return beforeWrite === true && afterWrite === true;
-    }
+assert(obj.hasOwnProperty("property"));
+verifyNotWritable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-181.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-181.js
index 26858aaffc03f6f7e65ebe03e8c151cd58367891..b7e9dc0d4086ae7faff3966f1992b7f6d44df05b 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-181.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-181.js
@@ -12,15 +12,9 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = { };
+var obj = { };
 
-        Object.defineProperty(obj, "property", { writable: false });
+Object.defineProperty(obj, "property", { writable: false });
 
-        var beforeWrite = obj.hasOwnProperty("property");
-
-        obj.property = "isWritable";
-
-        var afterWrite = (typeof (obj.property) === "undefined");
-
-        return beforeWrite === true && afterWrite === true;
-    }
+assert(obj.hasOwnProperty("property"));
+verifyNotWritable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-182.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-182.js
index 382d6002b6bffca4d3541bf579e5ef8c2975978c..db24b5f5d860702c802ddc4a3b5e2a76fbe7db1e 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-182.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-182.js
@@ -12,15 +12,9 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = { };
+var obj = { };
 
-        Object.defineProperty(obj, "property", { writable: 0 });
+Object.defineProperty(obj, "property", { writable: 0 });
 
-        var beforeWrite = obj.hasOwnProperty("property");
-
-        obj.property = "isWritable";
-
-        var afterWrite = (typeof (obj.property) === "undefined");
-
-        return beforeWrite === true && afterWrite === true;
-    }
+assert(obj.hasOwnProperty("property"));
+verifyNotWritable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-183.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-183.js
index a3b58bfb3a1f9e2172a7e35cd362684fc3f8fe84..8526955aea92496ae9008d3455c6d8b997915466 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-183.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-183.js
@@ -12,15 +12,9 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        Object.defineProperty(obj, "property", { writable: +0 });
+Object.defineProperty(obj, "property", { writable: +0 });
 
-        var beforeWrite = obj.hasOwnProperty("property");
-
-        obj.property = "isWritable";
-
-        var afterWrite = (typeof (obj.property) === "undefined");
-
-        return beforeWrite === true && afterWrite === true;
-    }
+assert(obj.hasOwnProperty("property"));
+verifyNotWritable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-184.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-184.js
index 3af70ccd05e63265c44b11bd4ac2016f1dc5526c..e0e457498ae8cb7711add3c3b1168d3aac0323b2 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-184.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-184.js
@@ -12,15 +12,9 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = { };
+var obj = { };
 
-        Object.defineProperty(obj, "property", { writable: -0 });
+Object.defineProperty(obj, "property", { writable: -0 });
 
-        var beforeWrite = obj.hasOwnProperty("property");
-
-        obj.property = "isWritable";
-
-        var afterWrite = (typeof (obj.property) === "undefined");
-
-        return beforeWrite === true && afterWrite === true;
-    }
+assert(obj.hasOwnProperty("property"));
+verifyNotWritable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-185.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-185.js
index 0933e5afc1b6afc8d9fefd5df02ce62862d703fd..bb86206ed127d8a3afef926ff4350362c548c17c 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-185.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-185.js
@@ -12,15 +12,13 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = { };
+var obj = { };
 
-        Object.defineProperty(obj, "property", { writable:  NaN});
+Object.defineProperty(obj, "property", { writable:  NaN});
 
-        var beforeWrite = obj.hasOwnProperty("property");
+assert(obj.hasOwnProperty("property"));
 
-        obj.property = "isWritable";
+verifyNotWritable(obj, "property");
 
-        var afterWrite = (typeof (obj.property) === "undefined");
+assert.sameValue(typeof (obj.property), "undefined");
 
-        return beforeWrite === true && afterWrite === true;
-    }
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-188.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-188.js
index d76ebccad859cef7450b00385461b255afd239df..1ac28aa86473368ac82258e82949628c2d89219d 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-188.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-188.js
@@ -12,15 +12,9 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        Object.defineProperty(obj, "property", { writable: "" });
+Object.defineProperty(obj, "property", { writable: "" });
 
-        var beforeWrite = obj.hasOwnProperty("property");
-
-        obj.property = "isWritable";
-
-        var afterWrite = (typeof (obj.property) === "undefined");
-
-        return beforeWrite === true && afterWrite === true;
-    }
+assert(obj.hasOwnProperty("property"));
+verifyNotWritable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-236.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-236.js
index 2402f3303df761928177e572e57e5cb8021fff94..52adb58d5e545e8da7c7ea903e770d2c6a01cdcd 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-236.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-236.js
@@ -12,15 +12,13 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        Object.defineProperty(obj, "property", {
-            get: function () {
-                return 11;
-            }
-        });
-
-        obj.property = 14;
-        var desc = Object.getOwnPropertyDescriptor(obj, "property");
-        return obj.hasOwnProperty("property") && obj.property === 11 && typeof desc.set === "undefined";
+Object.defineProperty(obj, "property", {
+    get: function () {
+        return 11;
     }
+});
+
+assert(obj.hasOwnProperty("property"));
+verifyNotWritable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-245.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-245.js
index 73238c9dbd50ccd4dfe4fcc54004141a1400d804..0cec88d659fa676de29a498318aa42c66b43d6f5 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-245.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-245.js
@@ -12,18 +12,20 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        var attributes = {};
-        Object.defineProperty(attributes, "set", {
-            set: function () { }
-        });
+var attributes = {};
+Object.defineProperty(attributes, "set", {
+    set: function () { }
+});
 
-        Object.defineProperty(obj, "property", attributes);
+Object.defineProperty(obj, "property", attributes);
 
-        obj.property = "overrideOwnData";
+verifyNotWritable(obj, "property");
+
+var desc = Object.getOwnPropertyDescriptor(obj, "property");
+
+assert(obj.hasOwnProperty("property"));
+assert.sameValue(typeof obj.property, "undefined");
+assert.sameValue(typeof desc.set, "undefined");
 
-        var desc = Object.getOwnPropertyDescriptor(obj, "property");
-        return obj.hasOwnProperty("property") && typeof obj.property === "undefined" &&
-            typeof desc.set === "undefined";
-    }
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-246.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-246.js
index 1c32ab0a6621d670ce3f407e315565563c364a41..f82005d54d2e5d242c72cfe7b29badad410431ef 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-246.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-246.js
@@ -13,27 +13,30 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
-        var proto = {};
-        var data = "data";
-        Object.defineProperty(proto, "set", {
-            get: function () {
-                return function (value) {
-                    data = value;
-                };
-            }
-        });
-
-        var ConstructFun = function () { };
-        ConstructFun.prototype = proto;
-
-        var child = new ConstructFun();
-        Object.defineProperty(child, "set", {
-            set: function () { }
-        });
-
-        Object.defineProperty(obj, "property", child);
-
-        obj.property = "overrideData";
-        return obj.hasOwnProperty("property") && typeof obj.property === "undefined" && data === "data";
+var obj = {};
+var proto = {};
+var data = "data";
+Object.defineProperty(proto, "set", {
+    get: function () {
+        return function (value) {
+            data = value;
+        };
     }
+});
+
+var ConstructFun = function () { };
+ConstructFun.prototype = proto;
+
+var child = new ConstructFun();
+Object.defineProperty(child, "set", {
+    set: function () { }
+});
+
+Object.defineProperty(obj, "property", child);
+
+verifyNotWritable(obj, "property");
+
+assert.sameValue(typeof obj.property, "undefined");
+assert.sameValue(data, "data");
+
+assert(obj.hasOwnProperty("property"));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-247.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-247.js
index f074f45cffe4e7f51bee8d69e105b1941e0457c6..8550fbed812bf6721e42b979f55b26c17edbe8de 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-247.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-247.js
@@ -13,19 +13,18 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
-        var proto = {};
-        Object.defineProperty(proto, "set", {
-            set: function () { }
-        });
+var obj = {};
+var proto = {};
+Object.defineProperty(proto, "set", {
+    set: function () { }
+});
 
-        var ConstructFun = function () { };
-        ConstructFun.prototype = proto;
+var ConstructFun = function () { };
+ConstructFun.prototype = proto;
 
-        var child = new ConstructFun();
+var child = new ConstructFun();
 
-        Object.defineProperty(obj, "property", child);
+Object.defineProperty(obj, "property", child);
 
-        obj.property = "overrideData";
-        return obj.hasOwnProperty("property") && typeof obj.property === "undefined";
-    }
+assert(obj.hasOwnProperty("property"));
+verifyNotWritable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-261.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-261.js
index 71cb7f92e32c184fcd63fa146eb15cf858fe05e7..ec3f1aa963bf7b5ea24016536934e2662cad6fa5 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-261.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-261.js
@@ -12,14 +12,13 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        Object.defineProperty(obj, "property", {
-            set: undefined
-        });
+Object.defineProperty(obj, "property", {
+    set: undefined
+});
 
-        obj.property = "overrideData";
-        var desc = Object.getOwnPropertyDescriptor(obj, "property");
-        return obj.hasOwnProperty("property") && typeof obj.property === "undefined" &&
-            typeof desc.set === "undefined";
-    }
+var desc = Object.getOwnPropertyDescriptor(obj, "property");
+
+assert(obj.hasOwnProperty("property"));
+verifyNotWritable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-73.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-73.js
index e7fd0e0e523ee0f9af628017b00c86715fe23e96..d024f3877eb3cc7f37776f244431bac46efed9a8 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-73.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-73.js
@@ -12,17 +12,11 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        Object.defineProperty(obj, "property", {
-            configurable: false
-        });
+Object.defineProperty(obj, "property", {
+    configurable: false
+});
 
-        var beforeDeleted = obj.hasOwnProperty("property");
-
-        delete obj.property;
-
-        var afterDeleted = obj.hasOwnProperty("property");
-
-        return beforeDeleted === true && afterDeleted === true;
-    }
+assert(obj.hasOwnProperty("property"));
+verifyNotConfigurable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-74.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-74.js
index 18303ccb480473a6d81d3a4f26da20717afd00af..8b8e00e29d095086b9d2f6df4c8229226c90d0d6 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-74.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-74.js
@@ -12,16 +12,9 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = { };
+var obj = { };
 
-        Object.defineProperty(obj, "property", { value: 100 });
+Object.defineProperty(obj, "property", { value: 100 });
 
-        var beforeDeleted = obj.hasOwnProperty("property");
-
-        delete obj.property;
-
-        var afterDeleted = (obj.property === 100);
-
-        return beforeDeleted === true && afterDeleted === true;
-
-    }
+assert(obj.hasOwnProperty("property"));
+verifyNotConfigurable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-76.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-76.js
index c18a8614b056b427945b260de7be1b3ad173f91a..0b26e26038afafafe17917586a514fafaa88db06 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-76.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-76.js
@@ -12,23 +12,23 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = { };
+var obj = { };
 
-        var proto = {
-            configurable: false
-        };
+var proto = {
+    configurable: false
+};
 
-        var ConstructFun = function () { };
-        ConstructFun.prototype = proto;
+var ConstructFun = function () { };
+ConstructFun.prototype = proto;
 
-        var child = new ConstructFun();
+var child = new ConstructFun();
 
-        Object.defineProperty(obj, "property", child);
+Object.defineProperty(obj, "property", child);
 
-        var beforeDeleted = obj.hasOwnProperty("property");
+assert(obj.hasOwnProperty("property"));
 
-        delete obj.property;
+verifyNotConfigurable(obj, "property");
 
-        var afterDeleted = obj.hasOwnProperty("property");
-        return beforeDeleted && afterDeleted && typeof (obj.property) === "undefined";
-    }
+assert(obj.hasOwnProperty("property"));
+
+assert.sameValue(typeof (obj.property), "undefined");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-83.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-83.js
index 0250561040861d2e70b47141cd9d9359bbc09208..55c2301b70f2ca4d88d0e9df48ddad27190bcd64 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-83.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-83.js
@@ -12,20 +12,14 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = { };
+var obj = { };
 
-        var attr = {};
-        Object.defineProperty(attr, "configurable", {
-            set : function () { }
-        });
+var attr = {};
+Object.defineProperty(attr, "configurable", {
+    set : function () { }
+});
 
-        Object.defineProperty(obj, "property", attr);
+Object.defineProperty(obj, "property", attr);
 
-        var beforeDeleted = obj.hasOwnProperty("property");
-
-        delete obj.property;
-
-        var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined";
-
-        return beforeDeleted === true && afterDeleted === true;
-    }
+assert(obj.hasOwnProperty("property"));
+verifyNotConfigurable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-84.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-84.js
index f8d1d6457bd35a08c09a46faa465fa607a880c9e..55a01485d2896a075ac0390b0d8376f606aafea6 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-84.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-84.js
@@ -13,30 +13,24 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        var proto = {};
-        Object.defineProperty(proto, "configurable", {
-            get: function () {
-                return true;
-            }
-        });
-
-        var ConstructFun = function () { };
-        ConstructFun.prototype = proto;
-
-        var child = new ConstructFun();
-        Object.defineProperty(child, "configurable", {
-            set: function () { }
-        });
-
-        Object.defineProperty(obj, "property", child);
+var proto = {};
+Object.defineProperty(proto, "configurable", {
+    get: function () {
+        return true;
+    }
+});
 
-        var beforeDeleted = obj.hasOwnProperty("property");
+var ConstructFun = function () { };
+ConstructFun.prototype = proto;
 
-        delete obj.property;
+var child = new ConstructFun();
+Object.defineProperty(child, "configurable", {
+    set: function () { }
+});
 
-        var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined";
+Object.defineProperty(obj, "property", child);
 
-        return beforeDeleted === true && afterDeleted === true;
-    }
+assert(obj.hasOwnProperty("property"));
+verifyNotConfigurable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-85.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-85.js
index 704e84f69729aac64cc8513eaf2d04a5bff9b2f0..45e84f808ebaf20b44653cb57bbd478160f60123 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-85.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-85.js
@@ -13,25 +13,25 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        var proto = {};
-        Object.defineProperty(proto, "configurable", {
-            set: function () { }
-        });
+var proto = {};
+Object.defineProperty(proto, "configurable", {
+    set: function () { }
+});
 
-        var ConstructFun = function () { };
-        ConstructFun.prototype = proto;
+var ConstructFun = function () { };
+ConstructFun.prototype = proto;
 
-        var child = new ConstructFun();
+var child = new ConstructFun();
 
-        Object.defineProperty(obj, "property", child);
+Object.defineProperty(obj, "property", child);
 
-        var beforeDeleted = obj.hasOwnProperty("property");
+assert(obj.hasOwnProperty("property"));
 
-        delete obj.property;
+verifyNotConfigurable(obj, "property");
+
+assert(obj.hasOwnProperty("property"));
+assert.sameValue(typeof (obj.property), "undefined");
 
-        var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined";
 
-        return beforeDeleted === true && afterDeleted === true;
-    }
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-99.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-99.js
index 5931b7eb7145f827db5119ff6506292359885691..0bd100d3056da75257a478056e592d2c6508c941 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-3-99.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-99.js
@@ -12,15 +12,9 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = { };
+var obj = { };
 
-        Object.defineProperty(obj, "property", { configurable: undefined });
+Object.defineProperty(obj, "property", { configurable: undefined });
 
-        var beforeDeleted = obj.hasOwnProperty("property");
-
-        delete obj.property;
-
-        var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined";
-
-        return beforeDeleted === true && afterDeleted === true;
-    }
+assert(obj.hasOwnProperty("property"));
+verifyNotConfigurable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-118.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-118.js
index 9dcc95272c84c3acd219b27946d91b9fc2d94dfe..334cd6f00385f5520f5e64806e12e3fe9bd740ad 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-118.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-118.js
@@ -13,27 +13,12 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var arrObj = [];
+var arrObj = [];
 
-        Object.defineProperty(arrObj, "length", {});
+Object.defineProperty(arrObj, "length", {});
 
-        var verifyValue = false;
-        if (arrObj.length === 0) {
-            verifyValue = true;
-        }
-
-        arrObj.length = 2;
-        var verifyWritable = arrObj.length === 2;
-
-        var verifyEnumerable = false;
-        for (var p in arrObj) {
-            if (p === "length" && arrObj.hasOwnProperty(p)) {
-                verifyEnumerable = true;
-            }
-        }
-
-        delete arrObj.length;
-        var verifyConfigurable = arrObj.hasOwnProperty("length");
-
-        return verifyValue && verifyWritable && !verifyEnumerable && verifyConfigurable;
-    }
+assert.sameValue(arrObj.length, 0);
+arrObj.length = 2;
+assert.sameValue(arrObj.length, 2);
+verifyNotEnumerable(arrObj, "length");
+verifyNotConfigurable(arrObj, "length");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-119.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-119.js
index 6ac91c4fda8a4900cbb6bff4b7ef9a99953cb633..27c99bcc10a0815023b2db73318c2610df9c4484 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-119.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-119.js
@@ -15,30 +15,15 @@ includes: [propertyHelper.js]
 ---*/
 
 
-        var arrObj = [];
-        Object.defineProperty(arrObj, "length", {
-            writable: true,
-            enumerable: false,
-            configurable: false
-        });
-
-        var verifyValue = false;
-        if (arrObj.length === 0) {
-            verifyValue = true;
-        }
-
-        arrObj.length = 2;
-        var verifyWritable = arrObj.length === 2 ? true : false;
-
-        var verifyEnumerable = false;
-        for (var p in arrObj) {
-            if (p === "length" && arrObj.hasOwnProperty(p)) {
-                verifyEnumerable = true;
-            }
-        }
-
-        delete arrObj.length;
-        var verifyConfigurable = arrObj.hasOwnProperty("length");
-
-        return verifyValue && verifyWritable && !verifyEnumerable && verifyConfigurable;
-    }
+var arrObj = [];
+Object.defineProperty(arrObj, "length", {
+    writable: true,
+    enumerable: false,
+    configurable: false
+});
+
+assert.sameValue(arrObj.length, 0);
+arrObj.length = 2;
+assert.sameValue(arrObj.length, 2);
+verifyNotEnumerable(arrObj, "length");
+verifyNotConfigurable(arrObj, "length");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-167.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-167.js
index bf41f0119c0271e41b64c3417b4c05c5aebe4d1c..f5d83c2ed6d201c06b93b3db2495f279fdd4d748 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-167.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-167.js
@@ -17,16 +17,13 @@ includes: [propertyHelper.js]
 ---*/
 
 
-        var arrObj = [0, 1];
+var arrObj = [0, 1];
 
-        Object.defineProperty(arrObj, "length", {
-            value: 1,
-            writable: false
-        });
+Object.defineProperty(arrObj, "length", {
+    value: 1,
+    writable: false
+});
 
-        var indexDeleted = !arrObj.hasOwnProperty("1");
-
-        arrObj.length = 10;
-
-        return indexDeleted && arrObj.length === 1;
-    }
+assert(!arrObj.hasOwnProperty("1"))
+assert.sameValue(arrObj.length, 1);
+verifyNotWritable(arrObj, "length");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-181.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-181.js
index d7ba9c9049810df5697985f406019966ef3c4123..3e13b808eb9f49f6510251d701ba043267338352 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-181.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-181.js
@@ -17,13 +17,14 @@ includes: [propertyHelper.js]
 ---*/
 
 
-        var arrObj = [0, 1];
+var arrObj = [0, 1];
 
-        Object.defineProperty(arrObj, "length", {
-            value: 0,
-            writable: false
-        });
-            
-        arrObj.length = 10; //try to overwrite length value of arr
-        return !arrObj.hasOwnProperty("1") && arrObj.length === 0;
-    }
+Object.defineProperty(arrObj, "length", {
+    value: 0,
+    writable: false
+});
+
+verifyNotWritable(arrObj, "length");
+
+assert(!arrObj.hasOwnProperty("1"));
+assert.sameValue(arrObj.length, 0);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-217.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-217.js
index 60c8b09aca2bc79b2fcf94ca5864438c4105c1f8..5b65b4c41fed348c956a27dc946df002558c6961 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-217.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-217.js
@@ -13,29 +13,15 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var arrObj = [];
+var arrObj = [];
 
-        Object.defineProperty(arrObj, "0", { value: NaN });
+Object.defineProperty(arrObj, "0", { value: NaN });
 
-        Object.defineProperty(arrObj, "0", { value: NaN });
+Object.defineProperty(arrObj, "0", { value: NaN });
 
-        var hasProperty = arrObj.hasOwnProperty("0");
-        var verifyValue = (arrObj[0] !== arrObj[0]);
+assert(arrObj.hasOwnProperty("0"));
+assert(arrObj[0] !== arrObj[0]);
 
-        var verifyWritable = false;
-        arrObj[0] = 1001;
-        verifyWritable = arrObj[0] !== 1001 && arrObj[0] !== arrObj[0];
-
-        var verifyEnumerable = false;
-        for (var p in arrObj) {
-            if (p === "0") {
-                verifyEnumerable = true;
-            }
-        }
-
-        var verifyConfigurable = false;
-        delete arrObj[0];
-        verifyConfigurable = arrObj.hasOwnProperty("0");
-
-        return hasProperty && verifyValue && verifyWritable && !verifyEnumerable && verifyConfigurable;
-    }
+verifyNotWritable(arrObj, "0");
+verifyNotEnumerable(arrObj, "0");
+verifyNotWritable(arrObj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-254.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-254.js
index cfbbfc23a3a0155814d2e1018d0b309b2bd690b3..dbd799d01fe7e8ac042c7641e5ae3a573b2677a7 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-254.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-254.js
@@ -16,33 +16,22 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var arrObj = [];
+var arrObj = [];
 
-        Object.defineProperty(arrObj, "1", {
-            set: undefined
-        });
-        var hasProperty = arrObj.hasOwnProperty("1");
+Object.defineProperty(arrObj, "1", {
+    set: undefined
+});
+assert(arrObj.hasOwnProperty("1"));
 
-        Object.defineProperty(arrObj, "1", {
-            set: undefined
-        });
+Object.defineProperty(arrObj, "1", {
+    set: undefined
+});
 
-        var desc = Object.getOwnPropertyDescriptor(arrObj, "1");
+var desc = Object.getOwnPropertyDescriptor(arrObj, "1");
 
-        var verifyGet = desc.hasOwnProperty("get") && typeof desc.get === "undefined";
+assert(desc.hasOwnProperty("get") && typeof desc.get === "undefined");
+assert(desc.hasOwnProperty("set") && typeof desc.set === "undefined");
 
-        var verifySet = desc.hasOwnProperty("set") && typeof desc.set === "undefined";
+verifyNotEnumerable(arrObj, "1");
+verifyNotConfigurable(arrObj, "1");
 
-        var verifyEnumerable = false;
-        for (var p in arrObj) {
-            if (p === "1") {
-                verifyEnumerable = true
-            }
-        }
-
-        var verifyConfigurable = false;
-        delete arrObj[1];
-        verifyConfigurable = arrObj.hasOwnProperty("1");
-
-        return hasProperty && verifyGet && verifySet && !verifyEnumerable && verifyConfigurable;
-    }
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-255.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-255.js
index 03709f3b5112095383767da77290d6e2de2849d2..e2f40b48d1736aa0900fa63a0d295a38989bb7d5 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-255.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-255.js
@@ -17,43 +17,34 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var arrObj = [];
-
-        function getFunc() {
-            return 12;
-        }
-        Object.defineProperty(arrObj, "1", {
-            get: getFunc
-        });
-
-        try {
-            Object.defineProperty(arrObj, "1", {
-                get: function () {
-                    return 14;
-                }
-            });
-
-            return false;
-        } catch (e) {
-            var hasProperty = arrObj.hasOwnProperty("1");
-            var desc = Object.getOwnPropertyDescriptor(arrObj, "1");
-
-            var verifyGet = arrObj[1] === getFunc();
-
-            var verifySet = desc.hasOwnProperty("set") && typeof desc.set === "undefined";
-
-            var verifyEnumerable = false;
-            for (var p in arrObj) {
-                if (p === "1") {
-                    verifyEnumerable = true
-                }
-            }
-
-            var verifyConfigurable = false;
-            delete arrObj[1];
-            verifyConfigurable = arrObj.hasOwnProperty("1");
-
-            return e instanceof TypeError && hasProperty && verifyGet &&
-                verifySet && !verifyEnumerable && verifyConfigurable;
+var arrObj = [];
+
+function getFunc() {
+    return 12;
+}
+Object.defineProperty(arrObj, "1", {
+    get: getFunc
+});
+
+try {
+    Object.defineProperty(arrObj, "1", {
+        get: function () {
+            return 14;
         }
-    }
+    });
+
+    $ERROR("Expected TypeError");
+} catch (e) {
+    assert(e instanceof TypeError);
+    assert(arrObj.hasOwnProperty("1"));
+
+    var desc = Object.getOwnPropertyDescriptor(arrObj, "1");
+
+    assert(arrObj[1] === getFunc());
+
+    assert(desc.hasOwnProperty("set") && typeof desc.set === "undefined");
+
+    verifyNotEnumerable(arrObj, "1");
+    verifyNotConfigurable(arrObj, "1");
+}
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-256.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-256.js
index 9d671b1d30bc22ac10070776f0d4ba8deb0e8696..2f9a35f89b82f3f23f79924971248268658aadcc 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-256.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-256.js
@@ -16,40 +16,31 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var arrObj = [];
-        function getFunc() {
-            return 12;
-        }
-
-        Object.defineProperty(arrObj, "1", {
-            get: getFunc
-        });
-
-        try {
-            Object.defineProperty(arrObj, "1", {
-                get: undefined
-            });
-            return false;
-        } catch (e) {
-            var hasProperty = arrObj.hasOwnProperty("1");
-            var desc = Object.getOwnPropertyDescriptor(arrObj, "1");
-
-            var verifyGet = arrObj[1] === getFunc();
-
-            var verifySet = desc.hasOwnProperty("set") && typeof desc.set === "undefined";
-
-            var verifyEnumerable = false;
-            for (var p in arrObj) {
-                if (p === "1") {
-                    verifyEnumerable = true
-                }
-            }
-
-            var verifyConfigurable = false;
-            delete arrObj[1];
-            verifyConfigurable = arrObj.hasOwnProperty("1");
-
-            return e instanceof TypeError && hasProperty && verifyGet &&
-                verifySet && !verifyEnumerable && verifyConfigurable;
-        }
-    }
+var arrObj = [];
+function getFunc() {
+    return 12;
+}
+
+Object.defineProperty(arrObj, "1", {
+    get: getFunc
+});
+
+try {
+    Object.defineProperty(arrObj, "1", {
+        get: undefined
+    });
+    $ERROR("Expected TypeError");
+} catch (e) {
+    assert(e instanceof TypeError);
+    assert(arrObj.hasOwnProperty("1"));
+
+    var desc = Object.getOwnPropertyDescriptor(arrObj, "1");
+
+    assert(arrObj[1] === getFunc());
+    assert(desc.hasOwnProperty("set") && typeof desc.set === "undefined");
+
+    verifyNotWritable(arrObj, "1");
+
+    verifyNotWritable(arrObj, "1");
+}
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-335.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-335.js
index e3b88b85ebf0d2939517b8591c065d1ba491de4c..67e027ed82d2b755eacf29cf082ac3d1549b04af 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-335.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-335.js
@@ -12,16 +12,15 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        Object.defineProperty(obj, "prop", {
-            value: 2010,
-            writable: true,
-            enumerable: true,
-            configurable: false
-        });
-        var beforeDelete = obj.hasOwnProperty("prop");
-        delete obj.prop;
-        var afterDelete = obj.hasOwnProperty("prop");
-        return beforeDelete && obj.prop === 2010 && afterDelete;
-    }
+Object.defineProperty(obj, "prop", {
+    value: 2010,
+    writable: true,
+    enumerable: true,
+    configurable: false
+});
+
+assert(obj.hasOwnProperty("prop"));
+verifyNotConfigurable(obj, "prop");
+assert.sameValue(obj.prop, 2010);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-349.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-349.js
index 8d11671315bc5798b043f006981af4ed8511c9e8..829845ea37c3d4198cf4d1bd308d37c107074c35 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-349.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-349.js
@@ -12,16 +12,15 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        Object.defineProperty(obj, "prop", {
-            value: 2010,
-            writable: true,
-            enumerable: false,
-            configurable: false
-        });
-        var beforeDelete = obj.hasOwnProperty("prop");
-        delete obj.prop;
-        var afterDelete = obj.hasOwnProperty("prop");
-        return beforeDelete && obj.prop === 2010 && afterDelete;
-    }
+Object.defineProperty(obj, "prop", {
+    value: 2010,
+    writable: true,
+    enumerable: false,
+    configurable: false
+});
+
+assert(obj.hasOwnProperty("prop"));
+verifyNotConfigurable(obj, "prop");
+assert.sameValue(obj.prop, 2010);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-15.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-15.js
index f5cca7c554925850c7a4fa8f5c1b9ef9ef8b5425..81b0734317c6c3899871c86730230788865143db 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-15.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-15.js
@@ -13,16 +13,15 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = [];
+var obj = [];
 
-        Object.defineProperty(obj, "prop", {
-            value: 2010,
-            writable: false,
-            enumerable: true,
-            configurable: true
-        });
-        var verifyValue = (obj.prop === 2010);
-        obj.prop = 1001;
+Object.defineProperty(obj, "prop", {
+    value: 2010,
+    writable: false,
+    enumerable: true,
+    configurable: true
+});
+
+assert.sameValue(obj.prop, 2010);
+verifyNotWritable(obj, "prop");
 
-        return verifyValue && obj.prop === 2010;
-    }
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-16.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-16.js
index 5c8c05a9925b41485d9c01171b823de12f694745..64569999012c1f3446303c5391719470a0ce18a0 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-16.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-16.js
@@ -14,18 +14,16 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = (function () {
-            return arguments;
-        }());
+var obj = (function () {
+    return arguments;
+}());
 
-        Object.defineProperty(obj, "0", {
-            value: 2010,
-            writable: false,
-            enumerable: true,
-            configurable: true
-        });
-        var valueVerify = (obj[0] === 2010);
-        obj[0] = 1001;
+Object.defineProperty(obj, "0", {
+    value: 2010,
+    writable: false,
+    enumerable: true,
+    configurable: true
+});
 
-        return valueVerify && obj[0] === 2010;
-    }
+assert.sameValue(obj[0], 2010);
+verifyNotWritable(obj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-6.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-6.js
index d5750e786212c77d1104183d8af4f88ed5bb168a..96d9d15175c613f8c75c0f1a621d2abfbad32717 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-6.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-6.js
@@ -13,16 +13,14 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = [];
+var obj = [];
 
-        Object.defineProperty(obj, "0", {
-            value: 2010,
-            writable: false,
-            enumerable: true,
-            configurable: true
-        });
-        var verifyValue = (obj[0] === 2010);
-        obj[0] = 1001;
+Object.defineProperty(obj, "0", {
+    value: 2010,
+    writable: false,
+    enumerable: true,
+    configurable: true
+});
 
-        return verifyValue && obj[0] === 2010;
-    }
+assert.sameValue(obj[0], 2010);
+verifyNotWritable(obj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-7.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-7.js
index fe3a1c41a50373390dcef63a2006196d8e4489f4..ee05bdf73c11afb7447026d2195c5d0ab42d5e31 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-7.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-7.js
@@ -13,18 +13,16 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = (function () {
-            return arguments;
-        }());
+var obj = (function () {
+    return arguments;
+}());
 
-        Object.defineProperty(obj, "prop", {
-            value: 2010,
-            writable: false,
-            enumerable: true,
-            configurable: true
-        });
-        var valueVerify = (obj.prop === 2010);
-        obj.prop = 1001;
+Object.defineProperty(obj, "prop", {
+    value: 2010,
+    writable: false,
+    enumerable: true,
+    configurable: true
+});
 
-        return valueVerify && obj.prop === 2010;
-    }
+assert.sameValue(obj.prop, 2010);
+verifyNotWritable(obj, "prop");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-8.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-8.js
index 86ec8cbddb8cc3bba26166163473f43adf77edd3..b37dcae884f593d0a5baa720cd2480554f15890a 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-8.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-8.js
@@ -15,19 +15,19 @@ includes:
     - fnGlobalObject.js
 ---*/
 
-        var obj = fnGlobalObject();
-        try {
-            Object.defineProperty(obj, "prop", {
-                value: 2010,
-                writable: false,
-                enumerable: true,
-                configurable: true
-            });
-            var valueVerify = (obj.prop === 2010);
-            obj.prop = 1001;
+var obj = fnGlobalObject();
+try {
+    Object.defineProperty(obj, "prop", {
+        value: 2010,
+        writable: false,
+        enumerable: true,
+        configurable: true
+    });
+
+    assert.sameValue(obj.prop, 2010);
+    verifyNotWritable(obj, "prop");
+
+} finally {
+    delete obj.prop;
+}
 
-            return valueVerify && obj.prop === 2010;
-        } finally {
-            delete obj.prop;
-        }
-    }
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354.js
index 288dc7477c97e1b18cca26c7aae106b3faa883ef..a40e3d8ba262f3cd8d2a569591d3baedc60c74b6 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354.js
@@ -12,16 +12,14 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        Object.defineProperty(obj, "prop", {
-            value: 2010,
-            writable: false,
-            enumerable: true,
-            configurable: true
-        });
-        var propertyDefineCorrect = (obj.prop === 2010);
-        obj.prop = 1001;
+Object.defineProperty(obj, "prop", {
+    value: 2010,
+    writable: false,
+    enumerable: true,
+    configurable: true
+});
 
-        return propertyDefineCorrect && obj.prop === 2010;
-    }
+assert.sameValue(obj.prop, 2010);
+verifyNotWritable(obj, "prop");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-361.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-361.js
index b19db726e209dd208adb041614c06c2d91e51e7f..7ca59c68d9a261fe30e334070708f38cc165cf2a 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-361.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-361.js
@@ -12,16 +12,14 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        Object.defineProperty(obj, "prop", {
-            value: 2010,
-            writable: false,
-            enumerable: true,
-            configurable: false
-        });
-        var propertyDefineCorrect = (obj.prop === 2010);
-        obj.prop = 1001;
+Object.defineProperty(obj, "prop", {
+    value: 2010,
+    writable: false,
+    enumerable: true,
+    configurable: false
+});
 
-        return propertyDefineCorrect && obj.prop === 2010;
-    }
+assert.sameValue(obj.prop, 2010);
+verifyNotWritable(obj, "prop");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-363.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-363.js
index 835b48ed89b570942b9839fe8b8ec445126e24d5..83400ed2bdcd8abc9e9741a6c2d5175f8ec1338b 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-363.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-363.js
@@ -12,16 +12,14 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        Object.defineProperty(obj, "prop", {
-            value: 2010,
-            writable: false,
-            enumerable: true,
-            configurable: false
-        });
-        var beforeDelete = obj.hasOwnProperty("prop");
-        delete obj.prop;
-        var afterDelete = obj.hasOwnProperty("prop");
-        return beforeDelete && obj.prop === 2010 && afterDelete;
-    }
+Object.defineProperty(obj, "prop", {
+    value: 2010,
+    writable: false,
+    enumerable: true,
+    configurable: false
+});
+
+assert(obj.hasOwnProperty("prop"));
+verifyNotConfigurable(obj, "prop");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-368.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-368.js
index 4b181c79d606dfa62ed7a37e62af9cdde974e314..5767e030fb62aa71d63633f372e94a599578127a 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-368.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-368.js
@@ -12,16 +12,14 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        Object.defineProperty(obj, "prop", {
-            value: 2010,
-            writable: false,
-            enumerable: false,
-            configurable: true
-        });
-        var propertyDefineCorrect = (obj.prop === 2010);
-        obj.prop = 1001;
+Object.defineProperty(obj, "prop", {
+    value: 2010,
+    writable: false,
+    enumerable: false,
+    configurable: true
+});
 
-        return propertyDefineCorrect && obj.prop === 2010;
-    }
+assert.sameValue(obj.prop, 2010);
+verifyNotWritable(obj, "prop");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-375.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-375.js
index 35a4aec7a9f5c3c4eccddde6c4316c1a8a1917b5..ea72408ae6c0268368cef1f19843dd531863ef65 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-375.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-375.js
@@ -12,16 +12,14 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        Object.defineProperty(obj, "prop", {
-            value: 2010,
-            writable: false,
-            enumerable: false,
-            configurable: false
-        });
-        var propertyDefineCorrect = (obj.prop === 2010);
-        obj.prop = 1001;
+Object.defineProperty(obj, "prop", {
+    value: 2010,
+    writable: false,
+    enumerable: false,
+    configurable: false
+});
 
-        return propertyDefineCorrect && obj.prop === 2010;
-    }
+assert.sameValue(obj.prop, 2010);
+verifyNotWritable(obj, "prop");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-377.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-377.js
index 335e8cca24ebafa30b5dd1b5592015f3d22d23b7..eba2a095c4e9d66ff7b599368c897e5bdbe572c8 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-377.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-377.js
@@ -12,16 +12,14 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        Object.defineProperty(obj, "prop", {
-            value: 2010,
-            writable: false,
-            enumerable: false,
-            configurable: false
-        });
-        var beforeDelete = obj.hasOwnProperty("prop");
-        delete obj.prop;
-        var afterDelete = obj.hasOwnProperty("prop");
-        return beforeDelete && obj.prop === 2010 && afterDelete;
-    }
+Object.defineProperty(obj, "prop", {
+    value: 2010,
+    writable: false,
+    enumerable: false,
+    configurable: false
+});
+
+assert(obj.hasOwnProperty("prop"));
+verifyNotConfigurable(obj, "prop");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-405.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-405.js
index 18b1bdf26e531dd1e3c24f0c8cc5c5400d65fdaf..50cdc93ade32e7246be585225b5abe45e664a984 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-405.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-405.js
@@ -13,18 +13,19 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        try {
-            Object.defineProperty(Number.prototype, "prop", {
-                value: 1001,
-                writable: false,
-                enumerable: false,
-                configurable: true
-            });
-            var numObj = new Number();
-            numObj.prop = 1002;
+try {
+    Object.defineProperty(Number.prototype, "prop", {
+        value: 1001,
+        writable: false,
+        enumerable: false,
+        configurable: true
+    });
+    
+    var numObj = new Number();
+
+    assert(!numObj.hasOwnProperty("prop"));
+    verifyNotWritable(numObj, "prop", "noCheckOwnProp");
+} finally {
+    delete Number.prototype.prop;
+}
 
-            return !numObj.hasOwnProperty("prop") && numObj.prop === 1001;
-        } finally {
-            delete Number.prototype.prop;
-        }
-    }
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-410.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-410.js
index 3a56b4ec52d94da833cb1d9877c55fb0ac63f721..8834428730b7f0ef16ba79ca86e8b6ed57a328eb 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-410.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-410.js
@@ -13,17 +13,19 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        try {
-            Object.defineProperty(Object.prototype, "prop", {
-                value: 1001,
-                writable: false,
-                enumerable: false,
-                configurable: true
-            });
-            JSON.prop = 1002;
+try {
+    Object.defineProperty(Object.prototype, "prop", {
+        value: 1001,
+        writable: false,
+        enumerable: false,
+        configurable: true
+    });
+
+    assert(!JSON.hasOwnProperty("prop"));
+    verifyNotWritable(JSON, "prop", "noCheckOwnProp");
+    assert.sameValue(JSON.prop, 1001);
+
+} finally {
+    delete Object.prototype.prop;
+}
 
-            return !JSON.hasOwnProperty("prop") && JSON.prop === 1001;
-        } finally {
-            delete Object.prototype.prop;
-        }
-    }
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-415.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-415.js
index 8f0d350148aaae4067dc97c9b7945b1dd3b1e762..b49cb548d2db2bcc457029ff72d78b2a597deb09 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-415.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-415.js
@@ -13,40 +13,45 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var appointment = new Object();
-
-        Object.defineProperty(appointment, "startTime", {
-            value: 1001,
-            writable: false,
-            enumerable: false,
-            configurable: true
-        });
-        Object.defineProperty(appointment, "name", {
-            value: "NAME",
-            writable: false,
-            enumerable: false,
-            configurable: true
-        });
-
-        var meeting = Object.create(appointment);
-        Object.defineProperty(meeting, "conferenceCall", {
-            value: "In-person meeting",
-            writable: false,
-            enumerable: false,
-            configurable: true
-        });
-
-        var teamMeeting = Object.create(meeting);
-        teamMeeting.name = "Team Meeting";
-        var dateObj = new Date("10/31/2010 08:00");
-        teamMeeting.startTime = dateObj;
-        teamMeeting.conferenceCall = "4255551212";
-
-        var hasOwnProperty = !teamMeeting.hasOwnProperty("name") &&
-            !teamMeeting.hasOwnProperty("startTime") &&
-            !teamMeeting.hasOwnProperty('conferenceCall');
-
-        return hasOwnProperty && teamMeeting.name === "NAME" &&
-            teamMeeting.startTime === 1001 &&
-            teamMeeting.conferenceCall === "In-person meeting";
-    }
+var appointment = new Object();
+
+Object.defineProperty(appointment, "startTime", {
+    value: 1001,
+    writable: false,
+    enumerable: false,
+    configurable: true
+});
+Object.defineProperty(appointment, "name", {
+    value: "NAME",
+    writable: false,
+    enumerable: false,
+    configurable: true
+});
+
+var meeting = Object.create(appointment);
+Object.defineProperty(meeting, "conferenceCall", {
+    value: "In-person meeting",
+    writable: false,
+    enumerable: false,
+    configurable: true
+});
+
+var teamMeeting = Object.create(meeting);
+
+//teamMeeting.name = "Team Meeting";
+verifyNotWritable(teamMeeting, "name", "noCheckOwnProp");
+
+var dateObj = new Date("10/31/2010 08:00");
+//teamMeeting.startTime = dateObj;
+verifyNotWritable(teamMeeting, "startTime", "noCheckOwnProp");
+
+//teamMeeting.conferenceCall = "4255551212";
+verifyNotWritable(teamMeeting, "conferenceCall", "noCheckOwnProp");
+
+assert(!teamMeeting.hasOwnProperty("name"));
+assert(!teamMeeting.hasOwnProperty("startTime"));
+assert(!teamMeeting.hasOwnProperty('conferenceCall'));
+
+assert.sameValue(teamMeeting.name, "NAME");
+assert.sameValue(teamMeeting.startTime, 1001);
+assert.sameValue(teamMeeting.conferenceCall, "In-person meeting");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-420.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-420.js
index de25ea7122e1f6ffc6405a83230ea27e38a2f1d5..69c075f867114b60de9da887ceb2cd568e5e7a43 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-420.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-420.js
@@ -13,20 +13,19 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var foo = function () { };
-        try {
-            Object.defineProperty(Function.prototype, "prop", {
-                value: 1001,
-                writable: false,
-                enumerable: false,
-                configurable: true
-            });
+var foo = function () { };
+try {
+    Object.defineProperty(Function.prototype, "prop", {
+        value: 1001,
+        writable: false,
+        enumerable: false,
+        configurable: true
+    });
 
-            var obj = foo.bind({});
-            obj.prop = 1002;
+    var obj = foo.bind({});
+    assert(!obj.hasOwnProperty("prop"));
+    verifyNotWritable(foo, "prop", "noCheckOwnProp");
+} finally {
+    delete Function.prototype.prop;
+}
 
-            return !obj.hasOwnProperty("prop") && obj.prop === 1001;
-        } finally {
-            delete Function.prototype.prop;
-        }
-    }
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-429.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-429.js
index 87accfa6811f60bcb994bef823e4c8c8643a9dab..c7fd376ce226c05f89a66e96311796cdc6e280fa 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-429.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-429.js
@@ -14,21 +14,22 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        Object.defineProperty(obj, "prop", {
-            get: undefined,
-            set: undefined,
-            enumerable: true,
-            configurable: true
-        });
-        var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
+Object.defineProperty(obj, "prop", {
+    get: undefined,
+    set: undefined,
+    enumerable: true,
+    configurable: true
+});
+var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
 
-        Object.defineProperty(obj, "prop", {
-            configurable: false
-        });
-        var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
-        delete obj.prop;
+Object.defineProperty(obj, "prop", {
+    configurable: false
+});
+var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
 
-        return desc1.configurable === true && desc2.configurable === false && obj.hasOwnProperty("prop");
-    }
+verifyNotConfigurable(obj, "prop");
+assert.sameValue(desc1.configurable, true);
+assert.sameValue(desc2.configurable, false);
+assert(obj.hasOwnProperty("prop"));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-434.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-434.js
index e10127daa018a3a15a5fc4bd4b19cec6be55458d..2e42f98db2fe111ece3e566e9d179b0288059a4e 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-434.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-434.js
@@ -13,19 +13,19 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        Object.defineProperty(obj, "prop", {
-            get: undefined,
-            set: undefined,
-            enumerable: true,
-            configurable: false
-        });
+Object.defineProperty(obj, "prop", {
+    get: undefined,
+    set: undefined,
+    enumerable: true,
+    configurable: false
+});
 
-        var propertyDefineCorrect = obj.hasOwnProperty("prop");
-        var desc = Object.getOwnPropertyDescriptor(obj, "prop");
+assert(obj.hasOwnProperty("prop"));
 
-        delete obj.prop;
+var desc = Object.getOwnPropertyDescriptor(obj, "prop");
 
-        return propertyDefineCorrect && desc.configurable === false && obj.hasOwnProperty("prop");
-    }
+assert.sameValue(desc.configurable, false);
+
+verifyNotConfigurable(obj, "prop");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-438.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-438.js
index 7b46c7f3372e3efd6857caa49a2fba500a9cb6ad..615ee2c0aaa352c7c912fcb8016ece91d6590e41 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-438.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-438.js
@@ -14,26 +14,31 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
-
-        Object.defineProperty(obj, "prop", {
-            get: undefined,
-            set: undefined,
-            enumerable: true,
-            configurable: false
-        });
-        var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
-
-        try {
-            Object.defineProperty(obj, "prop", {
-                configurable: true
-            });
-
-            return false;
-        } catch (e) {
-            var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
-            delete obj.prop;
-
-            return desc1.configurable === false && desc2.configurable === false && obj.hasOwnProperty("prop") && e instanceof TypeError;
-        }
-    }
+var obj = {};
+
+Object.defineProperty(obj, "prop", {
+    get: undefined,
+    set: undefined,
+    enumerable: true,
+    configurable: false
+});
+var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+try {
+    Object.defineProperty(obj, "prop", {
+        configurable: true
+    });
+
+    $ERROR("Expected TypeError");
+} catch (e) {
+    assert(e instanceof TypeError);
+
+    var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+    assert.sameValue(desc1.configurable, false);
+    assert.sameValue(desc2.configurable, false);
+
+    verifyNotConfigurable(obj, "prop");
+
+    assert(obj.hasOwnProperty("prop"));
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-447.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-447.js
index be415a16bb15365b5678b574a6d736b704ab2ba2..15d771bb79135b0647a1afcc2cde9f01179bf517 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-447.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-447.js
@@ -14,21 +14,24 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        Object.defineProperty(obj, "prop", {
-            get: undefined,
-            set: undefined,
-            enumerable: false,
-            configurable: true
-        });
-        var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
+Object.defineProperty(obj, "prop", {
+    get: undefined,
+    set: undefined,
+    enumerable: false,
+    configurable: true
+});
+var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
 
-        Object.defineProperty(obj, "prop", {
-            configurable: false
-        });
-        var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
-        delete obj.prop;
+Object.defineProperty(obj, "prop", {
+    configurable: false
+});
 
-        return desc1.configurable === true && desc2.configurable === false && obj.hasOwnProperty("prop");
-    }
+var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+assert.sameValue(desc1.configurable, true);
+assert.sameValue(desc2.configurable, false);
+
+verifyNotConfigurable(obj, "prop");
+assert(obj.hasOwnProperty("prop"));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-452.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-452.js
index e4683102752aa3f24a1151e03f9abfab0e262ea5..232a23684232b129cf7174211708df47226cc13d 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-452.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-452.js
@@ -13,19 +13,19 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        Object.defineProperty(obj, "prop", {
-            get: undefined,
-            set: undefined,
-            enumerable: false,
-            configurable: false
-        });
+Object.defineProperty(obj, "prop", {
+    get: undefined,
+    set: undefined,
+    enumerable: false,
+    configurable: false
+});
 
-        var propertyDefineCorrect = obj.hasOwnProperty("prop");
-        var desc = Object.getOwnPropertyDescriptor(obj, "prop");
+assert(obj.hasOwnProperty("prop"));
 
-        delete obj.prop;
+var desc = Object.getOwnPropertyDescriptor(obj, "prop");
 
-        return propertyDefineCorrect && desc.configurable === false && obj.hasOwnProperty("prop");
-    }
+assert.sameValue(desc.configurable, false);
+
+verifyNotConfigurable(obj, "prop");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-456.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-456.js
index 26d42d0073f44730064bf692f99fa84f11862ef8..cc16bf883ce95c8e7f54bf32b248d6e68d867754 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-456.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-456.js
@@ -14,26 +14,31 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
-
-        Object.defineProperty(obj, "prop", {
-            get: undefined,
-            set: undefined,
-            enumerable: false,
-            configurable: false
-        });
-        var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
-
-        try {
-            Object.defineProperty(obj, "prop", {
-                configurable: true
-            });
-
-            return false;
-        } catch (e) {
-            var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
-            delete obj.prop;
-
-            return desc1.configurable === false && desc2.configurable === false && obj.hasOwnProperty("prop") && e instanceof TypeError;
-        }
-    }
+var obj = {};
+
+Object.defineProperty(obj, "prop", {
+    get: undefined,
+    set: undefined,
+    enumerable: false,
+    configurable: false
+});
+var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+try {
+    Object.defineProperty(obj, "prop", {
+        configurable: true
+    });
+
+    $ERROR("Expected TypeError");
+} catch (e) {
+    assert(e instanceof TypeError);
+    
+    var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+    assert.sameValue(desc1.configurable, false);
+    assert.sameValue(desc2.configurable, false);
+
+    verifyNotConfigurable(obj, "prop");
+
+    assert(obj.hasOwnProperty("prop"));
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-465.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-465.js
index e1b3a5e317b4170d34d15e1534caceda6a4842ab..ce37aecd3fcb39b2af058853e920ec8fecf2e9de 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-465.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-465.js
@@ -14,26 +14,29 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
-
-        var verifySetFunc = "data";
-        var setFunc = function (value) {
-            verifySetFunc = value;
-        };
-
-        Object.defineProperty(obj, "prop", {
-            get: undefined,
-            set: setFunc,
-            enumerable: true,
-            configurable: true
-        });
-        var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
-
-        Object.defineProperty(obj, "prop", {
-            configurable: false
-        });
-        var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
-        delete obj.prop;
-
-        return desc1.configurable === true && desc2.configurable === false && obj.hasOwnProperty("prop");
-    }
+var obj = {};
+
+var verifySetFunc = "data";
+var setFunc = function (value) {
+    verifySetFunc = value;
+};
+
+Object.defineProperty(obj, "prop", {
+    get: undefined,
+    set: setFunc,
+    enumerable: true,
+    configurable: true
+});
+var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+Object.defineProperty(obj, "prop", {
+    configurable: false
+});
+
+var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+assert.sameValue(desc1.configurable, true);
+assert.sameValue(desc2.configurable, false);
+
+verifyNotConfigurable(obj, "prop");
+assert(obj.hasOwnProperty("prop"));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-470.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-470.js
index a63c2ed3e93bb258082b766083c80133f212f1d9..9105d055e8f46958ca31429c76f2276feeb1f2ae 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-470.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-470.js
@@ -13,24 +13,26 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        var verifySetFunc = "data";
-        var setFunc = function (value) {
-            verifySetFunc = value;
-        };
+var verifySetFunc = "data";
+var setFunc = function (value) {
+    verifySetFunc = value;
+};
 
-        Object.defineProperty(obj, "prop", {
-            get: undefined,
-            set: setFunc,
-            enumerable: true,
-            configurable: false
-        });
+Object.defineProperty(obj, "prop", {
+    get: undefined,
+    set: setFunc,
+    enumerable: true,
+    configurable: false
+});
 
-        var propertyDefineCorrect = obj.hasOwnProperty("prop");
-        var desc = Object.getOwnPropertyDescriptor(obj, "prop");
+assert(obj.hasOwnProperty("prop"));
 
-        delete obj.prop;
+var desc = Object.getOwnPropertyDescriptor(obj, "prop");
 
-        return propertyDefineCorrect && desc.configurable === false && obj.hasOwnProperty("prop");
-    }
+verifyNotWritable(obj, "prop");
+
+assert.sameValue(desc.configurable, false);
+
+assert(obj.hasOwnProperty("prop"));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-474.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-474.js
index dcfa38cdfa7f11fe6546bf0581db6fcabc6d11ab..5847d0173f435ad0c0208b454f628a443ada3d96 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-474.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-474.js
@@ -14,31 +14,36 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
-
-        var verifySetFunc = "data";
-        var setFunc = function (value) {
-            verifySetFunc = value;
-        };
-
-        Object.defineProperty(obj, "prop", {
-            get: undefined,
-            set: setFunc,
-            enumerable: true,
-            configurable: false
-        });
-        var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
-
-        try {
-            Object.defineProperty(obj, "prop", {
-                configurable: true
-            });
-
-            return false;
-        } catch (e) {
-            var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
-            delete obj.prop;
-
-            return desc1.configurable === false && desc2.configurable === false && obj.hasOwnProperty("prop") && e instanceof TypeError;
-        }
-    }
+var obj = {};
+
+var verifySetFunc = "data";
+var setFunc = function (value) {
+    verifySetFunc = value;
+};
+
+Object.defineProperty(obj, "prop", {
+    get: undefined,
+    set: setFunc,
+    enumerable: true,
+    configurable: false
+});
+var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+try {
+    Object.defineProperty(obj, "prop", {
+        configurable: true
+    });
+
+    $ERROR("Expected TypeError");
+} catch (e) {
+    assert(e instanceof TypeError);
+
+    var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+    assert.sameValue(desc1.configurable, false);
+    assert.sameValue(desc2.configurable, false);
+
+    verifyNotConfigurable(obj, "prop");
+
+    assert(obj.hasOwnProperty("prop"));
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-483.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-483.js
index 8f7e5313ef96d0e4d2e7ee492da64070ae995042..c00f53f2451d18f5bdef0810f22d2320b7734f49 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-483.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-483.js
@@ -14,26 +14,30 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
-
-        var verifySetFunc = "data";
-        var setFunc = function (value) {
-            verifySetFunc = value;
-        };
-
-        Object.defineProperty(obj, "prop", {
-            get: undefined,
-            set: setFunc,
-            enumerable: false,
-            configurable: true
-        });
-        var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
-
-        Object.defineProperty(obj, "prop", {
-            configurable: false
-        });
-        var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
-        delete obj.prop;
-
-        return desc1.configurable === true && desc2.configurable === false && obj.hasOwnProperty("prop");
-    }
+var obj = {};
+
+var verifySetFunc = "data";
+var setFunc = function (value) {
+    verifySetFunc = value;
+};
+
+Object.defineProperty(obj, "prop", {
+    get: undefined,
+    set: setFunc,
+    enumerable: false,
+    configurable: true
+});
+var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+Object.defineProperty(obj, "prop", {
+    configurable: false
+});
+
+var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+assert.sameValue(desc1.configurable, true);
+assert.sameValue(desc2.configurable, false);
+
+verifyNotConfigurable(obj, "prop");
+
+assert(obj.hasOwnProperty("prop"));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-488.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-488.js
index fafebace2d6a9ff5066df6defbe0a855bd9a7978..838b51ec524e9161362959501e372178c3ce739c 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-488.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-488.js
@@ -13,24 +13,25 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        var verifySetFunc = "data";
-        var setFunc = function (value) {
-            verifySetFunc = value;
-        };
+var verifySetFunc = "data";
+var setFunc = function (value) {
+    verifySetFunc = value;
+};
 
-        Object.defineProperty(obj, "prop", {
-            get: undefined,
-            set: setFunc,
-            enumerable: false,
-            configurable: false
-        });
+Object.defineProperty(obj, "prop", {
+    get: undefined,
+    set: setFunc,
+    enumerable: false,
+    configurable: false
+});
 
-        var propertyDefineCorrect = obj.hasOwnProperty("prop");
-        var desc = Object.getOwnPropertyDescriptor(obj, "prop");
+assert(obj.hasOwnProperty("prop"));
 
-        delete obj.prop;
+var desc = Object.getOwnPropertyDescriptor(obj, "prop");
 
-        return propertyDefineCorrect && desc.configurable === false && obj.hasOwnProperty("prop");
-    }
+verifyNotConfigurable(obj, "prop");
+assert.sameValue(desc.configurable, false);
+
+assert(obj.hasOwnProperty("prop"));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-492.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-492.js
index f90c1442f5aa8402b710dbb89683d6dfe880e761..222db68787000af78163d51efe2bce7a03de58ce 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-492.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-492.js
@@ -14,31 +14,36 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
-
-        var verifySetFunc = "data";
-        var setFunc = function (value) {
-            verifySetFunc = value;
-        };
-
-        Object.defineProperty(obj, "prop", {
-            get: undefined,
-            set: setFunc,
-            enumerable: false,
-            configurable: false
-        });
-        var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
-
-        try {
-            Object.defineProperty(obj, "prop", {
-                configurable: true
-            });
-
-            return false;
-        } catch (e) {
-            var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
-            delete obj.prop;
-
-            return desc1.configurable === false && desc2.configurable === false && obj.hasOwnProperty("prop") && e instanceof TypeError;
-        }
-    }
+var obj = {};
+
+var verifySetFunc = "data";
+var setFunc = function (value) {
+    verifySetFunc = value;
+};
+
+Object.defineProperty(obj, "prop", {
+    get: undefined,
+    set: setFunc,
+    enumerable: false,
+    configurable: false
+});
+var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+try {
+    Object.defineProperty(obj, "prop", {
+        configurable: true
+    });
+
+    $ERROR("Expected TypeError");
+} catch (e) {
+    assert(e instanceof TypeError);
+
+    var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+    verifyNotConfigurable(obj, "prop");
+
+    assert.sameValue(desc1.configurable, false);
+    assert.sameValue(desc2.configurable, false);
+
+    assert(obj.hasOwnProperty("prop"));
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-501.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-501.js
index 162369b35f9fba023b5a9300eb7b93578a06b561..0e1e1c45651eb79e2018c7e6d194688e155cbe33 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-501.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-501.js
@@ -14,25 +14,29 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
-
-        var getFunc = function () {
-            return 1001;
-        };
-
-        Object.defineProperty(obj, "prop", {
-            get: getFunc,
-            set: undefined,
-            enumerable: true,
-            configurable: true
-        });
-        var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
-
-        Object.defineProperty(obj, "prop", {
-            configurable: false
-        });
-        var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
-        delete obj.prop;
-
-        return desc1.configurable === true && desc2.configurable === false && obj.hasOwnProperty("prop");
-    }
+var obj = {};
+
+var getFunc = function () {
+    return 1001;
+};
+
+Object.defineProperty(obj, "prop", {
+    get: getFunc,
+    set: undefined,
+    enumerable: true,
+    configurable: true
+});
+var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+Object.defineProperty(obj, "prop", {
+    configurable: false
+});
+
+var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+assert.sameValue(desc1.configurable, true);
+assert.sameValue(desc2.configurable, false);
+
+verifyNotWritable(obj, "prop");
+
+assert(obj.hasOwnProperty("prop"));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-506.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-506.js
index 3756fe5b1bc2eca59066cfee35f9b8be300be7ac..5797cb158ae49466884784a2d506bfc105ee8f2a 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-506.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-506.js
@@ -13,23 +13,25 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        var getFunc = function () {
-            return 1001;
-        };
+var getFunc = function () {
+    return 1001;
+};
 
-        Object.defineProperty(obj, "prop", {
-            get: getFunc,
-            set: undefined,
-            enumerable: true,
-            configurable: false
-        });
+Object.defineProperty(obj, "prop", {
+    get: getFunc,
+    set: undefined,
+    enumerable: true,
+    configurable: false
+});
 
-        var propertyDefineCorrect = obj.hasOwnProperty("prop");
-        var desc = Object.getOwnPropertyDescriptor(obj, "prop");
+assert(obj.hasOwnProperty("prop"));
 
-        delete obj.prop;
+var desc = Object.getOwnPropertyDescriptor(obj, "prop");
 
-        return propertyDefineCorrect && desc.configurable === false && obj.hasOwnProperty("prop");
-    }
+assert.sameValue(desc.configurable, false);
+
+verifyNotConfigurable(obj, "prop");
+
+assert(obj.hasOwnProperty("prop"));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-510.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-510.js
index 01f739cc7f9eee92e33a02d8438fb0979f15c6c1..246b4fcf2b5dcd30f1073f4904d10dcd37630cce 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-510.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-510.js
@@ -14,30 +14,35 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
-
-        var getFunc = function () {
-            return 1001;
-        };
-
-        Object.defineProperty(obj, "prop", {
-            get: getFunc,
-            set: undefined,
-            enumerable: true,
-            configurable: false
-        });
-        var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
-
-        try {
-            Object.defineProperty(obj, "prop", {
-                configurable: true
-            });
-
-            return false;
-        } catch (e) {
-            var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
-            delete obj.prop;
-
-            return desc1.configurable === false && desc2.configurable === false && obj.hasOwnProperty("prop") && e instanceof TypeError;
-        }
-    }
+var obj = {};
+
+var getFunc = function () {
+    return 1001;
+};
+
+Object.defineProperty(obj, "prop", {
+    get: getFunc,
+    set: undefined,
+    enumerable: true,
+    configurable: false
+});
+var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+try {
+    Object.defineProperty(obj, "prop", {
+        configurable: true
+    });
+
+    $ERROR("Expected TypeError");
+} catch (e) {
+    assert(e instanceof TypeError);
+
+    var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+    assert.sameValue(desc1.configurable, false);
+    assert.sameValue(desc2.configurable, false);
+
+    verifyNotConfigurable(obj, "prop");
+
+    assert(obj.hasOwnProperty("prop"));
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-519.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-519.js
index 080b2d1a8e2460d481ad9ed618ee2eb1058f0b62..2eb0f0e6d6c5f8a26a5bab330c688abbd99c5d7a 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-519.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-519.js
@@ -14,25 +14,29 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
-
-        var getFunc = function () {
-            return 1001;
-        };
-
-        Object.defineProperty(obj, "prop", {
-            get: getFunc,
-            set: undefined,
-            enumerable: false,
-            configurable: true
-        });
-        var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
-
-        Object.defineProperty(obj, "prop", {
-            configurable: false
-        });
-        var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
-        delete obj.prop;
-
-        return desc1.configurable === true && desc2.configurable === false && obj.hasOwnProperty("prop");
-    }
+var obj = {};
+
+var getFunc = function () {
+    return 1001;
+};
+
+Object.defineProperty(obj, "prop", {
+    get: getFunc,
+    set: undefined,
+    enumerable: false,
+    configurable: true
+});
+var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+Object.defineProperty(obj, "prop", {
+    configurable: false
+});
+
+var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+assert.sameValue(desc1.configurable, true);
+assert.sameValue(desc2.configurable, false);
+
+verifyNotConfigurable(obj, "prop");
+
+assert(obj.hasOwnProperty("prop"));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-524.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-524.js
index 065df6752652fa84c197da3cf9da1bc7d1014172..766fbda131b956fa78df10d7d0f201c525b7fc71 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-524.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-524.js
@@ -13,23 +13,24 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
+var obj = {};
 
-        var getFunc = function () {
-            return 1001;
-        };
+var getFunc = function () {
+    return 1001;
+};
 
-        Object.defineProperty(obj, "prop", {
-            get: getFunc,
-            set: undefined,
-            enumerable: false,
-            configurable: false
-        });
+Object.defineProperty(obj, "prop", {
+    get: getFunc,
+    set: undefined,
+    enumerable: false,
+    configurable: false
+});
 
-        var propertyDefineCorrect = obj.hasOwnProperty("prop");
-        var desc = Object.getOwnPropertyDescriptor(obj, "prop");
+assert(obj.hasOwnProperty("prop"));
+var desc = Object.getOwnPropertyDescriptor(obj, "prop");
 
-        delete obj.prop;
+assert.sameValue(desc.configurable, false);
 
-        return propertyDefineCorrect && desc.configurable === false && obj.hasOwnProperty("prop");
-    }
+verifyNotConfigurable(obj, "prop");
+
+assert(obj.hasOwnProperty("prop"));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-528.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-528.js
index 643e382e47b7f6673ac0903eb406d2959d2ac6c4..f74a380e42ce62019877e34d6493ff331bcae2eb 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-528.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-528.js
@@ -14,30 +14,35 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = {};
-
-        var getFunc = function () {
-            return 1001;
-        };
-
-        Object.defineProperty(obj, "prop", {
-            get: getFunc,
-            set: undefined,
-            enumerable: false,
-            configurable: false
-        });
-        var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
-
-        try {
-            Object.defineProperty(obj, "prop", {
-                configurable: true
-            });
-
-            return false;
-        } catch (e) {
-            var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
-            delete obj.prop;
-
-            return desc1.configurable === false && desc2.configurable === false && obj.hasOwnProperty("prop") && e instanceof TypeError;
-        }
-    }
+var obj = {};
+
+var getFunc = function () {
+    return 1001;
+};
+
+Object.defineProperty(obj, "prop", {
+    get: getFunc,
+    set: undefined,
+    enumerable: false,
+    configurable: false
+});
+var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+try {
+    Object.defineProperty(obj, "prop", {
+        configurable: true
+    });
+
+    $ERROR("Expected TypeError");
+} catch (e) {
+    assert(e instanceof TypeError);
+
+    var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+    assert.sameValue(desc1.configurable, false);
+    assert.sameValue(desc2.configurable, false);
+    
+    verifyNotConfigurable(obj, "prop");
+
+    assert(obj.hasOwnProperty("prop"));
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-6.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-6.js
index 9b2f8b3da093b69cc39326b922cecb3ce4981958..9adc3865c5c80581b8d851825fe4291a20764700 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-6.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-6.js
@@ -13,22 +13,23 @@ description: >
 includes: [propertyHelper.js]
 ---*/
 
-        var obj = [];
+var obj = [];
 
-        var verifySetFunc = "data";
-        var getFunc = function () {
-            return verifySetFunc;
-        };
+var verifySetFunc = "data";
+var getFunc = function () {
+    return verifySetFunc;
+};
 
-        Object.defineProperty(obj, "0", {
-            get: getFunc,
-            enumerable: true,
-            configurable: true
-        });
+Object.defineProperty(obj, "0", {
+    get: getFunc,
+    enumerable: true,
+    configurable: true
+});
 
-        obj[0] = "overrideData";
-        var propertyDefineCorrect = obj.hasOwnProperty("0");
-        var desc = Object.getOwnPropertyDescriptor(obj, "0");
+verifyNotWritable(obj, "0");
+
+assert(obj.hasOwnProperty("0"));
+var desc = Object.getOwnPropertyDescriptor(obj, "0");
+
+assert.sameValue(typeof desc.set, "undefined");
 
-        return propertyDefineCorrect && typeof desc.set === "undefined" && obj[0] === "data";
-    }