diff --git a/harness/accessorPropertyAttributesAreCorrect.js b/harness/accessorPropertyAttributesAreCorrect.js deleted file mode 100644 index 8343936457786714febc59fcd89d52c46bcbadb4..0000000000000000000000000000000000000000 --- a/harness/accessorPropertyAttributesAreCorrect.js +++ /dev/null @@ -1,74 +0,0 @@ -//----------------------------------------------------------------------------- -//Verify all attributes specified accessor property of given object: -//get, set, enumerable, configurable -//If all attribute values are expected, return true, otherwise, return false -function accessorPropertyAttributesAreCorrect(obj, - name, - get, - set, - setVerifyHelpProp, - enumerable, - configurable) { - var attributesCorrect = true; - - if (get !== undefined) { - if (obj[name] !== get()) { - if (typeof obj[name] === "number" && - isNaN(obj[name]) && - typeof get() === "number" && - isNaN(get())) { - // keep empty - } else { - attributesCorrect = false; - } - } - } else { - if (obj[name] !== undefined) { - attributesCorrect = false; - } - } - - try { - var desc = Object.getOwnPropertyDescriptor(obj, name); - if (typeof desc.set === "undefined") { - if (typeof set !== "undefined") { - attributesCorrect = false; - } - } else { - obj[name] = "toBeSetValue"; - if (obj[setVerifyHelpProp] !== "toBeSetValue") { - attributesCorrect = false; - } - } - } catch (se) { - throw se; - } - - - var enumerated = false; - for (var prop in obj) { - if (obj.hasOwnProperty(prop) && prop === name) { - enumerated = true; - } - } - - if (enumerated !== enumerable) { - attributesCorrect = false; - } - - - var deleted = false; - try { - delete obj[name]; - } catch (de) { - throw de; - } - if (!obj.hasOwnProperty(name)) { - deleted = true; - } - if (deleted !== configurable) { - attributesCorrect = false; - } - - return attributesCorrect; -} diff --git a/harness/dataPropertyAttributesAreCorrect.js b/harness/dataPropertyAttributesAreCorrect.js deleted file mode 100644 index 201409f905a6fd0b204969f998115597d3fe01f4..0000000000000000000000000000000000000000 --- a/harness/dataPropertyAttributesAreCorrect.js +++ /dev/null @@ -1,74 +0,0 @@ -//----------------------------------------------------------------------------- -//Verify all attributes specified data property of given object: -//value, writable, enumerable, configurable -//If all attribute values are expected, return true, otherwise, return false -function dataPropertyAttributesAreCorrect(obj, - name, - value, - writable, - enumerable, - configurable) { - var attributesCorrect = true; - - if (obj[name] !== value) { - if (typeof obj[name] === "number" && - isNaN(obj[name]) && - typeof value === "number" && - isNaN(value)) { - // keep empty - } else { - attributesCorrect = false; - } - } - - try { - if (obj[name] === "oldValue") { - obj[name] = "newValue"; - } else { - obj[name] = "OldValue"; - } - } catch (we) { - } - - var overwrited = false; - if (obj[name] !== value) { - if (typeof obj[name] === "number" && - isNaN(obj[name]) && - typeof value === "number" && - isNaN(value)) { - // keep empty - } else { - overwrited = true; - } - } - if (overwrited !== writable) { - attributesCorrect = false; - } - - var enumerated = false; - for (var prop in obj) { - if (obj.hasOwnProperty(prop) && prop === name) { - enumerated = true; - } - } - - if (enumerated !== enumerable) { - attributesCorrect = false; - } - - - var deleted = false; - - try { - delete obj[name]; - } catch (de) { - } - if (!obj.hasOwnProperty(name)) { - deleted = true; - } - if (deleted !== configurable) { - attributesCorrect = false; - } - - return attributesCorrect; -} diff --git a/harness/propertyHelper.js b/harness/propertyHelper.js new file mode 100644 index 0000000000000000000000000000000000000000..016fe12910a2d024d37e4975835d68d0ab7b46c6 --- /dev/null +++ b/harness/propertyHelper.js @@ -0,0 +1,91 @@ + +function isConfigurable(obj, name) { + try { + delete obj[name]; + } catch (e) { + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + } + return !Object.prototype.hasOwnProperty.call(obj, name); +} + +function isEnumerable(obj, name) { + for (var prop in obj) { + if (Object.prototype.hasOwnProperty.call(obj, prop) && + assert._isSameValue(prop, name)) { + return true; + } + } + + return false; +} + +function isEqualTo(obj, name, expectedValue) { + var actualValue = obj[name]; + + return assert._isSameValue(actualValue, expectedValue); +} + +function isWritable(obj, name, verifyProp, value) { + var newValue = value || "unlikelyValue"; + + try { + obj[name] = newValue; + } catch (e) { + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + } + + if ((verifyProp && isEqualTo(obj, verifyProp, newValue)) || + isEqualTo(obj, name, newValue)) { + return true; + } + + return false; +} + +function verifyEqualTo(obj, name, value) { + if (!isEqualTo(obj, name, value)) { + $ERROR("Expected obj[" + String(name) + "] to equal " + value + + ", actually " + obj[name]); + } +} + +function verifyWritable(obj, name, verifyProp, value) { + if (!isWritable(obj, name, verifyProp, value)) { + $ERROR("Expected obj[" + String(name) + "] to be writable, but was not."); + } +} + +function verifyNotWritable(obj, name, verifyProp, value) { + if (isWritable(obj, name, verifyProp)) { + $ERROR("Expected obj[" + String(name) + "] NOT to be writable, but was."); + } +} + +function verifyEnumerable(obj, name) { + if (!isEnumerable(obj, name)) { + $ERROR("Expected obj[" + String(name) + "] to be enumerable, but was not."); + } +} + +function verifyNotEnumerable(obj, name) { + if (isEnumerable(obj, name)) { + $ERROR("Expected obj[" + String(name) + "] NOT to be enumerable, but was."); + } +} + +function verifyConfigurable(obj, name) { + if (!isConfigurable(obj, name)) { + $ERROR("Expected obj[" + String(name) + "] to be configurable, but was not."); + } +} + +function verifyNotConfigurable(obj, name) { + if (isConfigurable(obj, name)) { + $ERROR("Expected obj[" + String(name) + "] NOT to be configurable, but was."); + } +} + diff --git a/test/built-ins/Object/create/15.2.3.5-4-315.js b/test/built-ins/Object/create/15.2.3.5-4-315.js index da1c857876d4282fed13a386dee85d993d52d409..0cbd828eb3c4fc76610e6c4e09ebf581705200c0 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-315.js +++ b/test/built-ins/Object/create/15.2.3.5-4-315.js @@ -9,37 +9,44 @@ es5id: 15.2.3.5-4-315 description: > Object.create - all properties in 'Properties' are enumerable (data property and accessor property) (15.2.3.7 step 7) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var newObj = {}; - function getFunc() { - return 10; - } - function setFunc(value) { - newObj.setVerifyHelpProp = value; - } - - newObj = Object.create({}, { - foo1: { - value: 200, - enumerable: true, - writable: true, - configurable: true - }, - foo2: { - get: getFunc, - set: setFunc, - enumerable: true, - configurable: true - } - }); - return dataPropertyAttributesAreCorrect(newObj, "foo1", 200, true, true, true) && - accessorPropertyAttributesAreCorrect(newObj, "foo2", getFunc, setFunc, "setVerifyHelpProp", true, true); +var newObj = {}; +function getFunc() { + return 10; +} +function setFunc(value) { + newObj.setVerifyHelpProp = value; +} + +newObj = Object.create({}, { + foo1: { + value: 200, + enumerable: true, + writable: true, + configurable: true + }, + foo2: { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true } -runTestCase(testcase); +}); + +verifyEqualTo(newObj, "foo1", 200); + +verifyWritable(newObj, "foo1"); + +verifyEnumerable(newObj, "foo1"); + +verifyConfigurable(newObj, "foo1"); + +verifyEqualTo(newObj, "foo2", getFunc()); + +verifyWritable(newObj, "foo2", "setVerifyHelpProp"); + +verifyEnumerable(newObj, "foo2"); + +verifyConfigurable(newObj, "foo2"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-100.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-100.js index a718b2b736150435a36eb30048a0f6c75629f979..de537e96afe91384dc6296c084c051b7e17e4e9a 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-100.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-100.js @@ -9,28 +9,29 @@ es5id: 15.2.3.7-6-a-100 description: > Object.defineProperties - 'P' is data property, several attributes values of P and properties are different (8.12.9 step 12) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: 100, - writable: true, - configurable: true - }); +Object.defineProperty(obj, "foo", { + value: 100, + writable: true, + configurable: true +}); - Object.defineProperties(obj, { - foo: { - value: 200, - writable: false, - configurable: false - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", 200, false, false, false); +Object.defineProperties(obj, { + foo: { + value: 200, + writable: false, + configurable: false } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", 200); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-101.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-101.js index 7654595d070a85dd9b815a60ba12a6b5ba1a11ff..2dfc8694a30e132fb3d4cba7cd542ca7b97d1f30 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-101.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-101.js @@ -10,38 +10,39 @@ description: > Object.defineProperties - 'P' is accessor property, both properties.[[Get]] and P.[[Get]] are two different values (8.12.9 step 12) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - function get_func() { - return 10; - } - function set_func(value) { - obj.setVerifyHelpProp = value; - } - - Object.defineProperty(obj, "foo", { - get: get_func, - set: set_func, - enumerable: true, - configurable: true - }); - - function get_func2() { - return 20; - } - - Object.defineProperties(obj, { - foo: { - get: get_func2 - } - }); - return accessorPropertyAttributesAreCorrect(obj, "foo", get_func2, set_func, "setVerifyHelpProp", true, true); + +var obj = {}; + +function get_func() { + return 10; +} +function set_func(value) { + obj.setVerifyHelpProp = value; +} + +Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true +}); + +function get_func2() { + return 20; +} + +Object.defineProperties(obj, { + foo: { + get: get_func2 } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", get_func2()); + +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-102.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-102.js index 3a7e732c3805184a78cbc16016ac55bad631e961..9f646a3c6b85f7c2341e5b2cc5ef91560e914bf7 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-102.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-102.js @@ -9,34 +9,33 @@ es5id: 15.2.3.7-6-a-102 description: > Object.defineProperties - 'P' is accessor property, P.[[Get]] is present and properties.[[Get]] is undefined (8.12.9 step 12) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - function get_func() { - return 10; - } - function set_func(value) { - obj.setVerifyHelpProp = value; - } - - Object.defineProperty(obj, "foo", { - get: get_func, - set: set_func, - enumerable: true, - configurable: true - }); - - Object.defineProperties(obj, { - foo: { - get: undefined - } - }); - return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, set_func, "setVerifyHelpProp", true, true); + +var obj = {}; + +function get_func() { + return 10; +} +function set_func(value) { + obj.setVerifyHelpProp = value; +} + +Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true +}); + +Object.defineProperties(obj, { + foo: { + get: undefined } -runTestCase(testcase); +}); +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-103.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-103.js index 472d1a2547dee89dcf976eb182a00dd693d5d6aa..f3be9fd86bbf52260de0b790d4e2ce37319b5670 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-103.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-103.js @@ -9,35 +9,36 @@ es5id: 15.2.3.7-6-a-103 description: > Object.defineProperties - 'P' is accessor property, P.[[Get]] is undefined and properties.[[Get]] is normal value (8.12.9 step 12) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function set_func(value) { - obj.setVerifyHelpProp = value; - } +function set_func(value) { + obj.setVerifyHelpProp = value; +} - Object.defineProperty(obj, "foo", { - get: undefined, - set: set_func, - enumerable: true, - configurable: true - }); +Object.defineProperty(obj, "foo", { + get: undefined, + set: set_func, + enumerable: true, + configurable: true +}); - function get_func() { - return 10; - } +function get_func() { + return 10; +} - Object.defineProperties(obj, { - foo: { - get: get_func - } - }); - return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "setVerifyHelpProp", true, true); +Object.defineProperties(obj, { + foo: { + get: get_func } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", get_func()); + +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-104.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-104.js index c24473b8d5e09ace0180fe5634af8d5dedd9d938..69d114689db41d729c1512949a52339180e52617 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-104.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-104.js @@ -10,39 +10,40 @@ description: > Object.defineProperties - 'P' is accessor property, both properties.[[Set]] and P.[[Set]] are two different values (8.12.9 step 12) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function get_func() { - return 10; - } +function get_func() { + return 10; +} - function set_func() { - return 10; - } +function set_func() { + return 10; +} - Object.defineProperty(obj, "foo", { - get: get_func, - set: set_func, - enumerable: true, - configurable: true - }); +Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true +}); - function set_func2(value) { - obj.setVerifyHelpProp = value; - } +function set_func2(value) { + obj.setVerifyHelpProp = value; +} - Object.defineProperties(obj, { - foo: { - set: set_func2 - } - }); - return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func2, "setVerifyHelpProp", true, true); +Object.defineProperties(obj, { + foo: { + set: set_func2 } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", get_func()); + +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-106.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-106.js index c8c5ae6f3155e2198e5cc46b9527d92d92182cbf..1381d45ccfc6dd979a6484f2dd870b186821c65f 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-106.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-106.js @@ -9,35 +9,36 @@ es5id: 15.2.3.7-6-a-106 description: > Object.defineProperties - 'P' is accessor property, P.[[Set]] is undefined and properties.[[Set]] is normal value (8.12.9 step 12) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function get_func() { - return 10; - } +function get_func() { + return 10; +} - Object.defineProperty(obj, "foo", { - get: get_func, - set: undefined, - enumerable: true, - configurable: true - }); +Object.defineProperty(obj, "foo", { + get: get_func, + set: undefined, + enumerable: true, + configurable: true +}); - function set_func(value) { - obj.setVerifyHelpProp = value; - } +function set_func(value) { + obj.setVerifyHelpProp = value; +} - Object.defineProperties(obj, { - foo: { - set: set_func - } - }); - return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "setVerifyHelpProp", true, true); +Object.defineProperties(obj, { + foo: { + set: set_func } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", get_func()); + +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-107.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-107.js index ccbed0fcdb04d986b934658869826d13336f052b..bdd1f2214427c578c97fd67cd8ff38f3507470e7 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-107.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-107.js @@ -9,34 +9,35 @@ es5id: 15.2.3.7-6-a-107 description: > Object.defineProperties - 'P' is accessor property, P.enumerable and properties.enumerable are different values (8.12.9 step 12) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - function get_func() { - return 10; - } - function set_func(value) { - obj.setVerifyHelpProp = value; - } - - Object.defineProperty(obj, "foo", { - get: get_func, - set: set_func, - enumerable: true, - configurable: true - }); - - Object.defineProperties(obj, { - foo: { - enumerable: false - } - }); - return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "setVerifyHelpProp", false, true); + +var obj = {}; + +function get_func() { + return 10; +} +function set_func(value) { + obj.setVerifyHelpProp = value; +} + +Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true +}); + +Object.defineProperties(obj, { + foo: { + enumerable: false } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", get_func()); + +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyNotEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-108.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-108.js index 7218d10ec4c8f44e03ee9e3deab7be6eed1e467f..75a7f95af8d6a468884f58820663d1904db52085 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-108.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-108.js @@ -9,34 +9,35 @@ es5id: 15.2.3.7-6-a-108 description: > Object.defineProperties - 'P' is accessor property, P.configurable is true and properties.configurable is false -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - function get_func() { - return 10; - } - function set_func(value) { - obj.setVerifyHelpProp = value; - } - - Object.defineProperty(obj, "foo", { - get: get_func, - set: set_func, - enumerable: true, - configurable: true - }); - - Object.defineProperties(obj, { - foo: { - configurable: false - } - }); - return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "setVerifyHelpProp", true, false); + +var obj = {}; + +function get_func() { + return 10; +} +function set_func(value) { + obj.setVerifyHelpProp = value; +} + +Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true +}); + +Object.defineProperties(obj, { + foo: { + configurable: false } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", get_func()); + +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-109.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-109.js index 43e641b78280595f6f91cc8d832cdaebbfb83c21..80da3599a207ef63aa01edcf6154a682606604e8 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-109.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-109.js @@ -10,40 +10,41 @@ description: > Object.defineProperties - 'P' is accessor property, several attributes values of P and properties are different (8.12.9 step 12) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - function get_func1() { - return 10; - } - function set_func1() { } - - Object.defineProperty(obj, "foo", { - get: get_func1, - set: set_func1, - configurable: true - }); - - function get_func2() { - return 20; - } - function set_func2(value) { - obj.setVerifyHelpProp = value; - } - - Object.defineProperties(obj, { - foo: { - get: get_func2, - set: set_func2, - configurable: false - } - }); - return accessorPropertyAttributesAreCorrect(obj, "foo", get_func2, set_func2, "setVerifyHelpProp", false, false); + +var obj = {}; + +function get_func1() { + return 10; +} +function set_func1() { } + +Object.defineProperty(obj, "foo", { + get: get_func1, + set: set_func1, + configurable: true +}); + +function get_func2() { + return 20; +} +function set_func2(value) { + obj.setVerifyHelpProp = value; +} + +Object.defineProperties(obj, { + foo: { + get: get_func2, + set: set_func2, + configurable: false } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", get_func2()); + +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-110.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-110.js index 46cf1e0385cbef491c9244b3500b0b17539cfae4..839f77cc46662b0245277b9f6c7c6c2e790270ae 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-110.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-110.js @@ -9,40 +9,47 @@ es5id: 15.2.3.7-6-a-110 description: > Object.defineProperties - all own properties (data property and accessor property) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - function get_func() { - return 10; - } - function set_func(value) { - obj.setVerifyHelpProp = value; - } - - var properties = { - foo1: { - value: 200, - enumerable: true, - writable: true, - configurable: true - }, - foo2: { - get: get_func, - set: set_func, - enumerable: true, - configurable: true - } - }; - - Object.defineProperties(obj, properties); - return dataPropertyAttributesAreCorrect(obj, "foo1", 200, true, true, true) && accessorPropertyAttributesAreCorrect(obj, "foo2", get_func, set_func, "setVerifyHelpProp", true, true); +var obj = {}; + +function get_func() { + return 10; +} +function set_func(value) { + obj.setVerifyHelpProp = value; +} + +var properties = { + foo1: { + value: 200, + enumerable: true, + writable: true, + configurable: true + }, + foo2: { + get: get_func, + set: set_func, + enumerable: true, + configurable: true } -runTestCase(testcase); +}; + +Object.defineProperties(obj, properties); +verifyEqualTo(obj, "foo1", 200); + +verifyWritable(obj, "foo1"); + +verifyEnumerable(obj, "foo1"); + +verifyConfigurable(obj, "foo1"); +verifyEqualTo(obj, "foo2", get_func()); + +verifyWritable(obj, "foo2", "setVerifyHelpProp"); + +verifyEnumerable(obj, "foo2"); + +verifyConfigurable(obj, "foo2"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-114-b.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-114-b.js new file mode 100644 index 0000000000000000000000000000000000000000..fe859b48b77f478c8f11cbe09156457b977de6b7 --- /dev/null +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-114-b.js @@ -0,0 +1,30 @@ +// Copyright (c) 2012 Ecma International. All rights reserved. +// Ecma International makes this code available under the terms and conditions set +// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +// "Use Terms"). Any redistribution of this code must retain the above +// copyright and this notice and otherwise comply with the Use Terms. + +/*--- +es5id: 15.2.3.7-6-a-114-b +description: > + Object.defineProperties - 'O' is an Array, 'P' is the length + property of 'O', the [[Value]] field of 'desc' is absent, test + every field in 'desc' is absent (15.4.5.1 step 3.a.i) +includes: [propertyHelper.js] +---*/ + +var arr = []; + +Object.defineProperties(arr, { length: {} }); + +if (arr.length !== 0) { + $ERROR("Expected arr.length to be 0, actually " + arr.length); +} + +verifyEqualTo(arr, "length", 0); + +verifyWritable(arr, "length", "length", 1); + +verifyNotEnumerable(arr, "length"); + +verifyNotConfigurable(arr, "length"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-114.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-114.js index beb373ec958be2b7cbe3b6ea5c01c673f8b9846f..a3fb021d4976f2f78bca61e253a47e09cdd2ebf2 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-114.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-114.js @@ -10,32 +10,23 @@ description: > Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is absent, test every field in 'desc' is absent (15.4.5.1 step 3.a.i) -includes: [runTestCase.js] +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - Object.defineProperties(arr, { length: {} }); +Object.defineProperties(arr, { length: {} }); - var verifyValue = false; - verifyValue = (arr.length === 0); +if (arr.length !== 0) { + $ERROR("Expected arr.length to be 0, actually " + arr.length); +} - var verifyWritable = false; - arr.length = 2; - verifyWritable = (arr.length === 2); +arr.length = 2; - var verifyEnumerable = false; - for (var p in arr) { - if (p === "length") { - verifyEnumerable = true; - } - } +verifyEqualTo(arr, "length", 2); - var verifyConfigurable = false; - delete arr.length; - verifyConfigurable = arr.hasOwnProperty("length"); +verifyWritable(arr, "length", "length", 5); - return verifyValue && verifyWritable && !verifyEnumerable && verifyConfigurable; - } -runTestCase(testcase); +verifyNotEnumerable(arr, "length"); + +verifyNotConfigurable(arr, "length"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-12.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-12.js index dd84a5faaaa3dc895a5c551cd5f54317d4642225..baace58ec4112caa6d70c6d314cf7632d458d139 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-12.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-12.js @@ -10,29 +10,35 @@ description: > Object.defineProperties - 'O' is a Function object which implements its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 ) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var fun = function () { }; - - Object.defineProperty(fun, "prop", { - value: 11, - configurable: false - }); - - try { - Object.defineProperties(fun, { - prop: { - value: 12, - configurable: true - } - }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(fun, "prop", 11, false, false, false); +var fun = function () { }; + +Object.defineProperty(fun, "prop", { + value: 11, + configurable: false +}); + +try { + Object.defineProperties(fun, { + prop: { + value: 12, + configurable: true } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(fun, "prop", 11); + + verifyNotWritable(fun, "prop"); + + verifyNotEnumerable(fun, "prop"); + + verifyNotConfigurable(fun, "prop"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-120.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-120.js index 39e13d920bf08b9239c377ac71cf9a040876a157..f13c04cd0c7bef5cdc58f95862db85fa30d945bd 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-120.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-120.js @@ -11,23 +11,20 @@ description: > property of 'O', the [[Value]] field of 'desc' is absent, test updating the [[Writable]] attribute of the length property from true to false (15.4.5.1 step 3.a.i) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { +var arr = []; - var arr = []; +Object.defineProperties(arr, { + length: { writable: false } +}); - try { - Object.defineProperties(arr, { - length: { writable: false } - }); +verifyEqualTo(arr, "length", 0); + +verifyNotWritable(arr, "length"); + +verifyNotEnumerable(arr, "length"); + +verifyNotConfigurable(arr, "length"); - return dataPropertyAttributesAreCorrect(arr, "length", 0, false, false, false); - } catch (e) { - return false; - } - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-13.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-13.js index 0310a6ef91c1b6b6b17305b89645cf8170e3cbe5..7025f2fdbcc87f180c7a8b912a81d55ccc1359cd 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-13.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-13.js @@ -9,29 +9,35 @@ es5id: 15.2.3.7-6-a-13 description: > Object.defineProperties - 'O' is an Array object which implements its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 ) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; - - Object.defineProperty(arr, "prop", { - value: 11, - configurable: false - }); - - try { - Object.defineProperties(arr, { - prop: { - value: 12, - configurable: true - } - }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arr, "prop", 11, false, false, false); +var arr = []; + +Object.defineProperty(arr, "prop", { + value: 11, + configurable: false +}); + +try { + Object.defineProperties(arr, { + prop: { + value: 12, + configurable: true } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arr, "prop", 11); + + verifyNotWritable(arr, "prop"); + + verifyNotEnumerable(arr, "prop"); + + verifyNotConfigurable(arr, "prop"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-14.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-14.js index b094ee9ef053deb1351d8e64cfd92870530f6832..b99a23cdd72e55fb13ed7b09f75bb2775e74b2c2 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-14.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-14.js @@ -9,29 +9,35 @@ es5id: 15.2.3.7-6-a-14 description: > Object.defineProperties - 'O' is a String object which implements its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 ) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var str = new String(); - - Object.defineProperty(str, "prop", { - value: 11, - configurable: false - }); - - try { - Object.defineProperties(str, { - prop: { - value: 12, - configurable: true - } - }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(str, "prop", 11, false, false, false); +var str = new String(); + +Object.defineProperty(str, "prop", { + value: 11, + configurable: false +}); + +try { + Object.defineProperties(str, { + prop: { + value: 12, + configurable: true } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(str, "prop", 11); + + verifyNotWritable(str, "prop"); + + verifyNotEnumerable(str, "prop"); + + verifyNotConfigurable(str, "prop"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-15.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-15.js index 09c6d877da7de59bbd404e035b73f1e79bd878f7..8f2d5b3254f0fb344fb4e8b16e73be51fbee026d 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-15.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-15.js @@ -9,30 +9,36 @@ es5id: 15.2.3.7-6-a-15 description: > Object.defineProperties - 'O' is a Boolean object which implements its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 ) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = new Boolean(false); - - Object.defineProperty(obj, "prop", { - value: 11, - configurable: false - }); - - try { - Object.defineProperties(obj, { - prop: { - value: 12, - configurable: true - } - }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "prop", 11, false, false, false); + +var obj = new Boolean(false); + +Object.defineProperty(obj, "prop", { + value: 11, + configurable: false +}); + +try { + Object.defineProperties(obj, { + prop: { + value: 12, + configurable: true } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "prop", 11); + + verifyNotWritable(obj, "prop"); + + verifyNotEnumerable(obj, "prop"); + + verifyNotConfigurable(obj, "prop"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-16.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-16.js index 47ec1565c92fa2a3408d220f26689a90ae63c54a..d6dfa319a9f8652c0e71d0214b3a7c2747c791b0 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-16.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-16.js @@ -9,30 +9,36 @@ es5id: 15.2.3.7-6-a-16 description: > Object.defineProperties - 'O' is a Number object which implements its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 ) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = new Number(-9); - - Object.defineProperty(obj, "prop", { - value: 11, - configurable: false - }); - - try { - Object.defineProperties(obj, { - prop: { - value: 12, - configurable: true - } - }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "prop", 11, false, false, false); + +var obj = new Number(-9); + +Object.defineProperty(obj, "prop", { + value: 11, + configurable: false +}); + +try { + Object.defineProperties(obj, { + prop: { + value: 12, + configurable: true } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "prop", 11); + + verifyNotWritable(obj, "prop"); + + verifyNotEnumerable(obj, "prop"); + + verifyNotConfigurable(obj, "prop"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-18.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-18.js index f645b3f8d99891efe829b918463535fcda65bb89..0ae37cf312d723b766ce06fc981e96e8413bd52f 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-18.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-18.js @@ -9,30 +9,36 @@ es5id: 15.2.3.7-6-a-18 description: > Object.defineProperties - 'O' is a Date object which implements its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 ) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = new Date(); - - Object.defineProperty(obj, "prop", { - value: 11, - configurable: false - }); - - try { - Object.defineProperties(obj, { - prop: { - value: 12, - configurable: true - } - }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "prop", 11, false, false, false); + +var obj = new Date(); + +Object.defineProperty(obj, "prop", { + value: 11, + configurable: false +}); + +try { + Object.defineProperties(obj, { + prop: { + value: 12, + configurable: true } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "prop", 11); + + verifyNotWritable(obj, "prop"); + + verifyNotEnumerable(obj, "prop"); + + verifyNotConfigurable(obj, "prop"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-19.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-19.js index d6251e983b9c6f2e9669c24ed4b21630cd58485a..0b31aaa75b14d8d28c8f0a8084c75800aa925219 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-19.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-19.js @@ -9,30 +9,36 @@ es5id: 15.2.3.7-6-a-19 description: > Object.defineProperties - 'O' is a RegExp object which implements its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 ) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = new RegExp(); - - Object.defineProperty(obj, "prop", { - value: 11, - configurable: false - }); - - try { - Object.defineProperties(obj, { - prop: { - value: 12, - configurable: true - } - }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "prop", 11, false, false, false); + +var obj = new RegExp(); + +Object.defineProperty(obj, "prop", { + value: 11, + configurable: false +}); + +try { + Object.defineProperties(obj, { + prop: { + value: 12, + configurable: true } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "prop", 11); + + verifyNotWritable(obj, "prop"); + + verifyNotEnumerable(obj, "prop"); + + verifyNotConfigurable(obj, "prop"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-195.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-195.js index 6bd51acb3682cf172d086b985e666dd3a1cc1be0..f7ed7037680939fef3a1ab035e03e9e119906465 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-195.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-195.js @@ -11,20 +11,21 @@ description: > named property, 'P' property doesn't exist in 'O', test 'P' is defined as data property when 'desc' is generic descriptor (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - Object.defineProperties(arr, { - "0": { - enumerable: true - } - }); - - return dataPropertyAttributesAreCorrect(arr, "0", undefined, false, true, false); +Object.defineProperties(arr, { + "0": { + enumerable: true } -runTestCase(testcase); +}); + +verifyEqualTo(arr, "0", undefined); + +verifyNotWritable(arr, "0"); + +verifyEnumerable(arr, "0"); + +verifyNotConfigurable(arr, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-2.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-2.js index 8622375b5351bde7b86c740d0fbe7a78b5aa7795..af582925c227eab0a200e2c3004571703536e4b5 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-2.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-2.js @@ -9,30 +9,31 @@ es5id: 15.2.3.7-6-a-2 description: > Object.defineProperties - 'P' is inherited data property (8.12.9 step 1 ) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var proto = {}; - Object.defineProperty(proto, "prop", { - value: 11, - configurable: false - }); - var Con = function () { }; - Con.prototype = proto; +var proto = {}; +Object.defineProperty(proto, "prop", { + value: 11, + configurable: false +}); +var Con = function () { }; +Con.prototype = proto; - var obj = new Con(); +var obj = new Con(); - Object.defineProperties(obj, { - prop: { - value: 12, - configurable: true - } - }); +Object.defineProperties(obj, { + prop: { + value: 12, + configurable: true + } +}); - return dataPropertyAttributesAreCorrect(obj, "prop", 12, false, false, true); +verifyEqualTo(obj, "prop", 12); + +verifyNotWritable(obj, "prop"); + +verifyNotEnumerable(obj, "prop"); + +verifyConfigurable(obj, "prop"); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-200.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-200.js index 63bcb05445ea95e47c3971bbe284e5cfa61161c6..62cd8a77bc81d16ea511d12ffe559d044073368b 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-200.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-200.js @@ -10,23 +10,25 @@ description: > Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'desc' is data descriptor, test updating all attribute values of 'P' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = [1]; // default value of attributes: writable: true, configurable: true, enumerable: true +var arr = [1]; // default value of attributes: writable: true, configurable: true, enumerable: true - Object.defineProperties(arr, { - "0": { - value: 1001, - writable: false, - enumerable: false, - configurable: false - } - }); - - return dataPropertyAttributesAreCorrect(arr, "0", 1001, false, false, false); +Object.defineProperties(arr, { + "0": { + value: 1001, + writable: false, + enumerable: false, + configurable: false } -runTestCase(testcase); +}); + +verifyEqualTo(arr, "0", 1001); + +verifyNotWritable(arr, "0"); + +verifyNotEnumerable(arr, "0"); + +verifyNotConfigurable(arr, "0"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-204.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-204.js index 54b0004f05fb5262d62daf4ff868c5f475afa816..2947909b4d982c68ec29621a37824f440260bf27 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-204.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-204.js @@ -12,33 +12,34 @@ description: > [[Configurable]] of 'P' property in 'Attributes' is set as false value if [[Configurable]] is absent in accessor descriptor 'desc' (15.4.5.1 step 4.c) -includes: [runTestCase.js] +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; - var beforeDeleted = false; - var afterDeleted = false; - arr.verifySetter = 100; - - Object.defineProperties(arr, { - "0": { - set: function (value) { - arr.verifySetter = value; - }, - get: function () { - return arr.verifySetter; - }, - enumerable: true - } - }); - - beforeDeleted = arr.hasOwnProperty("0"); - delete arr[0]; - afterDeleted = arr.hasOwnProperty("0"); - - arr[0] = 101; - - return beforeDeleted && afterDeleted && arr[0] === 101 && arr.verifySetter === 101; +var arr = []; +arr.verifySetter = 100; + +Object.defineProperties(arr, { + "0": { + set: function (value) { + arr.verifySetter = value; + }, + get: function () { + return arr.verifySetter; + }, + enumerable: true } -runTestCase(testcase); +}); + +if (!Object.prototype.hasOwnProperty.call(arr, "0")) { + $ERROR("Expected hasOwnProperty to return true."); +} + +arr[0] = 101; + +verifyEqualTo(arr, 0, 101); + +if (arr.verifySetter !== 101) { + $ERROR('Expected arr.verifySetter === 101, actually ' + arr.verifySetter); +} + +verifyNotConfigurable(arr, 0); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-205.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-205.js index 8fa5be67a07e3f8cd7736b35ccccd8a3f93cf79e..4693795186adb48b0823803c4fa78c7e24060629 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-205.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-205.js @@ -10,40 +10,41 @@ description: > Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'desc' is accessor descriptor, test updating all attribute values of 'P' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; - - Object.defineProperties(arr, { - "0": { - get: function () { - return 11; - }, - set: function () { }, - configurable: true, - enumerable: true - } - }); - - var setFun = function (value) { - arr.setVerifyHelpProp = value; - }; - var getFun = function () { - return 14; - }; - Object.defineProperties(arr, { - "0": { - get: getFun, - set: setFun, - configurable: false, - enumerable: false - } - }); - - return accessorPropertyAttributesAreCorrect(arr, "0", getFun, setFun, "setVerifyHelpProp", false, false); +var arr = []; + +Object.defineProperties(arr, { + "0": { + get: function () { + return 11; + }, + set: function () { }, + configurable: true, + enumerable: true + } +}); + +var setFun = function (value) { + arr.setVerifyHelpProp = value; +}; +var getFun = function () { + return 14; +}; +Object.defineProperties(arr, { + "0": { + get: getFun, + set: setFun, + configurable: false, + enumerable: false } -runTestCase(testcase); +}); + +verifyEqualTo(arr, "0", getFun()); + +verifyWritable(arr, "0", "setVerifyHelpProp"); + +verifyNotEnumerable(arr, "0"); + +verifyNotConfigurable(arr, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-206.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-206.js index 150ed4111a1ffe07c600d306ab5d97d6caa68b3d..a34b317d11fdcee051b50903ddc46eae96fbdf62 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-206.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-206.js @@ -10,23 +10,21 @@ description: > Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' makes no change if every field in 'desc' is absent (name is data property) (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; - - arr[0] = 101; // default value of attributes: writable: true, configurable: true, enumerable: true - - try { - Object.defineProperties(arr, { - "0": {} - }); - return dataPropertyAttributesAreCorrect(arr, "0", 101, true, true, true); - } catch (e) { - return false; - } - } -runTestCase(testcase); +var arr = []; + +arr[0] = 101; // default value of attributes: writable: true, configurable: true, enumerable: true + + +Object.defineProperties(arr, { + "0": {} +}); +verifyEqualTo(arr, "0", 101); + +verifyWritable(arr, "0"); + +verifyEnumerable(arr, "0"); + +verifyConfigurable(arr, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-207.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-207.js index 406e09285d32c079a4e3491bbb24894b1dc92134..ffa8d6cc828dd1b08cbf6beb1b1c978a346409b4 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-207.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-207.js @@ -10,35 +10,33 @@ description: > Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' makes no change if every field in 'desc' is absent (name is accessor property) (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; - - function get_func() { - return 11; - } - function set_func(value) { - arr.setVerifyHelpProp = value; - } - - Object.defineProperty(arr, "0", { - get: get_func, - set: set_func, - enumerable: true, - configurable: true - }); - - try { - Object.defineProperties(arr, { - "0": {} - }); - return accessorPropertyAttributesAreCorrect(arr, "0", get_func, set_func, "setVerifyHelpProp", true, true); - } catch (e) { - return false; - } - } -runTestCase(testcase); +var arr = []; + +function get_func() { + return 11; +} +function set_func(value) { + arr.setVerifyHelpProp = value; +} + +Object.defineProperty(arr, "0", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true +}); + +Object.defineProperties(arr, { + "0": {} +}); +verifyEqualTo(arr, "0", get_func()); + +verifyWritable(arr, "0", "setVerifyHelpProp"); + +verifyEnumerable(arr, "0"); + +verifyConfigurable(arr, "0"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-208.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-208.js index a0bc75abc030f676c648023d8022bc62e2234c50..ffb7ac7ba11b3631dc474a33912c03b817fdb0e8 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-208.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-208.js @@ -11,25 +11,26 @@ description: > named property, 'P' makes no change if the value of every field in 'desc' is the same value as the corresponding field in 'P'(desc is data property) (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - arr[0] = 100; // default value of attributes: writable: true, configurable: true, enumerable: true +arr[0] = 100; // default value of attributes: writable: true, configurable: true, enumerable: true - Object.defineProperties(arr, { - "0": { - value: 100, - writable: true, - enumerable: true, - configurable: true - } - }); - - return dataPropertyAttributesAreCorrect(arr, "0", 100, true, true, true); +Object.defineProperties(arr, { + "0": { + value: 100, + writable: true, + enumerable: true, + configurable: true } -runTestCase(testcase); +}); + +verifyEqualTo(arr, "0", 100); + +verifyWritable(arr, "0"); + +verifyEnumerable(arr, "0"); + +verifyConfigurable(arr, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-209.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-209.js index 5ba2fa5dd9c08f651ae7af6f6867d8c5903badc8..1905dc0dc797bcb2e956bb95e6c2fc9025d87378 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-209.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-209.js @@ -11,35 +11,36 @@ description: > named property, 'P' makes no change if the value of every field in 'desc' is the same value as the corresponding field in 'P'(desc is accessor property) (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; - var get_func = function () { - return "100"; - }; - var set_func = function (value) { - arr.setVerifyHelpProp = value; - }; - - var descObj = { - get: get_func, - set: set_func, - enumerable: true, - configurable: true - }; - - var properties = { - "0": descObj - }; - - Object.defineProperty(arr, "0", descObj); - - Object.defineProperties(arr, properties); - - return accessorPropertyAttributesAreCorrect(arr, "0", get_func, set_func, "setVerifyHelpProp", true, true); - } -runTestCase(testcase); +var arr = []; +var get_func = function () { + return "100"; +}; +var set_func = function (value) { + arr.setVerifyHelpProp = value; +}; + +var descObj = { + get: get_func, + set: set_func, + enumerable: true, + configurable: true +}; + +var properties = { + "0": descObj +}; + +Object.defineProperty(arr, "0", descObj); + +Object.defineProperties(arr, properties); + +verifyEqualTo(arr, "0", get_func()); + +verifyWritable(arr, "0", "setVerifyHelpProp"); + +verifyEnumerable(arr, "0"); + +verifyConfigurable(arr, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-21.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-21.js index d87892727b91e197f4ce9e39549957941dfee75c..2c51a333411738048934762ca07d69a326436374 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-21.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-21.js @@ -9,30 +9,36 @@ es5id: 15.2.3.7-6-a-21 description: > Object.defineProperties - 'O' is an Error object which implements its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 ) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = new Error(); - - Object.defineProperty(obj, "prop", { - value: 11, - configurable: false - }); - - try { - Object.defineProperties(obj, { - prop: { - value: 12, - configurable: true - } - }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "prop", 11, false, false, false); + +var obj = new Error(); + +Object.defineProperty(obj, "prop", { + value: 11, + configurable: false +}); + +try { + Object.defineProperties(obj, { + prop: { + value: 12, + configurable: true } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "prop", 11); + + verifyNotWritable(obj, "prop"); + + verifyNotEnumerable(obj, "prop"); + + verifyNotConfigurable(obj, "prop"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-210.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-210.js index a3ae0fcabb58dc2a38574c99628a8e227c6095c3..b228c5a3169763ab8040ab9c1a31dac361f9eddd 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-210.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-210.js @@ -11,23 +11,24 @@ description: > index property, both the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are undefined (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - Object.defineProperty(arr, "0", { - value: undefined - }); +Object.defineProperty(arr, "0", { + value: undefined +}); - Object.defineProperties(arr, { - "0": { - value: undefined - } - }); - return dataPropertyAttributesAreCorrect(arr, "0", undefined, false, false, false); +Object.defineProperties(arr, { + "0": { + value: undefined } -runTestCase(testcase); +}); +verifyEqualTo(arr, "0", undefined); + +verifyNotWritable(arr, "0"); + +verifyNotEnumerable(arr, "0"); + +verifyNotConfigurable(arr, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-211.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-211.js index e732b47ac4ab0799eed5d2596c8f27f019bffbea..a12e691152d58a35193e838c73ba0ee97aa2d3bc 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-211.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-211.js @@ -10,23 +10,24 @@ description: > Object.defineProperties - 'O' is an Array, 'name' is an array index property, both the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are null (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - Object.defineProperty(arr, "0", { - value: null - }); +Object.defineProperty(arr, "0", { + value: null +}); - Object.defineProperties(arr, { - "0": { - value: null - } - }); - return dataPropertyAttributesAreCorrect(arr, "0", null, false, false, false); +Object.defineProperties(arr, { + "0": { + value: null } -runTestCase(testcase); +}); +verifyEqualTo(arr, "0", null); + +verifyNotWritable(arr, "0"); + +verifyNotEnumerable(arr, "0"); + +verifyNotConfigurable(arr, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-212.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-212.js index 9bec4223e31e352bdcf95746e1a38830c68068e0..29020dd93a29252c12d51d27182cee0e565096bd 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-212.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-212.js @@ -10,24 +10,25 @@ description: > Object.defineProperties - 'O' is an Array, 'name' is an array index property, both the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are NaN (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - Object.defineProperty(arr, "0", { - value: NaN - }); +Object.defineProperty(arr, "0", { + value: NaN +}); - Object.defineProperties(arr, { - "0": { - value: NaN - } - }); - - return dataPropertyAttributesAreCorrect(arr, "0", NaN, false, false, false); +Object.defineProperties(arr, { + "0": { + value: NaN } -runTestCase(testcase); +}); + +verifyEqualTo(arr, "0", NaN); + +verifyNotWritable(arr, "0"); + +verifyNotEnumerable(arr, "0"); + +verifyNotConfigurable(arr, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-213.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-213.js index 23b3b1ff094e6d745aeb8a77fdf6f1daea9df082..7e3d97463bb4eb4e5ff0ad1e4cc05c9a513e03b8 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-213.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-213.js @@ -10,27 +10,33 @@ description: > Object.defineProperties - 'O' is an Array, 'name' is an array index property, the [[Value]] field of 'desc' is +0, and the [[Value]] attribute value of 'name' is -0 (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; - - Object.defineProperty(arr, "0", { - value: -0 - }); - - try { - Object.defineProperties(arr, { - "0": { - value: +0 - } - }); - return false; - } catch (e) { - return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "0", -0, false, false, false); +var arr = []; + +Object.defineProperty(arr, "0", { + value: -0 +}); + +try { + Object.defineProperties(arr, { + "0": { + value: +0 } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arr, "0", -0); + + verifyNotWritable(arr, "0"); + + verifyNotEnumerable(arr, "0"); + + verifyNotConfigurable(arr, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-214.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-214.js index f6c82c5216c6fa2860476773a6f66505b157a777..0476b149f46638ba5946f4f12bf3e349960e6427 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-214.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-214.js @@ -10,27 +10,33 @@ description: > Object.defineProperties - 'O' is an Array, 'name' is an array index property, the [[Value]] field of 'desc' is -0, and the [[Value]] attribute value of 'name' is +0 (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; - - Object.defineProperty(arr, "0", { - value: +0 - }); - - try { - Object.defineProperties(arr, { - "0": { - value: -0 - } - }); - return false; - } catch (e) { - return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "0", +0, false, false, false); +var arr = []; + +Object.defineProperty(arr, "0", { + value: +0 +}); + +try { + Object.defineProperties(arr, { + "0": { + value: -0 } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arr, "0", +0); + + verifyNotWritable(arr, "0"); + + verifyNotEnumerable(arr, "0"); + + verifyNotConfigurable(arr, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-215.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-215.js index 84b49158189bab22e93b5be8b1ddf4398e3cef06..7241d777ddf8244ca9ee2e61d0c2cef0eaf48fd7 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-215.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-215.js @@ -11,27 +11,24 @@ description: > index property, the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two numbers with same vaule (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - Object.defineProperty(arr, "0", { - value: 101 - }); +Object.defineProperty(arr, "0", { + value: 101 +}); - try { - Object.defineProperties(arr, { - "0": { - value: 101 - } - }); - return dataPropertyAttributesAreCorrect(arr, "0", 101, false, false, false); - } catch (e) { - return false; - } +Object.defineProperties(arr, { + "0": { + value: 101 } -runTestCase(testcase); +}); +verifyEqualTo(arr, "0", 101); + +verifyNotWritable(arr, "0"); + +verifyNotEnumerable(arr, "0"); + +verifyNotConfigurable(arr, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-216.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-216.js index d31ab7a424097b46b56a1162063b16a2a0bb68b5..6b7064c9ac527c077f7892d0feae238ffd55f2ad 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-216.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-216.js @@ -11,27 +11,25 @@ description: > index property, the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two strings which have same length and same characters in corresponding positions (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; - - Object.defineProperty(arr, "0", { - value: "abcd" - }); - - try { - Object.defineProperties(arr, { - "0": { - value: "abcd" - } - }); - return dataPropertyAttributesAreCorrect(arr, "0", "abcd", false, false, false); - } catch (e) { - return false; - } +var arr = []; + +Object.defineProperty(arr, "0", { + value: "abcd" +}); + +Object.defineProperties(arr, { + "0": { + value: "abcd" } -runTestCase(testcase); +}); +verifyEqualTo(arr, "0", "abcd"); + +verifyNotWritable(arr, "0"); + +verifyNotEnumerable(arr, "0"); + +verifyNotConfigurable(arr, "0"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-217.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-217.js index 828b925553e89a2433dda2f1cd9e9ce5cf9e5c13..7e29d6ac6e230706f2f4e817fd219640611577bb 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-217.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-217.js @@ -11,27 +11,25 @@ description: > index property, the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two booleans with same value (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; - - Object.defineProperty(arr, "0", { - value: true - }); - - try { - Object.defineProperties(arr, { - "0": { - value: true - } - }); - return dataPropertyAttributesAreCorrect(arr, "0", true, false, false, false); - } catch (e) { - return false; - } +var arr = []; + +Object.defineProperty(arr, "0", { + value: true +}); + +Object.defineProperties(arr, { + "0": { + value: true } -runTestCase(testcase); +}); +verifyEqualTo(arr, "0", true); + +verifyNotWritable(arr, "0"); + +verifyNotEnumerable(arr, "0"); + +verifyNotConfigurable(arr, "0"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-218.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-218.js index 79613d2e089d465fe4a5ea8737c301c2e3b60da5..a354697c59667baff3fe0813cdf57dce2ab8bc47 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-218.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-218.js @@ -11,29 +11,28 @@ description: > index property, the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two objects which refer to the same object (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; - - var obj1 = { length: 10 }; - Object.defineProperty(arr, "0", { - value: obj1 - }); - - var properties = { - "0": { - value: obj1 - } - }; - try { - Object.defineProperties(arr, properties); - return dataPropertyAttributesAreCorrect(arr, "0", obj1, false, false, false); - } catch (e) { - return false; - } +var arr = []; + +var obj1 = { length: 10 }; +Object.defineProperty(arr, "0", { + value: obj1 +}); + +var properties = { + "0": { + value: obj1 } -runTestCase(testcase); +}; + +Object.defineProperties(arr, properties); +verifyEqualTo(arr, "0", obj1); + +verifyNotWritable(arr, "0"); + +verifyNotEnumerable(arr, "0"); + +verifyNotConfigurable(arr, "0"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-219.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-219.js index 1ea718c282fed29968fcf31de7c346fbd0b168da..2fef482221a5786eeb928ebb9c8a1186d6f98374 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-219.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-219.js @@ -10,27 +10,25 @@ description: > Object.defineProperties - 'O' is an Array, 'P' is an array index property that already exists on 'O' with [[Writable]] true, and the [[Writable]] field of 'desc' is true (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; - - Object.defineProperty(arr, "0", { - writable: true - }); - - try { - Object.defineProperties(arr, { - "0": { - writable: true - } - }); - return dataPropertyAttributesAreCorrect(arr, "0", undefined, true, false, false); - } catch (e) { - return false; - } +var arr = []; + +Object.defineProperty(arr, "0", { + writable: true +}); + +Object.defineProperties(arr, { + "0": { + writable: true } -runTestCase(testcase); +}); +verifyEqualTo(arr, "0", undefined); + +verifyWritable(arr, "0"); + +verifyNotEnumerable(arr, "0"); + +verifyNotConfigurable(arr, "0"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-220.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-220.js index ea67a91e2b4c585103e8baa60f6ed6d473002f7e..479f738ef89d3cf84cc853e52ce45f1a4d0dcb80 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-220.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-220.js @@ -10,28 +10,26 @@ description: > Object.defineProperties - 'O' is an Array, 'P' is an array index property that already exists on 'O' with [[Writable]] true, and the [[Writable]] field of 'desc' is false (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; - - Object.defineProperty(arr, "0", { - writable: true, - configurable: true - }); - - try { - Object.defineProperties(arr, { - "0": { - writable: false - } - }); - return dataPropertyAttributesAreCorrect(arr, "0", undefined, false, false, true); - } catch (e) { - return false; - } +var arr = []; + +Object.defineProperty(arr, "0", { + writable: true, + configurable: true +}); + +Object.defineProperties(arr, { + "0": { + writable: false } -runTestCase(testcase); +}); +verifyEqualTo(arr, "0", undefined); + +verifyNotWritable(arr, "0"); + +verifyNotEnumerable(arr, "0"); + +verifyConfigurable(arr, "0"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-221.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-221.js index 63e162462fbdf3cff7f8188160dedcb8851d2010..d27e3ed76d43a403113bc24e7622e1553587094b 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-221.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-221.js @@ -11,27 +11,26 @@ description: > property, the [[Get]] field of 'desc' and the [[Get]] attribute value of 'P' are two objects which refer to the same object (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - function get_func() { - return 10; - } +function get_func() { + return 10; +} - Object.defineProperty(arr, "0", { - get: get_func - }); +Object.defineProperty(arr, "0", { + get: get_func +}); - Object.defineProperties(arr, { - "0": { - get: get_func - } - }); - return accessorPropertyAttributesAreCorrect(arr, "0", get_func, undefined, undefined, false, false); +Object.defineProperties(arr, { + "0": { + get: get_func } -runTestCase(testcase); +}); +verifyEqualTo(arr, "0", get_func()); + +verifyNotEnumerable(arr, "0"); + +verifyNotConfigurable(arr, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-222.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-222.js index c982b46c18fc50d5353e1ee5dceba00e8540e1a5..537ec63e1da2821f1cbda80f5d9c3f72bb0b72ee 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-222.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-222.js @@ -11,31 +11,26 @@ description: > property, the [[Set]] field of 'desc' and the [[Set]] attribute value of 'P' are two objects which refer to the same object (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - function set_func(value) { - arr.setVerifyHelpProp = value; - } +function set_func(value) { + arr.setVerifyHelpProp = value; +} - Object.defineProperty(arr, "0", { - set: set_func - }); +Object.defineProperty(arr, "0", { + set: set_func +}); - try { - Object.defineProperties(arr, { - "0": { - set: set_func - } - }); - return accessorPropertyAttributesAreCorrect(arr, "0", undefined, set_func, "setVerifyHelpProp", false, false); - } catch (e) { - return false; - } +Object.defineProperties(arr, { + "0": { + set: set_func } -runTestCase(testcase); +}); +verifyWritable(arr, "0", "setVerifyHelpProp"); + +verifyNotEnumerable(arr, "0"); + +verifyNotConfigurable(arr, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-223.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-223.js index 0c587ae74bf0a67abf069ab9c39a268c08e3d15f..1dd76d12c99fc1ae292027f525e2ad8ab1db94b3 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-223.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-223.js @@ -10,27 +10,25 @@ description: > Object.defineProperties - 'O' is an Array, 'P' is an array index property that already exists on 'O' with [[Enumerable]] true, the [[Enumerable]] field of 'desc' is true (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; - - Object.defineProperty(arr, "0", { - enumerable: true - }); - - try { - Object.defineProperties(arr, { - "0": { - enumerable: true - } - }); - return dataPropertyAttributesAreCorrect(arr, "0", undefined, false, true, false); - } catch (e) { - return false; - } +var arr = []; + +Object.defineProperty(arr, "0", { + enumerable: true +}); + +Object.defineProperties(arr, { + "0": { + enumerable: true } -runTestCase(testcase); +}); +verifyEqualTo(arr, "0", undefined); + +verifyNotWritable(arr, "0"); + +verifyEnumerable(arr, "0"); + +verifyNotConfigurable(arr, "0"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-224.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-224.js index 62274038e5b1b0e03a5a6486aa4632ecb65e8306..6ce350a6f28881a17ac1c9dd024605f22c4e3bca 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-224.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-224.js @@ -10,28 +10,26 @@ description: > Object.defineProperties - 'O' is an Array, 'P' is an array index property that already exists on 'O' with [[Enumerable]] true, the [[Enumerable]] field of 'desc' is false (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; - - Object.defineProperty(arr, "0", { - enumerable: true, - configurable: true - }); - - try { - Object.defineProperties(arr, { - "0": { - enumerable: false - } - }); - return dataPropertyAttributesAreCorrect(arr, "0", undefined, false, false, true); - } catch (e) { - return false; - } +var arr = []; + +Object.defineProperty(arr, "0", { + enumerable: true, + configurable: true +}); + +Object.defineProperties(arr, { + "0": { + enumerable: false } -runTestCase(testcase); +}); +verifyEqualTo(arr, "0", undefined); + +verifyNotWritable(arr, "0"); + +verifyNotEnumerable(arr, "0"); + +verifyConfigurable(arr, "0"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-225.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-225.js index a7f972595e291afec990dada2cea06052cc7c57f..dbdd70f664f4ad9c63dc977e83ad59964793d767 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-225.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-225.js @@ -10,27 +10,25 @@ description: > Object.defineProperties - 'O' is an Array, 'P' is an array index property that already exists on 'O' with [[Configurable]] true, the [[Configurable]] field of 'desc' is true (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; - - Object.defineProperty(arr, "0", { - configurable: true - }); - - try { - Object.defineProperties(arr, { - "0": { - configurable: true - } - }); - return dataPropertyAttributesAreCorrect(arr, "0", undefined, false, false, true); - } catch (e) { - return false; - } +var arr = []; + +Object.defineProperty(arr, "0", { + configurable: true +}); + +Object.defineProperties(arr, { + "0": { + configurable: true } -runTestCase(testcase); +}); +verifyEqualTo(arr, "0", undefined); + +verifyNotWritable(arr, "0"); + +verifyNotEnumerable(arr, "0"); + +verifyConfigurable(arr, "0"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-226.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-226.js index f7d174a536a3a6083df69c22567708fe976268ba..b21715c926a867a14cbbd4f0c0eae8c13c8a82a4 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-226.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-226.js @@ -10,27 +10,25 @@ description: > Object.defineProperties - 'O' is an Array, 'P' is an array index property that already exists on 'O' with [[Configurable]] true, the [[Configurable]] field of 'desc' is false (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; - - Object.defineProperty(arr, "0", { - configurable: true - }); - - try { - Object.defineProperties(arr, { - "0": { - configurable: false - } - }); - return dataPropertyAttributesAreCorrect(arr, "0", undefined, false, false, false); - } catch (e) { - return false; - } +var arr = []; + +Object.defineProperty(arr, "0", { + configurable: true +}); + +Object.defineProperties(arr, { + "0": { + configurable: false } -runTestCase(testcase); +}); +verifyEqualTo(arr, "0", undefined); + +verifyNotWritable(arr, "0"); + +verifyNotEnumerable(arr, "0"); + +verifyNotConfigurable(arr, "0"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-227.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-227.js index b89ee1eb869c0c6cac879fb1d5e7014698b1623c..21ee69da4be9f58922861b0ed64eb716ec819229 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-227.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-227.js @@ -11,30 +11,35 @@ description: > property, TypeError is thrown if the [[Configurable]] attribute value of 'P' is false and the [[Configurable]] field of 'desc' is true (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var arr = []; - - Object.defineProperty(arr, "1", { - value: 3, - configurable: false - }); - - try { - Object.defineProperties(arr, { - "1": { - value: 13, - configurable: true - } - }); - return false; - } catch (ex) { - return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", 3, false, false, false); + +var arr = []; + +Object.defineProperty(arr, "1", { + value: 3, + configurable: false +}); + +try { + Object.defineProperties(arr, { + "1": { + value: 13, + configurable: true } + }); +} catch (e) { + verifyEqualTo(arr, "1", 3); + + verifyNotWritable(arr, "1"); + + verifyNotEnumerable(arr, "1"); + + verifyNotConfigurable(arr, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-228.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-228.js index 2e81f368d9da12a91074dab0fe4e6c97b70df669..4149ef4e9756a3200ee1bbdf135488706a0edb27 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-228.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-228.js @@ -12,32 +12,38 @@ description: > value of 'P' is false, and [[Enumerable]] of 'desc' is present and its value is different from the [[Enumerable]] attribute value of 'P' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - Object.defineProperty(arr, "1", { - value: 3, - configurable: false, - enumerable: false +Object.defineProperty(arr, "1", { + value: 3, + configurable: false, + enumerable: false - }); +}); - try { - Object.defineProperties(arr, { - "1": { - value: 13, - enumerable: true - } - }); - return false; - } catch (ex) { - return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", 3, false, false, false); +try { + Object.defineProperties(arr, { + "1": { + value: 13, + enumerable: true } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arr, "1", 3); + + verifyNotWritable(arr, "1"); + + verifyNotEnumerable(arr, "1"); + + verifyNotConfigurable(arr, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-229.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-229.js index b58d7049e048fa1717e64efdfc9e169346e23aea..2a6e9be262ec5eede98994325d7c883b06c5c970 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-229.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-229.js @@ -11,35 +11,39 @@ description: > property, TypeError is thrown if 'P' is accessor property, and 'desc' is data descriptor, and the [[Configurable]] attribute value of 'P' is false (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - function set_fun(value) { - arr.setVerifyHelpProp = value; +function set_fun(value) { + arr.setVerifyHelpProp = value; +} + +Object.defineProperty(arr, "1", { + set: set_fun, + configurable: false + +}); + +try { + Object.defineProperties(arr, { + "1": { + value: 13 } + }); + $ERROR("Expected an exception."); - Object.defineProperty(arr, "1", { - set: set_fun, - configurable: false +} catch (e) { + verifyWritable(arr, "1", "setVerifyHelpProp"); - }); + verifyNotEnumerable(arr, "1"); - try { - Object.defineProperties(arr, { - "1": { - value: 13 - } - }); - return false; + verifyNotConfigurable(arr, "1"); - } catch (ex) { - return (ex instanceof TypeError) && accessorPropertyAttributesAreCorrect(arr, "1", undefined, set_fun, "setVerifyHelpProp", false, false); - } + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-230.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-230.js index d242800b93ced9012e20c1b309ba05180b76d5f8..be60a5903102005c94ca1e989dacaa190b77f8d9 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-230.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-230.js @@ -11,29 +11,35 @@ description: > property, TypeError is thrown if 'P' is data property, and'desc' is accessor descriptor, and the [[Configurable]] attribute value of 'P' is false (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - Object.defineProperty(arr, "1", { - value: 3, - configurable: false - }); +Object.defineProperty(arr, "1", { + value: 3, + configurable: false +}); - try { - Object.defineProperties(arr, { - "1": { - set: function () { } - } - }); - return false; - } catch (ex) { - return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", 3, false, false, false); +try { + Object.defineProperties(arr, { + "1": { + set: function () { } } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arr, "1", 3); + + verifyNotWritable(arr, "1"); + + verifyNotEnumerable(arr, "1"); + + verifyNotConfigurable(arr, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-231.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-231.js index d96779415dd7ca6635a74447de1789caa6c36f76..09f1d053dbfd0bea7e689565cb27a10956d5610f 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-231.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-231.js @@ -12,25 +12,24 @@ description: > and the [[Configurable]] attribute value of 'P' is true, test 'P' is converted from data property to accessor property (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; - arr[1] = 3; // default value of attributes: writable: true, configurable: true, enumerable: true +var arr = []; +arr[1] = 3; // default value of attributes: writable: true, configurable: true, enumerable: true - function set_fun(value) { - arr.setVerifyHelpProp = value; - } +function set_fun(value) { + arr.setVerifyHelpProp = value; +} - Object.defineProperties(arr, { - "1": { - set: set_fun - } - }); - - return accessorPropertyAttributesAreCorrect(arr, "1", undefined, set_fun, "setVerifyHelpProp", true, true); +Object.defineProperties(arr, { + "1": { + set: set_fun } -runTestCase(testcase); +}); + +verifyWritable(arr, "1", "setVerifyHelpProp"); + +verifyEnumerable(arr, "1"); + +verifyConfigurable(arr, "1"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-232.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-232.js index f60491fb73a42a0e4a1f4c2e341a464cb48a6464..94b01f535378d4bb10701bbb92a966df67ffbca7 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-232.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-232.js @@ -12,28 +12,29 @@ description: > and the [[Configurable]] attribute value of 'P' is true, test 'P' is converted from accessor property to data property (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - Object.defineProperty(arr, "1", { - get: function () { - return 3; - }, - configurable: true +Object.defineProperty(arr, "1", { + get: function () { + return 3; + }, + configurable: true - }); +}); - Object.defineProperties(arr, { - "1": { - value: 12 - } - }); - - return dataPropertyAttributesAreCorrect(arr, "1", 12, false, false, true); +Object.defineProperties(arr, { + "1": { + value: 12 } -runTestCase(testcase); +}); + +verifyEqualTo(arr, "1", 12); + +verifyNotWritable(arr, "1"); + +verifyNotEnumerable(arr, "1"); + +verifyConfigurable(arr, "1"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-233.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-233.js index f546ecea13d222afd6067d3a0d9eba3185d16eac..3730f47db473199404bd93ffeb8496bb9fd6525e 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-233.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-233.js @@ -13,30 +13,36 @@ description: > TypeError is thrown if the [[Writable]] attribute value of 'P' is false and the [[Writable]] field of 'desc' is true. (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - Object.defineProperty(arr, "1", { - configurable: false, - writable: false +Object.defineProperty(arr, "1", { + configurable: false, + writable: false - }); +}); - try { - Object.defineProperties(arr, { - "1": { - writable: true - } - }); - return false; - } catch (ex) { - return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", undefined, false, false, false); +try { + Object.defineProperties(arr, { + "1": { + writable: true } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arr, "1", undefined); + + verifyNotWritable(arr, "1"); + + verifyNotEnumerable(arr, "1"); + + verifyNotConfigurable(arr, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-234.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-234.js index 5adafc9cc1ab5bcc82a7f5a6e63937a278f74660..272f82d8a8a1d92067f99cb3b26ecdb86c33de88 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-234.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-234.js @@ -14,31 +14,37 @@ description: > false, and the type of the [[Value]] field of 'desc' is different from the type of the [[Value]] attribute value of 'P' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - Object.defineProperty(arr, "1", { - value: 3, - configurable: false, - writable: false - }); +Object.defineProperty(arr, "1", { + value: 3, + configurable: false, + writable: false +}); - try { +try { - Object.defineProperties(arr, { - "1": { - value: "abc" - } - }); - return false; - } catch (ex) { - return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", 3, false, false, false); + Object.defineProperties(arr, { + "1": { + value: "abc" } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arr, "1", 3); + + verifyNotWritable(arr, "1"); + + verifyNotEnumerable(arr, "1"); + + verifyNotConfigurable(arr, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-235.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-235.js index 8c915439acd667c03e814abbd214560346bb7a17..f9efe097133c25c958aa4906015705bf57fe5293 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-235.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-235.js @@ -12,27 +12,33 @@ description: > data property with [[Configurable]], [[Writable]] false, 'desc' is data descriptor, [[Value]] field of 'desc' is +0, and the [[Value]] attribute value of 'P' is -0 (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; - - Object.defineProperty(arr, "1", { - value: +0 - }); - - try { - Object.defineProperties(arr, { - "1": { - value: -0 - } - }); - return false; - } catch (ex) { - return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", +0, false, false, false); +var arr = []; + +Object.defineProperty(arr, "1", { + value: +0 +}); + +try { + Object.defineProperties(arr, { + "1": { + value: -0 } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arr, "1", +0); + + verifyNotWritable(arr, "1"); + + verifyNotEnumerable(arr, "1"); + + verifyNotConfigurable(arr, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-236.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-236.js index 6b8a8ad32aff00cd1841130ac96750108b95c21e..2b7949e7ae091231e88dee884adcf67fa7241e52 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-236.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-236.js @@ -12,28 +12,34 @@ description: > data property with [[Configurable]], [[Writable]] false, 'desc' is data descriptor, [[Value]] field of 'desc' is -0, and the [[Value]] attribute value of 'P' is +0 (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - Object.defineProperty(arr, "1", { - value: -0 - }); +Object.defineProperty(arr, "1", { + value: -0 +}); - try { - Object.defineProperties(arr, { - "1": { - value: +0 - } - }); - - return false; - } catch (ex) { - return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", -0, false, false, false); +try { + Object.defineProperties(arr, { + "1": { + value: +0 } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arr, "1", -0); + + verifyNotWritable(arr, "1"); + + verifyNotEnumerable(arr, "1"); + + verifyNotConfigurable(arr, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-237.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-237.js index ac6fe0f2fca9eb8e1fc8866962b5a89e23d16625..748d0f2a63afd1d95792b623ccd011361335b854 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-237.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-237.js @@ -13,27 +13,34 @@ description: > is data descriptor, [[Value]] field of 'desc' and the [[Value]] attribute value of 'P' are two numbers with different vaule (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; - - Object.defineProperty(arr, "1", { - value: 12 - }); - - try { - Object.defineProperties(arr, { - "1": { - value: 36 - } - }); - return false; - } catch (ex) { - return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", 12, false, false, false); + +var arr = []; + +Object.defineProperty(arr, "1", { + value: 12 +}); + +try { + Object.defineProperties(arr, { + "1": { + value: 36 } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arr, "1", 12); + + verifyNotWritable(arr, "1"); + + verifyNotEnumerable(arr, "1"); + + verifyNotConfigurable(arr, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-238.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-238.js index 91573862c22db485331ed43c1f5af13980cb7dbd..d35c9dc1bdf1be826d788db6eb3c158210f2d343 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-238.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-238.js @@ -13,27 +13,33 @@ description: > is data descriptor, [[Value]] field of 'desc' and the [[Value]] attribute value of 'P' are two strings with different values (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; - - Object.defineProperty(arr, "1", { - value: "abcd" - }); - - try { - Object.defineProperties(arr, { - "1": { - value: "efgh" - } - }); - return false; - } catch (ex) { - return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", "abcd", false, false, false); +var arr = []; + +Object.defineProperty(arr, "1", { + value: "abcd" +}); + +try { + Object.defineProperties(arr, { + "1": { + value: "efgh" } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arr, "1", "abcd"); + + verifyNotWritable(arr, "1"); + + verifyNotEnumerable(arr, "1"); + + verifyNotConfigurable(arr, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-239.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-239.js index ae155c7e44eb50e372b25afa2d06701f68df87c2..59747d500be0a1882bc0375c691b62dcf19c57e9 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-239.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-239.js @@ -13,28 +13,34 @@ description: > is data descriptor, [[Value]] field of 'desc' and the [[Value]] attribute value of 'P' are two booleans with different values (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - Object.defineProperty(arr, "1", { - value: true - }); +Object.defineProperty(arr, "1", { + value: true +}); - try { - Object.defineProperties(arr, { - "1": { - value: false - } - }); - - return false; - } catch (ex) { - return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", true, false, false, false); +try { + Object.defineProperties(arr, { + "1": { + value: false } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arr, "1", true); + + verifyNotWritable(arr, "1"); + + verifyNotEnumerable(arr, "1"); + + verifyNotConfigurable(arr, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-24.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-24.js index c7272405d300d87d2fb442dc695df354a745d753..4867fb47550ef535b9d08dd20d85cc69f5f7a343 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-24.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-24.js @@ -10,30 +10,29 @@ description: > Object.defineProperties - 'O' is the global object which implements its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 ) -includes: - - runTestCase.js - - fnGlobalObject.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js, fnGlobalObject.js] ---*/ -function testcase() { - - try { - Object.defineProperty(fnGlobalObject(), "prop", { - value: 11, - writable: true, - enumerable: true, - configurable: true - }); - - Object.defineProperties(fnGlobalObject(), { - prop: { - value: 12 - } - }); - return dataPropertyAttributesAreCorrect(fnGlobalObject(), "prop", 12, true, true, true); - } finally { - delete fnGlobalObject().prop; - } + +Object.defineProperty(fnGlobalObject(), "prop", { +value: 11, +writable: true, +enumerable: true, +configurable: true +}); + +Object.defineProperties(fnGlobalObject(), { + prop: { + value: 12 } -runTestCase(testcase); +}); + +verifyEqualTo(fnGlobalObject(), "prop", 12); + +verifyWritable(fnGlobalObject(), "prop"); + +verifyEnumerable(fnGlobalObject(), "prop"); + +verifyConfigurable(fnGlobalObject(), "prop"); + +delete fnGlobalObject().prop; diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-240.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-240.js index ca06eceb26aef3a1ea3c04919a7e20a5ce22975d..42d173b7ae49e052d66e96e1f3e695a90c7fd175 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-240.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-240.js @@ -13,30 +13,36 @@ description: > is data descriptor, [[Value]] field of 'desc' and the [[Value]] attribute value of 'P' are two objects which refer to the different objects (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; - var obj1 = { value: 12 }; - var obj2 = { value: 36 }; - - Object.defineProperty(arr, "1", { - value: obj1 - }); - - try { - Object.defineProperties(arr, { - "1": { - value: obj2 - } - }); - - return false; - } catch (ex) { - return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", obj1, false, false, false); +var arr = []; +var obj1 = { value: 12 }; +var obj2 = { value: 36 }; + +Object.defineProperty(arr, "1", { + value: obj1 +}); + +try { + Object.defineProperties(arr, { + "1": { + value: obj2 } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arr, "1", obj1); + + verifyNotWritable(arr, "1"); + + verifyNotEnumerable(arr, "1"); + + verifyNotConfigurable(arr, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-241.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-241.js index 2b013a35c292fc13941313d77d685637a9e82466..1f393c18c506bef504ac971e3a8a08d6d8f8a197 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-241.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-241.js @@ -14,31 +14,35 @@ description: > [[Set]] field of 'desc' and the [[Set]] attribute value of 'P' are two objects which refer to the different objects (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - function set_fun(value) { - arr.setVerifyHelpProp = value; - } - Object.defineProperty(arr, "1", { - set: set_fun - }); - - try { - Object.defineProperties(arr, { - "1": { - set: function () { } - } - }); - - return false; - } catch (ex) { - return (ex instanceof TypeError) && accessorPropertyAttributesAreCorrect(arr, "1", undefined, set_fun, "setVerifyHelpProp", false, false); +function set_fun(value) { + arr.setVerifyHelpProp = value; +} +Object.defineProperty(arr, "1", { + set: set_fun +}); + +try { + Object.defineProperties(arr, { + "1": { + set: function () { } } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyWritable(arr, "1", "setVerifyHelpProp"); + + verifyNotEnumerable(arr, "1"); + + verifyNotConfigurable(arr, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-242.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-242.js index b3bf558257c97b22ea082248bd2a768838fc3d5a..c34f8fd239bdf9b63377c82f3b2afbf3da03413b 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-242.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-242.js @@ -13,31 +13,35 @@ description: > descriptor, the [[Set]] field of 'desc' is present, and the [[Set]] field of 'desc' is an object and the [[Set]] attribute value of 'P' is undefined (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - function set_fun(value) { - arr.setVerifyHelpProp = value; - } - Object.defineProperty(arr, "1", { - set: set_fun - }); - - try { - Object.defineProperties(arr, { - "1": { - set: undefined - } - }); - - return false; - } catch (ex) { - return (ex instanceof TypeError) && accessorPropertyAttributesAreCorrect(arr, "1", undefined, set_fun, "setVerifyHelpProp", false, false); +function set_fun(value) { + arr.setVerifyHelpProp = value; +} +Object.defineProperty(arr, "1", { + set: set_fun +}); + +try { + Object.defineProperties(arr, { + "1": { + set: undefined } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyWritable(arr, "1", "setVerifyHelpProp"); + + verifyNotEnumerable(arr, "1"); + + verifyNotConfigurable(arr, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-243.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-243.js index 61cef225cae2bab613a50ce4054ef279ab2eba7b..e04d6537e4dfef78bb82a16f8e5922f2d17cd715 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-243.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-243.js @@ -13,24 +13,21 @@ description: > accessor descriptor, the [[Set]] field of 'desc' is present, and the [[Set]] field of 'desc' and the [[Set]] attribute value of 'P' are undefined (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - Object.defineProperty(arr, "1", { - set: undefined - }); +Object.defineProperty(arr, "1", { + set: undefined +}); - Object.defineProperties(arr, { - "1": { - set: undefined - } - }); - - return accessorPropertyAttributesAreCorrect(arr, "1", undefined, undefined, undefined, false, false); +Object.defineProperties(arr, { + "1": { + set: undefined } -runTestCase(testcase); +}); + +verifyNotEnumerable(arr, "1"); + +verifyNotConfigurable(arr, "1"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-244.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-244.js index 9737323fc68fb12eeca8a9b21b1bbaf0832061a0..607b36218cb8457faedac72fd792017579a418f9 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-244.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-244.js @@ -14,33 +14,37 @@ description: > [[Get]] field of 'desc' and the [[Get]] attribute value of 'P' are two objects which refer to the different objects (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - function get_fun() { - return 36; - } - Object.defineProperty(arr, "1", { - get: get_fun - }); - - try { - Object.defineProperties(arr, { - "1": { - get: function () { - return 12; - } - } - }); - - return false; - } catch (ex) { - return (ex instanceof TypeError) && accessorPropertyAttributesAreCorrect(arr, "1", get_fun, undefined, undefined, false, false); +function get_fun() { + return 36; +} +Object.defineProperty(arr, "1", { + get: get_fun +}); + +try { + Object.defineProperties(arr, { + "1": { + get: function () { + return 12; + } } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arr, "1", get_fun()); + + verifyNotEnumerable(arr, "1"); + + verifyNotConfigurable(arr, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-245.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-245.js index 79e12c982c39339be3104ca2392deeb979ed3a64..abf521267ca3e661487fc490fd6315a3ce053c16 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-245.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-245.js @@ -13,30 +13,34 @@ description: > descriptor, the [[Get]] field of 'desc' is present, and the [[Get]] field of 'desc' is an object and the [[Get]] attribute value of 'P' is undefined (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - function get_fun() { - return 36; - } - Object.defineProperty(arr, "1", { - get: get_fun - }); - - try { - Object.defineProperties(arr, { - "1": { - get: undefined - } - }); - return false; - } catch (ex) { - return (ex instanceof TypeError) && accessorPropertyAttributesAreCorrect(arr, "1", get_fun, undefined, undefined, false, false); +function get_fun() { + return 36; +} +Object.defineProperty(arr, "1", { + get: get_fun +}); + +try { + Object.defineProperties(arr, { + "1": { + get: undefined } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arr, "1", get_fun()); + + verifyNotEnumerable(arr, "1"); + + verifyNotConfigurable(arr, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-246.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-246.js index 7b81c8297545d43ec6e681cffe8d13c016199044..9f76571b1f4f218d92e636d7061b7c177b66d62e 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-246.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-246.js @@ -14,28 +14,22 @@ description: > field of 'desc' is present, and the [[Get]] field of 'desc' and the [[Get]] attribute value of 'P' are undefined (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - Object.defineProperty(arr, "1", { - get: undefined - }); +Object.defineProperty(arr, "1", { + get: undefined +}); - try { - Object.defineProperties(arr, { - "1": { - get: undefined - } - }); - - return accessorPropertyAttributesAreCorrect(arr, "1", undefined, undefined, undefined, false, false); - } catch (ex) { - return false; - } +Object.defineProperties(arr, { + "1": { + get: undefined } -runTestCase(testcase); +}); + +verifyNotEnumerable(arr, "1"); + +verifyNotConfigurable(arr, "1"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-247.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-247.js index 7691b793846cf21a35c3c664106165142ab71f51..972a6ba753effdbd703dfefd7f0365706f4d0cc9 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-247.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-247.js @@ -11,24 +11,22 @@ description: > named property that already exists on 'O' is data property and 'desc' is data descriptor, test updating the [[Value]] attribute value of 'P' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = [12]; +var arr = [12]; - try { - Object.defineProperties(arr, { - "0": { - value: 36 - } - }); - return dataPropertyAttributesAreCorrect(arr, "0", 36, true, true, true); - } catch (ex) { - return false; - } +Object.defineProperties(arr, { + "0": { + value: 36 } -runTestCase(testcase); +}); +verifyEqualTo(arr, "0", 36); + +verifyWritable(arr, "0"); + +verifyEnumerable(arr, "0"); + +verifyConfigurable(arr, "0"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-248.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-248.js index a8aaac93f672ff1992c551b67009ef776b2a019c..4f14d5a1b5a80e96c6f273dbede530526f2344e2 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-248.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-248.js @@ -11,24 +11,21 @@ description: > named property that already exists on 'O' is data property and 'desc' is data descriptor, test setting the [[Value]] attribute value of 'P' as undefined (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = [12]; +var arr = [12]; - try { - Object.defineProperties(arr, { - "0": { - value: undefined - } - }); - return dataPropertyAttributesAreCorrect(arr, "0", undefined, true, true, true); - } catch (ex) { - return false; - } +Object.defineProperties(arr, { + "0": { + value: undefined } -runTestCase(testcase); +}); +verifyEqualTo(arr, "0", undefined); + +verifyWritable(arr, "0"); + +verifyEnumerable(arr, "0"); + +verifyConfigurable(arr, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-249.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-249.js index e79096ad81d74f5b55b0fba6c820fc1ec59b6884..161ba162cea4f465ac466cccfb1970e5f9c70c0c 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-249.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-249.js @@ -11,24 +11,22 @@ description: > named property that already exists on 'O' is data property and 'desc' is data descriptor, test setting the [[Value]] attribute value of 'P' from undefined to normal value (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = [undefined]; +var arr = [undefined]; - try { - Object.defineProperties(arr, { - "0": { - value: 12 - } - }); - return dataPropertyAttributesAreCorrect(arr, "0", 12, true, true, true); - } catch (ex) { - return false; - } +Object.defineProperties(arr, { + "0": { + value: 12 } -runTestCase(testcase); +}); +verifyEqualTo(arr, "0", 12); + +verifyWritable(arr, "0"); + +verifyEnumerable(arr, "0"); + +verifyConfigurable(arr, "0"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-250.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-250.js index b3bf8147baa726be13a7ba5ab42208e301b53439..53b877972323b3010682ed2885f03a558f0f0cef 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-250.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-250.js @@ -11,24 +11,22 @@ description: > named property that already exists on 'O' is data property and 'desc' is data descriptor, test updating the [[Writable]] attribute value of 'P' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = [100]; +var arr = [100]; - try { - Object.defineProperties(arr, { - "0": { - writable: false - } - }); - return dataPropertyAttributesAreCorrect(arr, "0", 100, false, true, true); - } catch (ex) { - return false; - } +Object.defineProperties(arr, { + "0": { + writable: false } -runTestCase(testcase); +}); +verifyEqualTo(arr, "0", 100); + +verifyNotWritable(arr, "0"); + +verifyEnumerable(arr, "0"); + +verifyConfigurable(arr, "0"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-251.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-251.js index 93dea5d521f01a4d07a5d9251e768f3fbfe17a06..e6e415ea68ad83f397e9f028c6d29e3ab20b7983 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-251.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-251.js @@ -11,24 +11,21 @@ description: > named property that already exists on 'O' is data property and 'desc' is data descriptor, test updating the [[Enumerable]] attribute value of 'P' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = [12]; +var arr = [12]; - try { - Object.defineProperties(arr, { - "0": { - enumerable: false - } - }); - return dataPropertyAttributesAreCorrect(arr, "0", 12, true, false, true); - } catch (ex) { - return false; - } +Object.defineProperties(arr, { + "0": { + enumerable: false } -runTestCase(testcase); +}); +verifyEqualTo(arr, "0", 12); + +verifyWritable(arr, "0"); + +verifyNotEnumerable(arr, "0"); + +verifyConfigurable(arr, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-252.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-252.js index e9ae90c36cfa86ae623711d3eebd45619c0adbf2..9e1bd03e20912585cac2f5f2a98a8d4f0934a220 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-252.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-252.js @@ -11,24 +11,22 @@ description: > named property that already exists on 'O' is data property and 'desc' is data descriptor, test updating the [[Configurable]] attribute value of 'P' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = [12]; +var arr = [12]; - try { - Object.defineProperties(arr, { - "0": { - configurable: false - } - }); - return dataPropertyAttributesAreCorrect(arr, "0", 12, true, true, false); - } catch (ex) { - return false; - } +Object.defineProperties(arr, { + "0": { + configurable: false } -runTestCase(testcase); +}); +verifyEqualTo(arr, "0", 12); + +verifyWritable(arr, "0"); + +verifyEnumerable(arr, "0"); + +verifyNotConfigurable(arr, "0"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-253.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-253.js index bb7079b9c2672d9bc0909e2a71598968c633c56d..6b217ec9d08635f95eb1e7383ddadd2dc7ab4bc1 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-253.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-253.js @@ -11,26 +11,24 @@ description: > named property that already exists on 'O' is data property and 'desc' is data descriptor, test updating multiple attribute values of 'P' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var arr = [12]; - - try { - Object.defineProperties(arr, { - "0": { - value: 36, - writable: false, - configurable: false - } - }); - return dataPropertyAttributesAreCorrect(arr, "0", 36, false, true, false); - } catch (ex) { - return false; - } + +var arr = [12]; + +Object.defineProperties(arr, { + "0": { + value: 36, + writable: false, + configurable: false } -runTestCase(testcase); +}); +verifyEqualTo(arr, "0", 36); + +verifyNotWritable(arr, "0"); + +verifyEnumerable(arr, "0"); + +verifyNotConfigurable(arr, "0"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-254.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-254.js index 37b3fd8f399658705d2d26b3fd0b576360b0b2a9..3b158e5d7958a7ecb68e39c344dea0813cdb5f5c 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-254.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-254.js @@ -11,31 +11,30 @@ description: > named property that already exists on 'O' is accessor property and 'desc' is accessor descriptor, test updating the [[Get]] attribute value of 'P' with different getter function (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - function get_fun() { - return 36; - } +function get_fun() { + return 36; +} - Object.defineProperty(arr, "0", { - get: function () { - return 12; - }, - configurable: true - }); +Object.defineProperty(arr, "0", { + get: function () { + return 12; + }, + configurable: true +}); - Object.defineProperties(arr, { - "0": { - get: get_fun - } - }); - return accessorPropertyAttributesAreCorrect(arr, "0", get_fun, undefined, undefined, false, true); +Object.defineProperties(arr, { + "0": { + get: get_fun } -runTestCase(testcase); +}); +verifyEqualTo(arr, "0", get_fun()); + +verifyNotEnumerable(arr, "0"); + +verifyConfigurable(arr, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-255.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-255.js index 1dc6b1551bcee40679e852234b0def0f1a73e8f7..77c7f5cca02c5627d00adf877a09ce919901c951 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-255.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-255.js @@ -11,27 +11,24 @@ description: > named property that already exists on 'O' is accessor property and 'desc' is accessor descriptor, test setting the [[Get]] attribute value of 'P' as undefined (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - Object.defineProperty(arr, "0", { - get: function () { - return 12; - }, - configurable: true - }); +Object.defineProperty(arr, "0", { + get: function () { + return 12; + }, + configurable: true +}); - Object.defineProperties(arr, { - "0": { - get: undefined - } - }); - return accessorPropertyAttributesAreCorrect(arr, "0", undefined, undefined, undefined, false, true); +Object.defineProperties(arr, { + "0": { + get: undefined } -runTestCase(testcase); +}); +verifyNotEnumerable(arr, "0"); + +verifyConfigurable(arr, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-256.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-256.js index b81817a2351652ed0cf9193fa2fa731192db08bd..255d4b12ce5bd7834d0ae132bed66b999a921d52 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-256.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-256.js @@ -11,29 +11,28 @@ description: > named property that already exists on 'O' is accessor property and 'desc' is accessor descriptor, test updating the [[Get]] attribute value of 'P' from undefined to function (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - function get_fun() { - return 36; - } +function get_fun() { + return 36; +} - Object.defineProperty(arr, "0", { - get: undefined, - configurable: true - }); +Object.defineProperty(arr, "0", { + get: undefined, + configurable: true +}); - Object.defineProperties(arr, { - "0": { - get: get_fun - } - }); - return accessorPropertyAttributesAreCorrect(arr, "0", get_fun, undefined, undefined, false, true); +Object.defineProperties(arr, { + "0": { + get: get_fun } -runTestCase(testcase); +}); +verifyEqualTo(arr, "0", get_fun()); + +verifyNotEnumerable(arr, "0"); + +verifyConfigurable(arr, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-257.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-257.js index eee053f641c8b9b13db6b87e982205751af38007..d311bb83b2c4ed398f3849f5da5e469ac2f25c47 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-257.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-257.js @@ -11,33 +11,29 @@ description: > named property that already exists on 'O' is accessor property and 'desc' is accessor descriptor, test updating the [[Set]] attribute value of 'P' with different getter function (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var arr = []; - - function set_fun(value) { - arr.setVerifyHelpProp = value; - } - - Object.defineProperty(arr, "0", { - set: function () { }, - configurable: true - }); - - try { - Object.defineProperties(arr, { - "0": { - set: set_fun - } - }); - return accessorPropertyAttributesAreCorrect(arr, "0", undefined, set_fun, "setVerifyHelpProp", false, true); - } catch (ex) { - return false; - } + +var arr = []; + +function set_fun(value) { + arr.setVerifyHelpProp = value; +} + +Object.defineProperty(arr, "0", { + set: function () { }, + configurable: true +}); + +Object.defineProperties(arr, { + "0": { + set: set_fun } -runTestCase(testcase); +}); +verifyWritable(arr, "0", "setVerifyHelpProp"); + +verifyNotEnumerable(arr, "0"); + +verifyConfigurable(arr, "0"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-258.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-258.js index 006ca0621727e9815e7dce1f804fe9fa01d15ac9..6bad477779e27fa61a7a679fe5c79ebd64a7c623 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-258.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-258.js @@ -11,25 +11,22 @@ description: > named property that already exists on 'O' is accessor property and 'desc' is accessor descriptor, test setting the [[Set]] attribute value of 'P' as undefined (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - Object.defineProperty(arr, "0", { - set: function () { }, - configurable: true - }); +Object.defineProperty(arr, "0", { + set: function () { }, + configurable: true +}); - Object.defineProperties(arr, { - "0": { - set: undefined - } - }); - return accessorPropertyAttributesAreCorrect(arr, "0", undefined, undefined, undefined, false, true); +Object.defineProperties(arr, { + "0": { + set: undefined } -runTestCase(testcase); +}); +verifyNotEnumerable(arr, "0"); + +verifyConfigurable(arr, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-259.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-259.js index eaa40a6eb6ee336149f34c7e1afc08a7b6356271..a444eadc9d65bf930f98b998de083b564c15e421 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-259.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-259.js @@ -11,32 +11,27 @@ description: > named property that already exists on 'O' is accessor property and 'desc' is accessor descriptor, test updating the [[Set]] attribute value of 'P' from undefined to function (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - function set_fun(value) { - arr.setVerifyHelpProp = value; - } - Object.defineProperty(arr, "0", { - set: undefined, - configurable: true - }); +function set_fun(value) { + arr.setVerifyHelpProp = value; +} +Object.defineProperty(arr, "0", { + set: undefined, + configurable: true +}); - try { - Object.defineProperties(arr, { - "0": { - set: set_fun - } - }); - return accessorPropertyAttributesAreCorrect(arr, "0", undefined, set_fun, "setVerifyHelpProp", false, true); - } catch (ex) { - return false; - } +Object.defineProperties(arr, { + "0": { + set: set_fun } -runTestCase(testcase); +}); +verifyWritable(arr, "0", "setVerifyHelpProp"); + +verifyNotEnumerable(arr, "0"); + +verifyConfigurable(arr, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-260.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-260.js index 867cb5c62cab7388f511878336bd75092051d649..2bdb0764a11d7bf8d29c08e3905e51eb573a1068 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-260.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-260.js @@ -11,33 +11,28 @@ description: > named property that already exists on 'O' is accessor property and 'desc' is accessor descriptor, test updating the [[Enumerable]] attribute value of 'P' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - function set_fun(value) { - arr.setVerifyHelpProp = value; - } - Object.defineProperty(arr, "0", { - set: set_fun, - enumerable: true, - configurable: true - }); +function set_fun(value) { + arr.setVerifyHelpProp = value; +} +Object.defineProperty(arr, "0", { + set: set_fun, + enumerable: true, + configurable: true +}); - try { - Object.defineProperties(arr, { - "0": { - enumerable: false - } - }); - return accessorPropertyAttributesAreCorrect(arr, "0", undefined, set_fun, "setVerifyHelpProp", false, true); - } catch (ex) { - return false; - } +Object.defineProperties(arr, { + "0": { + enumerable: false } -runTestCase(testcase); +}); +verifyWritable(arr, "0", "setVerifyHelpProp"); + +verifyNotEnumerable(arr, "0"); + +verifyConfigurable(arr, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-261.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-261.js index 0098303752737473ccb605e5c58bbe7de77f5761..4f40f130ff36bfdf54c5cca5f09e247aedfd11a4 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-261.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-261.js @@ -11,32 +11,28 @@ description: > named property that already exists on 'O' is accessor property and 'desc' is accessor descriptor, test updating the [[Configurable]] attribute value of 'P' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var arr = []; - - function set_fun(value) { - arr.setVerifyHelpProp = value; - } - Object.defineProperty(arr, "0", { - set: set_fun, - configurable: true - }); - - try { - Object.defineProperties(arr, { - "0": { - configurable: false - } - }); - return accessorPropertyAttributesAreCorrect(arr, "0", undefined, set_fun, "setVerifyHelpProp", false, false); - } catch (ex) { - return false; - } + +var arr = []; + +function set_fun(value) { + arr.setVerifyHelpProp = value; +} +Object.defineProperty(arr, "0", { + set: set_fun, + configurable: true +}); + +Object.defineProperties(arr, { + "0": { + configurable: false } -runTestCase(testcase); +}); +verifyWritable(arr, "0", "setVerifyHelpProp"); + +verifyNotEnumerable(arr, "0"); + +verifyNotConfigurable(arr, "0"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-262.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-262.js index cf4f32fa2a0341c962b1fd105fbc96871a754a26..915590c2734b50d0c4f16fd16e9e11d9964d9472 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-262.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-262.js @@ -11,41 +11,38 @@ description: > named property that already exists on 'O' is accessor property and 'desc' is accessor descriptor, test updating multiple attribute values of 'P' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var arr = []; - - function get_fun() { - return 36; - } - function set_fun(value) { - arr.setVerifyHelpProp = value; - } - Object.defineProperty(arr, "0", { - get: function () { - return 12; - }, - set: set_fun, - enumerable: true, - configurable: true - }); - - try { - Object.defineProperties(arr, { - "0": { - get: get_fun, - enumerable: false, - configurable: false - } - }); - return accessorPropertyAttributesAreCorrect(arr, "0", get_fun, set_fun, "setVerifyHelpProp", false, false); - } catch (ex) { - return false; - } + +var arr = []; + +function get_fun() { + return 36; +} +function set_fun(value) { + arr.setVerifyHelpProp = value; +} +Object.defineProperty(arr, "0", { + get: function () { + return 12; + }, + set: set_fun, + enumerable: true, + configurable: true +}); + +Object.defineProperties(arr, { + "0": { + get: get_fun, + enumerable: false, + configurable: false } -runTestCase(testcase); +}); +verifyEqualTo(arr, "0", get_fun()); + +verifyWritable(arr, "0", "setVerifyHelpProp"); + +verifyNotEnumerable(arr, "0"); + +verifyNotConfigurable(arr, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-266.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-266.js index 4db292bd3467016c138ecd59fa78b9e848288608..9493d14db2d2df9c08146f9690290d43ff5d8d5b 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-266.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-266.js @@ -11,23 +11,29 @@ description: > that won't exist on 'O', and 'desc' is data descriptor, test 'P' is defined in 'O' with all correct attribute values (15.4.5.1 step 5) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - Object.defineProperties(arr, { - "property": { - value: 12, - writable: true, - enumerable: true, - configurable: true - } - }); - return dataPropertyAttributesAreCorrect(arr, "property", 12, true, true, true) && arr.length === 0; +Object.defineProperties(arr, { + "property": { + value: 12, + writable: true, + enumerable: true, + configurable: true } -runTestCase(testcase); +}); +verifyEqualTo(arr, "property", 12); + +verifyWritable(arr, "property"); + +verifyEnumerable(arr, "property"); + +verifyConfigurable(arr, "property"); + +if (arr.length !== 0) { + $ERROR('Expected arr.length === 0, actually ' + arr.length); +} + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-267.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-267.js index 7b8d81bdc4c85aece2e17e0543b51002a324736e..7c49813892e5edaa8ec47b12a175a5c043785298 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-267.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-267.js @@ -10,31 +10,36 @@ description: > Object.defineProperties - 'O' is an Array, 'P' is generic property, and 'desc' is accessor descriptor, test 'P' is defined in 'O' with all correct attribute values (15.4.5.1 step 5) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var arr = []; - - function get_fun() { - return 12; - } - function set_fun(value) { - arr.setVerifyHelpProp = value; - } - - Object.defineProperties(arr, { - "property": { - get: get_fun, - set: set_fun, - enumerable: true, - configurable: true - } - }); - return accessorPropertyAttributesAreCorrect(arr, "property", get_fun, set_fun, "setVerifyHelpProp", true, true) && - arr.length === 0; + +var arr = []; + +function get_fun() { + return 12; +} +function set_fun(value) { + arr.setVerifyHelpProp = value; +} + +Object.defineProperties(arr, { + "property": { + get: get_fun, + set: set_fun, + enumerable: true, + configurable: true } -runTestCase(testcase); +}); +verifyEqualTo(arr, "property", get_fun()); + +verifyWritable(arr, "property", "setVerifyHelpProp"); + +verifyEnumerable(arr, "property"); + +verifyConfigurable(arr, "property"); + +if (arr.length !== 0) { + $ERROR('Expected arr.length === 0, actually ' + arr.length); +} + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-268.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-268.js index c302b57a842816254da958f90f8cbaf33cc94655..d536f06f9fc424a8e4793251953e4deaae03e1f1 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-268.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-268.js @@ -10,34 +10,35 @@ description: > Object.defineProperties - 'O' is an Array, 'P' is generic own accessor property of 'O', and 'desc' is accessor descriptor, test updating multiple attribute values of 'P' (15.4.5.1 step 5) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; - function get_fun() { - return 12; - } - function set_fun(value) { - arr.verifySetFun = value; - } - Object.defineProperty(arr, "property", { - get: function () { - return 36; - }, - enumerable: true, - configurable: true - }); +var arr = []; +function get_fun() { + return 12; +} +function set_fun(value) { + arr.verifySetFun = value; +} +Object.defineProperty(arr, "property", { + get: function () { + return 36; + }, + enumerable: true, + configurable: true +}); - Object.defineProperties(arr, { - "property": { - get: get_fun, - set: set_fun, - enumerable: false - } - }); - return accessorPropertyAttributesAreCorrect(arr, "property", get_fun, set_fun, "verifySetFun", false, true); +Object.defineProperties(arr, { + "property": { + get: get_fun, + set: set_fun, + enumerable: false } -runTestCase(testcase); +}); +verifyEqualTo(arr, "property", get_fun()); + +verifyWritable(arr, "property", "verifySetFun"); + +verifyNotEnumerable(arr, "property"); + +verifyConfigurable(arr, "property"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-269.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-269.js index 84b60a4e0e7458caf53159e4caa0cc85f5072367..94fea276e27c0a1dcc32bf15d695647a4b5db0cf 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-269.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-269.js @@ -10,23 +10,29 @@ description: > Object.defineProperties - 'O' is an Array, 'P' is generic own data property of 'O', and 'desc' is data descriptor, test updating multiple attribute values of 'P' (15.4.5.1 step 5) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; - arr.property = 12; // default value of attributes: writable: true, configurable: true, enumerable: true +var arr = []; +arr.property = 12; // default value of attributes: writable: true, configurable: true, enumerable: true - Object.defineProperties(arr, { - "property": { - writable: false, - enumerable: false, - configurable: false - } - }); - return dataPropertyAttributesAreCorrect(arr, "property", 12, false, false, false) && arr.length === 0; +Object.defineProperties(arr, { + "property": { + writable: false, + enumerable: false, + configurable: false } -runTestCase(testcase); +}); +verifyEqualTo(arr, "property", 12); + +verifyNotWritable(arr, "property"); + +verifyNotEnumerable(arr, "property"); + +verifyNotConfigurable(arr, "property"); + +if (arr.length !== 0) { + $ERROR('Expected arr.length === 0, actually ' + arr.length); +} + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-270.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-270.js index 8ddf5151c4a3766d14309244f971d49c54db3e45..fbc9111732f9dd2d17d2a9517382e227abfc5d3f 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-270.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-270.js @@ -11,28 +11,34 @@ description: > property of 'O', test TypeError is thrown when updating the [[Value]] attribute value of 'P' which is defined as unwritable and non-configurable (15.4.5.1 step 5) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - Object.defineProperty(arr, "property", { - value: 12 - }); +Object.defineProperty(arr, "property", { + value: 12 +}); - try { - Object.defineProperties(arr, { - "property": { - value: 36 - } - }); - return false; - } catch (ex) { - return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "property", 12, false, false, false); +try { + Object.defineProperties(arr, { + "property": { + value: 36 } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arr, "property", 12); + + verifyNotWritable(arr, "property"); + + verifyNotEnumerable(arr, "property"); + + verifyNotConfigurable(arr, "property"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-271.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-271.js index 6cefedf40e097a73d64676e52838ee8416b31f14..1ab8f43ec0c81a4c41da241ce7e1a6c9775fd8fa 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-271.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-271.js @@ -11,28 +11,34 @@ description: > property of 'O', test TypeError is thrown when updating the [[Writable]] attribute value of 'P' which is defined as non-configurable (15.4.5.1 step 5) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - Object.defineProperty(arr, "property", { - writable: false - }); +Object.defineProperty(arr, "property", { + writable: false +}); - try { - Object.defineProperties(arr, { - "property": { - writable: true - } - }); - return false; - } catch (ex) { - return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "property", undefined, false, false, false); +try { + Object.defineProperties(arr, { + "property": { + writable: true } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arr, "property", undefined); + + verifyNotWritable(arr, "property"); + + verifyNotEnumerable(arr, "property"); + + verifyNotConfigurable(arr, "property"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-272.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-272.js index 2630e340d9d0a8853fd514a55642a40dafd8c9ba..4cde5138c63814b8055b9f8d778e48fe9ccdb23c 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-272.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-272.js @@ -11,29 +11,35 @@ description: > property of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'P' which is defined as non-configurable (15.4.5.1 step 5) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - Object.defineProperty(arr, "property", { - value: 12, - enumerable: false - }); +Object.defineProperty(arr, "property", { + value: 12, + enumerable: false +}); - try { - Object.defineProperties(arr, { - "property": { - enumerable: true - } - }); - return false; - } catch (ex) { - return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "property", 12, false, false, false); +try { + Object.defineProperties(arr, { + "property": { + enumerable: true } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arr, "property", 12); + + verifyNotWritable(arr, "property"); + + verifyNotEnumerable(arr, "property"); + + verifyNotConfigurable(arr, "property"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-273.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-273.js index f22658d7c342506e74294895b0baac5a2e80959c..56c44ea748ad8d7d159919155c04050a09a70035 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-273.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-273.js @@ -11,28 +11,34 @@ description: > property of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'P' which is defined as non-configurable (15.4.5.1 step 5) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - Object.defineProperty(arr, "property", { - value: 12 - }); +Object.defineProperty(arr, "property", { + value: 12 +}); - try { - Object.defineProperties(arr, { - "property": { - configurable: true - } - }); - return false; - } catch (ex) { - return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "property", 12, false, false, false); +try { + Object.defineProperties(arr, { + "property": { + configurable: true } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arr, "property", 12); + + verifyNotWritable(arr, "property"); + + verifyNotEnumerable(arr, "property"); + + verifyNotConfigurable(arr, "property"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-274.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-274.js index 2f27559b3e402cf15841ab6ea514ddbf6540a04a..58ab7473423acafa53a1afda5603e5765ba18d57 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-274.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-274.js @@ -11,37 +11,42 @@ description: > accessor property of 'O', test TypeError is thrown when updating the [[Get]] attribute value of 'P' which is defined as non-configurable (15.4.5.1 step 5) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - function get_fun() { - return 37; - } - function set_fun(value) { - arr.verifySetFun = value; - } - Object.defineProperty(arr, "property", { - get: get_fun, - set: set_fun - }); - - try { - Object.defineProperties(arr, { - "property": { - get: function () { - return 36; - } - } - }); - return false; - } catch (ex) { - return (ex instanceof TypeError) && - accessorPropertyAttributesAreCorrect(arr, "property", get_fun, set_fun, "verifySetFun", false, false); +function get_fun() { + return 37; +} +function set_fun(value) { + arr.verifySetFun = value; +} +Object.defineProperty(arr, "property", { + get: get_fun, + set: set_fun +}); + +try { + Object.defineProperties(arr, { + "property": { + get: function () { + return 36; + } } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arr, "property", get_fun()); + + verifyWritable(arr, "property", "verifySetFun"); + + verifyNotEnumerable(arr, "property"); + + verifyNotConfigurable(arr, "property"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-275.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-275.js index db153cc1f9e0c8c97c420abcdffdc585895c9424..9a4a3fef0360aaae86981013c79c1995896e7218 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-275.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-275.js @@ -11,31 +11,34 @@ description: > accessor property of 'O', test TypeError is thrown when updating the [[Set]] attribute value of 'P' which is defined as non-configurable (15.4.5.1 step 5) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - function set_fun(value) { - arr.setVerifyHelpProp = value; - } - Object.defineProperty(arr, "property", { - set: set_fun - }); - - try { - Object.defineProperties(arr, { - "property": { - set: function () { } - } - }); - return false; - } catch (ex) { - return (ex instanceof TypeError) && accessorPropertyAttributesAreCorrect(arr, "property", undefined, set_fun, "setVerifyHelpProp", false, false); +function set_fun(value) { + arr.setVerifyHelpProp = value; +} +Object.defineProperty(arr, "property", { + set: set_fun +}); + +try { + Object.defineProperties(arr, { + "property": { + set: function () { } } + }); +} catch (e) { + verifyWritable(arr, "property", "setVerifyHelpProp"); + + verifyNotEnumerable(arr, "property"); + + verifyNotConfigurable(arr, "property"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-276.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-276.js index f39432a200036fb74f1cf440d2da661b0ad14997..85471b3f205d9a63a75da7a431f44245b7a3ab03 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-276.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-276.js @@ -11,32 +11,36 @@ description: > accessor property of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'P' which is defined as non-configurable (15.4.5.1 step 5) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - function set_fun(value) { - arr.setVerifyHelpProp = value; - } - Object.defineProperty(arr, "property", { - set: set_fun, - enumerable: false - }); - - try { - Object.defineProperties(arr, { - "property": { - enumerable: true - } - }); - return false; - } catch (ex) { - return (ex instanceof TypeError) && accessorPropertyAttributesAreCorrect(arr, "property", undefined, set_fun, "setVerifyHelpProp", false, false); +function set_fun(value) { + arr.setVerifyHelpProp = value; +} +Object.defineProperty(arr, "property", { + set: set_fun, + enumerable: false +}); + +try { + Object.defineProperties(arr, { + "property": { + enumerable: true } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyWritable(arr, "property", "setVerifyHelpProp"); + + verifyNotEnumerable(arr, "property"); + + verifyNotConfigurable(arr, "property"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-277.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-277.js index 2e327ca23ea9eba9964233e9e63fad6c3eab07d3..58ca3f5b4eea0c0b507779af1438a2aa4070ce1d 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-277.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-277.js @@ -11,32 +11,36 @@ description: > accessor property of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'P' which is defined as non-configurable (15.4.5.1 step 5) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arr = []; +var arr = []; - function set_fun(value) { - arr.setVerifyHelpProp = value; - } - Object.defineProperty(arr, "property", { - set: set_fun, - configurable: false - }); - - try { - Object.defineProperties(arr, { - "property": { - configurable: true - } - }); - return false; - } catch (ex) { - return (ex instanceof TypeError) && accessorPropertyAttributesAreCorrect(arr, "property", undefined, set_fun, "setVerifyHelpProp", false, false); +function set_fun(value) { + arr.setVerifyHelpProp = value; +} +Object.defineProperty(arr, "property", { + set: set_fun, + configurable: false +}); + +try { + Object.defineProperties(arr, { + "property": { + configurable: true } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyWritable(arr, "property", "setVerifyHelpProp"); + + verifyNotEnumerable(arr, "property"); + + verifyNotConfigurable(arr, "property"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-278.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-278.js index 020367e287c14c0fb36f3f5c4308223a67a46b98..19307efc00403083b1a8226172ca6165a03c2793 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-278.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-278.js @@ -12,30 +12,31 @@ description: > 'O', and is deleted afterwards, and 'desc' is data descriptor, test 'P' is redefined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg; +var arg; - (function fun(a, b, c) { - arg = arguments; - }(0, 1, 2)); +(function fun(a, b, c) { + arg = arguments; +}(0, 1, 2)); - delete arg[0]; +delete arg[0]; - Object.defineProperties(arg, { - "0": { - value: 10, - writable: true, - enumerable: true, - configurable: true - } - }); - - return dataPropertyAttributesAreCorrect(arg, "0", 10, true, true, true); +Object.defineProperties(arg, { + "0": { + value: 10, + writable: true, + enumerable: true, + configurable: true } -runTestCase(testcase); +}); + +verifyEqualTo(arg, "0", 10); + +verifyWritable(arg, "0"); + +verifyEnumerable(arg, "0"); + +verifyConfigurable(arg, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-279.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-279.js index 445d5719d3edf1af88dcc02f93b3fffde6010da5..6d412c21f4e39598285071ecbe0c8743c3438652 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-279.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-279.js @@ -12,37 +12,38 @@ description: > 'O', and is deleted afterwards, and 'desc' is accessor descriptor, test 'P' is redefined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg; +var arg; - (function fun(a, b, c) { - arg = arguments; - }(0, 1, 2)); +(function fun(a, b, c) { + arg = arguments; +}(0, 1, 2)); - delete arg[0]; +delete arg[0]; - function get_func() { - return 10; - } - function set_func(value) { - arg.setVerifyHelpProp = value; - } +function get_func() { + return 10; +} +function set_func(value) { + arg.setVerifyHelpProp = value; +} - Object.defineProperties(arg, { - "0": { - get: get_func, - set: set_func, - enumerable: true, - configurable: true - } - }); - - return accessorPropertyAttributesAreCorrect(arg, "0", get_func, set_func, "setVerifyHelpProp", true, true); +Object.defineProperties(arg, { + "0": { + get: get_func, + set: set_func, + enumerable: true, + configurable: true } -runTestCase(testcase); +}); + +verifyEqualTo(arg, "0", get_func()); + +verifyWritable(arg, "0", "setVerifyHelpProp"); + +verifyEnumerable(arg, "0"); + +verifyConfigurable(arg, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-28.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-28.js index 3627e00847daeab75c17897fd6a302bc45aa1924..f6bfcfbb7a34b122fa93c090bb9096a788f04375 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-28.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-28.js @@ -10,18 +10,25 @@ description: > Object.defineProperties - 'P' doesn't exist in 'O', test [[Writable]] of 'P' is set as false value if absent in data descriptor 'desc' (8.12.9 step 4.a.i) -includes: [runTestCase.js] +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperties(obj, { - prop: { - value: 1001 - } - }); - obj.prop = 1002; - return obj.hasOwnProperty("prop") && obj.prop === 1001; +Object.defineProperties(obj, { + prop: { + value: 1001 } -runTestCase(testcase); +}); + +if (isWritable(obj, "prop")) { + $ERROR('Expected obj["prop"] not to be writable.'); +} + +if (!obj.hasOwnProperty("prop")) { + $ERROR('Expected obj.hasOwnProperty("prop") to be true, actually ' + obj.hasOwnProperty("prop")); +} + +if (obj.prop !== 1001) { + $ERROR('Expected obj.prop === 1001, actually ' + obj.prop); +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-281.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-281.js index cf0de9523e2375941ddbcacafeedc71fa9013cc7..53399652ac3f1e951b017764638e3ae21505d7be 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-281.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-281.js @@ -11,28 +11,29 @@ description: > data property of 'O' which is also defined in [[ParameterMap]] of 'O', and 'desc' is data descriptor, test updating multiple attribute values of 'P' (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg; +var arg; - (function fun(a, b, c) { - arg = arguments; - }(0, 1, 2)); +(function fun(a, b, c) { + arg = arguments; +}(0, 1, 2)); - Object.defineProperties(arg, { - "0": { - value: 20, - writable: false, - enumerable: false, - configurable: false - } - }); - - return dataPropertyAttributesAreCorrect(arg, "0", 20, false, false, false); +Object.defineProperties(arg, { + "0": { + value: 20, + writable: false, + enumerable: false, + configurable: false } -runTestCase(testcase); +}); + +verifyEqualTo(arg, "0", 20); + +verifyNotWritable(arg, "0"); + +verifyNotEnumerable(arg, "0"); + +verifyNotConfigurable(arg, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-282.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-282.js index f8dc1ff7b92337c528d45281375523dee68c2dd6..3e7f474b693100f4efb47784737a3c74d567b8a5 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-282.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-282.js @@ -12,35 +12,41 @@ description: > 'O', test TypeError is thrown when updating the [[Value]] attribute value of 'P' whose writable and configurable attributes are false (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg; +var arg; - (function fun(a, b, c) { - arg = arguments; - }(0, 1, 2)); +(function fun(a, b, c) { + arg = arguments; +}(0, 1, 2)); - Object.defineProperty(arg, "0", { - value: 0, - writable: false, - configurable: false - }); +Object.defineProperty(arg, "0", { + value: 0, + writable: false, + configurable: false +}); - try { - Object.defineProperties(arg, { - "0": { - value: 10 - } - }); - - return false; - } catch (e) { - return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arg, "0", 0, false, true, false); +try { + Object.defineProperties(arg, { + "0": { + value: 10 } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arg, "0", 0); + + verifyNotWritable(arg, "0"); + + verifyEnumerable(arg, "0"); + + verifyNotConfigurable(arg, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-283.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-283.js index 1f43637be3bd1e4f8842bbce5b65d8c8e8a21731..c77c987965b440c6c6f519eec706f9c7b16e0dce 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-283.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-283.js @@ -12,36 +12,42 @@ description: > 'O', test TypeError is thrown when updating the [[Writable]] attribute value of 'P' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg; +var arg; - (function fun(a, b, c) { - arg = arguments; - }(0, 1, 2)); +(function fun(a, b, c) { + arg = arguments; +}(0, 1, 2)); - Object.defineProperty(arg, "0", { - value: 0, - writable: false, - enumerable: false, - configurable: false - }); +Object.defineProperty(arg, "0", { + value: 0, + writable: false, + enumerable: false, + configurable: false +}); - try { - Object.defineProperties(arg, { - "0": { - writable: true - } - }); - - return false; - } catch (e) { - return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arg, "0", 0, false, false, false); +try { + Object.defineProperties(arg, { + "0": { + writable: true } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arg, "0", 0); + + verifyNotWritable(arg, "0"); + + verifyNotEnumerable(arg, "0"); + + verifyNotConfigurable(arg, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-284.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-284.js index 62bda9ef701b4f3dbcaeaadf4c861b53b53adaeb..a1134e7683a84ac88fc042d80483aead0afdc2d6 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-284.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-284.js @@ -12,36 +12,42 @@ description: > 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'P' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg; +var arg; - (function fun(a, b, c) { - arg = arguments; - }(0, 1, 2)); +(function fun(a, b, c) { + arg = arguments; +}(0, 1, 2)); - Object.defineProperty(arg, "0", { - value: 0, - writable: false, - enumerable: true, - configurable: false - }); +Object.defineProperty(arg, "0", { + value: 0, + writable: false, + enumerable: true, + configurable: false +}); - try { - Object.defineProperties(arg, { - "0": { - enumerable: false - } - }); - - return false; - } catch (e) { - return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arg, "0", 0, false, true, false); +try { + Object.defineProperties(arg, { + "0": { + enumerable: false } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arg, "0", 0); + + verifyNotWritable(arg, "0"); + + verifyEnumerable(arg, "0"); + + verifyNotConfigurable(arg, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-285.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-285.js index 9b00b79ee077929e98d3afe31f4f3d3fd69a6a93..b386f92e081f7ab7da5689ccb359ff74b24e9f41 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-285.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-285.js @@ -12,36 +12,42 @@ description: > 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'P' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg; +var arg; - (function fun(a, b, c) { - arg = arguments; - }(0, 1, 2)); +(function fun(a, b, c) { + arg = arguments; +}(0, 1, 2)); - Object.defineProperty(arg, "0", { - value: 0, - writable: false, - enumerable: false, - configurable: false - }); +Object.defineProperty(arg, "0", { + value: 0, + writable: false, + enumerable: false, + configurable: false +}); - try { - Object.defineProperties(arg, { - "0": { - configurable: true - } - }); - - return false; - } catch (e) { - return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arg, "0", 0, false, false, false); +try { + Object.defineProperties(arg, { + "0": { + configurable: true } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arg, "0", 0); + + verifyNotWritable(arg, "0"); + + verifyNotEnumerable(arg, "0"); + + verifyNotConfigurable(arg, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-288.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-288.js index 1c3e584d50ac7c9730a99cad68ed95ae2931c7c3..420cd3c838a50113fd98c45136f25b8c1e15260e 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-288.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-288.js @@ -12,39 +12,43 @@ description: > of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'P' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg; +var arg; - (function fun(a, b, c) { - arg = arguments; - }(0, 1, 2)); +(function fun(a, b, c) { + arg = arguments; +}(0, 1, 2)); - function get_func() { - return 0; - } +function get_func() { + return 0; +} + +Object.defineProperty(arg, "0", { + get: get_func, + enumerable: true, + configurable: false +}); - Object.defineProperty(arg, "0", { - get: get_func, - enumerable: true, - configurable: false - }); - - try { - Object.defineProperties(arg, { - "0": { - enumerable: false - } - }); - - return false; - } catch (e) { - return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(arg, "0", get_func, undefined, undefined, true, false); +try { + Object.defineProperties(arg, { + "0": { + enumerable: false } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arg, "0", get_func()); + + verifyEnumerable(arg, "0"); + + verifyNotConfigurable(arg, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-289.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-289.js index d7b9bf46676889131cae7e74ac56a31bb6ae1047..97c2452b1ac71aea918a1c62e2077fa19c4b071b 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-289.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-289.js @@ -12,39 +12,43 @@ description: > of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'P' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg; +var arg; - (function fun(a, b, c) { - arg = arguments; - }(0, 1, 2)); +(function fun(a, b, c) { + arg = arguments; +}(0, 1, 2)); - function get_func() { - return 0; - } +function get_func() { + return 0; +} + +Object.defineProperty(arg, "0", { + get: get_func, + enumerable: true, + configurable: false +}); - Object.defineProperty(arg, "0", { - get: get_func, - enumerable: true, - configurable: false - }); - - try { - Object.defineProperties(arg, { - "0": { - configurable: true - } - }); - - return false; - } catch (e) { - return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(arg, "0", get_func, undefined, undefined, true, false); +try { + Object.defineProperties(arg, { + "0": { + configurable: true } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arg, "0", get_func()); + + verifyEnumerable(arg, "0"); + + verifyNotConfigurable(arg, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-290.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-290.js index 7dc503f5ef574232d42cd85f560677e6849e0ee7..d2330a97f8c77da109d43a20fe8cf939d90849d6 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-290.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-290.js @@ -12,30 +12,31 @@ description: > [[ParameterMap]] of 'O', and 'desc' is data descriptor, test 'P' is defined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg; +var arg; - (function fun() { - arg = arguments; - }(0, 1, 2)); +(function fun() { + arg = arguments; +}(0, 1, 2)); - delete arg[0]; +delete arg[0]; - Object.defineProperties(arg, { - "0": { - value: 10, - writable: false, - enumerable: false, - configurable: false - } - }); - - return dataPropertyAttributesAreCorrect(arg, "0", 10, false, false, false); +Object.defineProperties(arg, { + "0": { + value: 10, + writable: false, + enumerable: false, + configurable: false } -runTestCase(testcase); +}); + +verifyEqualTo(arg, "0", 10); + +verifyNotWritable(arg, "0"); + +verifyNotEnumerable(arg, "0"); + +verifyNotConfigurable(arg, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-291.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-291.js index c9eabffa5df054be0e74c88353f3d550619c5d71..3c84949e3eccd8ef1fce1c981dc38cf3d69a2a74 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-291.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-291.js @@ -12,37 +12,38 @@ description: > [[ParameterMap]] of 'O', and 'desc' is accessor descriptor, test 'P' is defined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg; +var arg; - (function fun() { - arg = arguments; - }(0, 1, 2)); +(function fun() { + arg = arguments; +}(0, 1, 2)); - delete arg[0]; +delete arg[0]; - function get_func() { - return 10; - } - function set_func(value) { - arg.setVerifyHelpProp = value; - } +function get_func() { + return 10; +} +function set_func(value) { + arg.setVerifyHelpProp = value; +} - Object.defineProperties(arg, { - "0": { - get: get_func, - set: set_func, - enumerable: false, - configurable: false - } - }); - - return accessorPropertyAttributesAreCorrect(arg, "0", get_func, set_func, "setVerifyHelpProp", false, false); +Object.defineProperties(arg, { + "0": { + get: get_func, + set: set_func, + enumerable: false, + configurable: false } -runTestCase(testcase); +}); + +verifyEqualTo(arg, "0", get_func()); + +verifyWritable(arg, "0", "setVerifyHelpProp"); + +verifyNotEnumerable(arg, "0"); + +verifyNotConfigurable(arg, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-292.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-292.js index 3f9f9879231001b05468f32eed94652f941ca9ee..d859dba437c3681869faa2f11093e0231818383b 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-292.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-292.js @@ -12,41 +12,40 @@ description: > [[ParameterMap]] of 'O', and 'desc' is accessor descriptor, test updating multiple attribute values of 'P' (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg; +var arg; - (function fun() { - arg = arguments; - }(0, 1, 2)); +(function fun() { + arg = arguments; +}(0, 1, 2)); - function get_func1() { - return 10; - } +function get_func1() { + return 10; +} - Object.defineProperty(arg, "0", { - get: get_func1, - enumerable: true, - configurable: true - }); +Object.defineProperty(arg, "0", { + get: get_func1, + enumerable: true, + configurable: true +}); - function get_func2() { - return 20; - } +function get_func2() { + return 20; +} - Object.defineProperties(arg, { - "0": { - get: get_func2, - enumerable: false, - configurable: false - } - }); - - return accessorPropertyAttributesAreCorrect(arg, "0", get_func2, undefined, undefined, false, false); +Object.defineProperties(arg, { + "0": { + get: get_func2, + enumerable: false, + configurable: false } -runTestCase(testcase); +}); + +verifyEqualTo(arg, "0", get_func2()); + +verifyNotEnumerable(arg, "0"); + +verifyNotConfigurable(arg, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-293.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-293.js index 5c2ceab3f2f4aab9ec11554a1ef4f378b42ba9d3..d567dbb50adc8188cfbf0bc5c4f329a596a90bad 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-293.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-293.js @@ -12,28 +12,29 @@ description: > [[ParameterMap]] of 'O', and 'desc' is data descriptor, test updating multiple attribute values of 'P' (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg; +var arg; - (function fun() { - arg = arguments; - }(0, 1, 2)); +(function fun() { + arg = arguments; +}(0, 1, 2)); - Object.defineProperties(arg, { - "0": { - value: 20, - writable: false, - enumerable: false, - configurable: false - } - }); - - return dataPropertyAttributesAreCorrect(arg, "0", 20, false, false, false); +Object.defineProperties(arg, { + "0": { + value: 20, + writable: false, + enumerable: false, + configurable: false } -runTestCase(testcase); +}); + +verifyEqualTo(arg, "0", 20); + +verifyNotWritable(arg, "0"); + +verifyNotEnumerable(arg, "0"); + +verifyNotConfigurable(arg, "0"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-294.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-294.js index 39fd992a02202f167505036f11cad085eadd3584..37e838d50b8d1efcf05f0f0a2d1c5f09d3e301cd 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-294.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-294.js @@ -12,35 +12,41 @@ description: > [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Value]] attribute value of 'P' which is not writable and not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg; +var arg; - (function fun() { - arg = arguments; - }()); +(function fun() { + arg = arguments; +}()); - Object.defineProperty(arg, "0", { - value: 0, - writable: false, - configurable: false - }); +Object.defineProperty(arg, "0", { + value: 0, + writable: false, + configurable: false +}); - try { - Object.defineProperties(arg, { - "0": { - value: 10 - } - }); - - return false; - } catch (e) { - return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arg, "0", 0, false, false, false); +try { + Object.defineProperties(arg, { + "0": { + value: 10 } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arg, "0", 0); + + verifyNotWritable(arg, "0"); + + verifyNotEnumerable(arg, "0"); + + verifyNotConfigurable(arg, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-295.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-295.js index 30e5f1762a0562419ddd64eb1cdda996fdfb1511..96d8567ff9353433e6ff0542d5117cbfeaefe1d9 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-295.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-295.js @@ -12,36 +12,42 @@ description: > [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Writable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg; +var arg; - (function fun() { - arg = arguments; - }()); +(function fun() { + arg = arguments; +}()); - Object.defineProperty(arg, "0", { - value: 0, - writable: false, - enumerable: false, - configurable: false - }); +Object.defineProperty(arg, "0", { + value: 0, + writable: false, + enumerable: false, + configurable: false +}); - try { - Object.defineProperties(arg, { - "0": { - writable: true - } - }); - - return false; - } catch (e) { - return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arg, "0", 0, false, false, false); +try { + Object.defineProperties(arg, { + "0": { + writable: true } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arg, "0", 0); + + verifyNotWritable(arg, "0"); + + verifyNotEnumerable(arg, "0"); + + verifyNotConfigurable(arg, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-296.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-296.js index 8c8d6284669be37db6f5177807a285195d2088c4..1f85055de205dc490d164797fb2cc2b15bb0d699 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-296.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-296.js @@ -12,36 +12,42 @@ description: > [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg; +var arg; - (function fun() { - arg = arguments; - }()); +(function fun() { + arg = arguments; +}()); - Object.defineProperty(arg, "0", { - value: 0, - writable: false, - enumerable: true, - configurable: false - }); +Object.defineProperty(arg, "0", { + value: 0, + writable: false, + enumerable: true, + configurable: false +}); - try { - Object.defineProperties(arg, { - "0": { - enumerable: false - } - }); - - return false; - } catch (e) { - return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arg, "0", 0, false, true, false); +try { + Object.defineProperties(arg, { + "0": { + enumerable: false } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arg, "0", 0); + + verifyNotWritable(arg, "0"); + + verifyEnumerable(arg, "0"); + + verifyNotConfigurable(arg, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-297.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-297.js index 1a0fa728a97e05bcf120d7438cb860bdd28ac862..837c19b35bf081d9bf413f8f2dbf1aace9ef2f9a 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-297.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-297.js @@ -12,36 +12,42 @@ description: > [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg; +var arg; - (function fun() { - arg = arguments; - }()); +(function fun() { + arg = arguments; +}()); - Object.defineProperty(arg, "0", { - value: 0, - writable: false, - enumerable: false, - configurable: false - }); +Object.defineProperty(arg, "0", { + value: 0, + writable: false, + enumerable: false, + configurable: false +}); - try { - Object.defineProperties(arg, { - "0": { - configurable: true - } - }); - - return false; - } catch (e) { - return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arg, "0", 0, false, false, false); +try { + Object.defineProperties(arg, { + "0": { + configurable: true } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arg, "0", 0); + + verifyNotWritable(arg, "0"); + + verifyNotEnumerable(arg, "0"); + + verifyNotConfigurable(arg, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-298.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-298.js index 0c72e56b901668d206ba0eb0c3c4272e845f51d6..ca7724bcdc0d5fc6c898e00fe6d972758c1004d7 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-298.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-298.js @@ -12,41 +12,45 @@ description: > [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Get]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg; +var arg; - (function fun() { - arg = arguments; - }()); +(function fun() { + arg = arguments; +}()); - function get_func1() { - return 0; - } +function get_func1() { + return 0; +} - Object.defineProperty(arg, "0", { - get: get_func1, - enumerable: false, - configurable: false - }); +Object.defineProperty(arg, "0", { + get: get_func1, + enumerable: false, + configurable: false +}); - function get_func2() { - return 10; - } - try { - Object.defineProperties(arg, { - "0": { - get: get_func2 - } - }); - return false; - } catch (e) { - return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(arg, "0", get_func1, undefined, undefined, false, false); +function get_func2() { + return 10; +} +try { + Object.defineProperties(arg, { + "0": { + get: get_func2 } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arg, "0", get_func1()); + + verifyNotEnumerable(arg, "0"); + + verifyNotConfigurable(arg, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-299.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-299.js index f42e1cd306a3140b68fdcdc83238db03e6946112..25ac42ce31163147178ca7aa9e753ead951850d0 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-299.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-299.js @@ -12,42 +12,46 @@ description: > [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Set]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg; +var arg; - (function fun() { - arg = arguments; - }()); +(function fun() { + arg = arguments; +}()); - function get_func() { - return 0; - } +function get_func() { + return 0; +} - Object.defineProperty(arg, "0", { - get: get_func, - set: undefined, - enumerable: false, - configurable: false - }); +Object.defineProperty(arg, "0", { + get: get_func, + set: undefined, + enumerable: false, + configurable: false +}); - function set_func(value) { - arg.setVerifyHelpProp = value; - } - try { - Object.defineProperties(arg, { - "0": { - set: set_func - } - }); - return false; - } catch (e) { - return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(arg, "0", get_func, undefined, undefined, false, false); +function set_func(value) { + arg.setVerifyHelpProp = value; +} +try { + Object.defineProperties(arg, { + "0": { + set: set_func } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arg, "0", get_func()); + + verifyNotEnumerable(arg, "0"); + + verifyNotConfigurable(arg, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-30.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-30.js index 97b89b2ff8c6531336412e6ba5fb0faf4d477e39..d5d6abd15614f29ffe1b5259c77808be3903455d 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-30.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-30.js @@ -10,17 +10,23 @@ description: > Object.defineProperties - 'P' doesn't exist in 'O', test [[Configurable]] of 'P' is set as false value if absent in data descriptor 'desc' (8.12.9 step 4.a.i) -includes: [runTestCase.js] +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; - - - Object.defineProperties(obj, { - prop: { value: 1001 } - }); - delete obj.prop; - return obj.hasOwnProperty("prop") && obj.prop === 1001; - } -runTestCase(testcase); +var obj = {}; + + +Object.defineProperties(obj, { + prop: { value: 1001 } +}); + +verifyNotConfigurable(obj, "prop"); + +if (!obj.hasOwnProperty("prop")) { + $ERROR('Expected obj.hasOwnProperty("prop") to be true, actually ' + obj.hasOwnProperty("prop")); +} + +if (obj.prop !== 1001) { + $ERROR('Expected obj.prop === 1001, actually ' + obj.prop); +} + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-300.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-300.js index 34362547fdd56dc84675731b9747999026fe44ac..dba2012e8141898883b5d81a3412cd693578ca53 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-300.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-300.js @@ -12,38 +12,42 @@ description: > [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg; +var arg; - (function fun() { - arg = arguments; - }()); +(function fun() { + arg = arguments; +}()); - function get_func() { - return 0; - } +function get_func() { + return 0; +} + +Object.defineProperty(arg, "0", { + get: get_func, + enumerable: true, + configurable: false +}); - Object.defineProperty(arg, "0", { - get: get_func, - enumerable: true, - configurable: false - }); - - try { - Object.defineProperties(arg, { - "0": { - enumerable: false - } - }); - return false; - } catch (e) { - return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(arg, "0", get_func, undefined, undefined, true, false); +try { + Object.defineProperties(arg, { + "0": { + enumerable: false } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arg, "0", get_func()); + + verifyEnumerable(arg, "0"); + + verifyNotConfigurable(arg, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-301.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-301.js index a642570d13c9abfecf2365b5f8107c557beadcd4..50d1399165c10bb7f31e168460d92d100abbfa95 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-301.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-301.js @@ -12,38 +12,42 @@ description: > [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg; +var arg; - (function fun() { - arg = arguments; - }()); +(function fun() { + arg = arguments; +}()); - function get_func() { - return 0; - } +function get_func() { + return 0; +} + +Object.defineProperty(arg, "0", { + get: get_func, + enumerable: true, + configurable: false +}); - Object.defineProperty(arg, "0", { - get: get_func, - enumerable: true, - configurable: false - }); - - try { - Object.defineProperties(arg, { - "0": { - configurable: true - } - }); - return false; - } catch (e) { - return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(arg, "0", get_func, undefined, undefined, true, false); +try { + Object.defineProperties(arg, { + "0": { + configurable: true } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arg, "0", get_func()); + + verifyEnumerable(arg, "0"); + + verifyNotConfigurable(arg, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-302.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-302.js index cd827ebbb4d007db56aa092129e5dba5e95c6774..f0b704f845fc231a58de77ef028c4c377450610e 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-302.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-302.js @@ -11,25 +11,26 @@ description: > generic property, and 'desc' is data descriptor, test 'P' is defined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg = (function () { - return arguments; - }(1, 2, 3)); +var arg = (function () { + return arguments; +}(1, 2, 3)); - Object.defineProperties(arg, { - "genericProperty": { - value: 1001, - writable: true, - enumerable: true, - configurable: true - } - }); - - return dataPropertyAttributesAreCorrect(arg, "genericProperty", 1001, true, true, true); +Object.defineProperties(arg, { + "genericProperty": { + value: 1001, + writable: true, + enumerable: true, + configurable: true } -runTestCase(testcase); +}); + +verifyEqualTo(arg, "genericProperty", 1001); + +verifyWritable(arg, "genericProperty"); + +verifyEnumerable(arg, "genericProperty"); + +verifyConfigurable(arg, "genericProperty"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-303.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-303.js index f5eff7cec574cdf5ce5aa1e8d6a43dd2c05cc347..17f13ad6a59f1ea065076c7fd2e3b902ab158c9c 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-303.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-303.js @@ -11,31 +11,32 @@ description: > generic property, and 'desc' is accessor descriptor, test 'P' is defined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg = (function () { - return arguments; - }(1, 2, 3)); +var arg = (function () { + return arguments; +}(1, 2, 3)); - function getFun() { - return "getFunctionString"; - } - function setFun(value) { - arg.testGetFunction = value; - } - Object.defineProperties(arg, { - "genericProperty": { - get: getFun, - set: setFun, - enumerable: true, - configurable: true - } - }); - - return accessorPropertyAttributesAreCorrect(arg, "genericProperty", getFun, setFun, "testGetFunction", true, true); +function getFun() { + return "getFunctionString"; +} +function setFun(value) { + arg.testGetFunction = value; +} +Object.defineProperties(arg, { + "genericProperty": { + get: getFun, + set: setFun, + enumerable: true, + configurable: true } -runTestCase(testcase); +}); + +verifyEqualTo(arg, "genericProperty", getFun()); + +verifyWritable(arg, "genericProperty", "testGetFunction"); + +verifyEnumerable(arg, "genericProperty"); + +verifyConfigurable(arg, "genericProperty"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-304.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-304.js index faa10b1688c1e058b5c835d1dee11466cc650242..aa67694eb331cad62b0884c6869cb7aa57e111c1 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-304.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-304.js @@ -11,42 +11,43 @@ description: > generic own accessor property of 'O', and 'desc' is accessor descriptor, test updating multiple attribute values of 'P' (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg = (function () { - return arguments; - }(1, 2, 3)); - - Object.defineProperty(arg, "genericProperty", { - get: function () { - return 1001; - }, - set: function (value) { - arg.testGetFunction1 = value; - }, - enumerable: true, - configurable: true - }); - - function getFun() { - return "getFunctionString"; - } - function setFun(value) { - arg.testGetFunction = value; - } - Object.defineProperties(arg, { - "genericProperty": { - get: getFun, - set: setFun, - enumerable: false, - configurable: false - } - }); - - return accessorPropertyAttributesAreCorrect(arg, "genericProperty", getFun, setFun, "testGetFunction", false, false); +var arg = (function () { + return arguments; +}(1, 2, 3)); + +Object.defineProperty(arg, "genericProperty", { + get: function () { + return 1001; + }, + set: function (value) { + arg.testGetFunction1 = value; + }, + enumerable: true, + configurable: true +}); + +function getFun() { + return "getFunctionString"; +} +function setFun(value) { + arg.testGetFunction = value; +} +Object.defineProperties(arg, { + "genericProperty": { + get: getFun, + set: setFun, + enumerable: false, + configurable: false } -runTestCase(testcase); +}); + +verifyEqualTo(arg, "genericProperty", getFun()); + +verifyWritable(arg, "genericProperty", "testGetFunction"); + +verifyNotEnumerable(arg, "genericProperty"); + +verifyNotConfigurable(arg, "genericProperty"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-305.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-305.js index 641833ad3e96e9d7345e554d327930d82eb01feb..11471d6c42ef018bbad069afe68db42927cd9a0d 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-305.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-305.js @@ -11,31 +11,32 @@ description: > generic own data property of 'O', and 'desc' is data descriptor, test updating multiple attribute values of 'P' (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg = (function () { - return arguments; - }(1, 2, 3)); - - Object.defineProperty(arg, "genericProperty", { - value: 1001, - writable: true, - enumerable: true, - configurable: true - }); - - Object.defineProperties(arg, { - "genericProperty": { - value: 1002, - enumerable: false, - configurable: false - } - }); - - return dataPropertyAttributesAreCorrect(arg, "genericProperty", 1002, true, false, false); +var arg = (function () { + return arguments; +}(1, 2, 3)); + +Object.defineProperty(arg, "genericProperty", { + value: 1001, + writable: true, + enumerable: true, + configurable: true +}); + +Object.defineProperties(arg, { + "genericProperty": { + value: 1002, + enumerable: false, + configurable: false } -runTestCase(testcase); +}); + +verifyEqualTo(arg, "genericProperty", 1002); + +verifyWritable(arg, "genericProperty"); + +verifyNotEnumerable(arg, "genericProperty"); + +verifyNotConfigurable(arg, "genericProperty"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-306.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-306.js index 44ce844fe00e8f0528199f02dd68ab27e66e81ee..594c661241bbaad776a1c32152fe8b187f2b7950 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-306.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-306.js @@ -11,33 +11,38 @@ description: > generic own data property of 'O', test TypeError is thrown when updating the [[Value]] attribute value of 'P' which is not writable and not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg = (function () { - return arguments; - }(1, 2, 3)); - - Object.defineProperty(arg, "genericProperty", { - value: 1001, - writable: false, - configurable: false - }); - - try { - Object.defineProperties(arg, { - "genericProperty": { - value: 1002 - } - }); - - return false; - } catch (ex) { - return ex instanceof TypeError && - dataPropertyAttributesAreCorrect(arg, "genericProperty", 1001, false, false, false); +var arg = (function () { + return arguments; +}(1, 2, 3)); + +Object.defineProperty(arg, "genericProperty", { + value: 1001, + writable: false, + configurable: false +}); + +try { + Object.defineProperties(arg, { + "genericProperty": { + value: 1002 } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arg, "genericProperty", 1001); + + verifyNotWritable(arg, "genericProperty"); + + verifyNotEnumerable(arg, "genericProperty"); + + verifyNotConfigurable(arg, "genericProperty"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-307.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-307.js index 106bb6c803d796f45f0bc0efe27c2b0aef976739..203e2469691fe8e0cf861172d117c3d2048b0b30 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-307.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-307.js @@ -11,32 +11,37 @@ description: > generic own data property of 'O', test TypeError is thrown when updating the [[Writable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg = (function () { - return arguments; - }(1, 2, 3)); - - Object.defineProperty(arg, "genericProperty", { - writable: false, - configurable: false - }); - - try { - Object.defineProperties(arg, { - "genericProperty": { - writable: true - } - }); - - return false; - } catch (ex) { - return ex instanceof TypeError && - dataPropertyAttributesAreCorrect(arg, "genericProperty", undefined, false, false, false); +var arg = (function () { + return arguments; +}(1, 2, 3)); + +Object.defineProperty(arg, "genericProperty", { + writable: false, + configurable: false +}); + +try { + Object.defineProperties(arg, { + "genericProperty": { + writable: true } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arg, "genericProperty", undefined); + + verifyNotWritable(arg, "genericProperty"); + + verifyNotEnumerable(arg, "genericProperty"); + + verifyNotConfigurable(arg, "genericProperty"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-308.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-308.js index f25243da344dcb41ad95f6c2dc8c4fe3647dedb5..1aaebe4c9929e64956e444ef1e9298ed32049bf6 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-308.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-308.js @@ -11,32 +11,37 @@ description: > generic own data property of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg = (function () { - return arguments; - }(1, 2, 3)); - - Object.defineProperty(arg, "genericProperty", { - enumerable: true, - configurable: false - }); - - try { - Object.defineProperties(arg, { - "genericProperty": { - enumerable: false - } - }); - - return false; - } catch (ex) { - return ex instanceof TypeError && - dataPropertyAttributesAreCorrect(arg, "genericProperty", undefined, false, true, false); +var arg = (function () { + return arguments; +}(1, 2, 3)); + +Object.defineProperty(arg, "genericProperty", { + enumerable: true, + configurable: false +}); + +try { + Object.defineProperties(arg, { + "genericProperty": { + enumerable: false } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arg, "genericProperty", undefined); + + verifyNotWritable(arg, "genericProperty"); + + verifyEnumerable(arg, "genericProperty"); + + verifyNotConfigurable(arg, "genericProperty"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-309.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-309.js index acf8ce43110ea99408a75a7f7f946fe83c0408bf..fa06927c8fd5a34f65d0ec4d792ac275adaec92e 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-309.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-309.js @@ -11,31 +11,36 @@ description: > generic own data property of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg = (function () { - return arguments; - }(1, 2, 3)); - - Object.defineProperty(arg, "genericProperty", { - configurable: false - }); - - try { - Object.defineProperties(arg, { - "genericProperty": { - configurable: true - } - }); - - return false; - } catch (ex) { - return ex instanceof TypeError && - dataPropertyAttributesAreCorrect(arg, "genericProperty", undefined, false, false, false); +var arg = (function () { + return arguments; +}(1, 2, 3)); + +Object.defineProperty(arg, "genericProperty", { + configurable: false +}); + +try { + Object.defineProperties(arg, { + "genericProperty": { + configurable: true } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arg, "genericProperty", undefined); + + verifyNotWritable(arg, "genericProperty"); + + verifyNotEnumerable(arg, "genericProperty"); + + verifyNotConfigurable(arg, "genericProperty"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-31.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-31.js index 4ae99586545dbe671e50909bf0998bb9d3dea215..cb36538d0984ca15b075c94230b03e8177f427d9 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-31.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-31.js @@ -9,23 +9,24 @@ es5id: 15.2.3.7-6-a-31 description: > Object.defineProperties - 'desc' is data descriptor, test setting all attribute values of 'P' (8.12.9 step 4.a.i) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; - - Object.defineProperties(obj, { - prop: { - value: 1002, - writable: false, - enumerable: false, - configurable: false - } - }); - return dataPropertyAttributesAreCorrect(obj, "prop", 1002, false, false, false); +var obj = {}; +Object.defineProperties(obj, { + prop: { + value: 1002, + writable: false, + enumerable: false, + configurable: false } -runTestCase(testcase); +}); +verifyEqualTo(obj, "prop", 1002); + +verifyNotWritable(obj, "prop"); + +verifyNotEnumerable(obj, "prop"); + +verifyNotConfigurable(obj, "prop"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-310.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-310.js index f2dc102f59e2a2d26b7db314e314042247e205bb..e8ebe30566e006e4d54e98b1e4f0d7c2df0ba7f6 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-310.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-310.js @@ -11,41 +11,46 @@ description: > generic own accessor property of 'O', test TypeError is thrown when updating the [[Get]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg = (function () { - return arguments; - } (1, 2, 3)); +var arg = (function () { + return arguments; +} (1, 2, 3)); - function getFun() { - return "genericPropertyString"; - } - function setFun(value) { - arg.verifySetFun = value; - } - Object.defineProperty(arg, "genericProperty", { - get: getFun, - set: setFun, - configurable: false - }); - - try { - Object.defineProperties(arg, { - "genericProperty": { - get: function () { - return "overideGenericPropertyString"; - } - } - }); - - return false; - } catch (ex) { - return ex instanceof TypeError && - accessorPropertyAttributesAreCorrect(arg, "genericProperty", getFun, setFun, "verifySetFun", false, false, false); +function getFun() { + return "genericPropertyString"; +} +function setFun(value) { + arg.verifySetFun = value; +} +Object.defineProperty(arg, "genericProperty", { + get: getFun, + set: setFun, + configurable: false +}); + +try { + Object.defineProperties(arg, { + "genericProperty": { + get: function () { + return "overideGenericPropertyString"; + } } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arg, "genericProperty", getFun()); + + verifyWritable(arg, "genericProperty", "verifySetFun"); + + verifyNotEnumerable(arg, "genericProperty"); + + verifyNotConfigurable(arg, "genericProperty"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-311.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-311.js index ddbd7e60cdf183270d019bd72da590357fa6e48b..abd4268b533b3d862218a6678ed48239e92b7231 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-311.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-311.js @@ -11,37 +11,40 @@ description: > generic own accessor property of 'O', test TypeError is thrown when updating the [[Set]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg = (function () { - return arguments; - }(1, 2, 3)); +var arg = (function () { + return arguments; +}(1, 2, 3)); - function setFun(value) { - arg.genericPropertyString = value; - } - Object.defineProperty(arg, "genericProperty", { - set: setFun, - configurable: false - }); - - try { - Object.defineProperties(arg, { - "genericProperty": { - set: function (value) { - arg.genericPropertyString1 = value; - } - } - }); - - return false; - } catch (ex) { - return ex instanceof TypeError && - accessorPropertyAttributesAreCorrect(arg, "genericProperty", undefined, setFun, "genericPropertyString", false, false, false); +function setFun(value) { + arg.genericPropertyString = value; +} +Object.defineProperty(arg, "genericProperty", { + set: setFun, + configurable: false +}); + +try { + Object.defineProperties(arg, { + "genericProperty": { + set: function (value) { + arg.genericPropertyString1 = value; + } } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyWritable(arg, "genericProperty", "genericPropertyString"); + + verifyNotEnumerable(arg, "genericProperty"); + + verifyNotConfigurable(arg, "genericProperty"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-312.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-312.js index 3717eb0c3b025a2033ec16ae112bf35f6ce700cf..e41c8b71e4bf422617f2cc0537875b7a9225cb48 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-312.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-312.js @@ -11,36 +11,39 @@ description: > generic own accessor property of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg = (function () { - return arguments; - }(1, 2, 3)); +var arg = (function () { + return arguments; +}(1, 2, 3)); - function setFun(value) { - arg.genericPropertyString = value; - } - Object.defineProperty(arg, "genericProperty", { - set: setFun, - enumerable: true, - configurable: false - }); - - try { - Object.defineProperties(arg, { - "genericProperty": { - enumerable: false - } - }); - - return false; - } catch (ex) { - return ex instanceof TypeError && - accessorPropertyAttributesAreCorrect(arg, "genericProperty", undefined, setFun, "genericPropertyString", true, false); +function setFun(value) { + arg.genericPropertyString = value; +} +Object.defineProperty(arg, "genericProperty", { + set: setFun, + enumerable: true, + configurable: false +}); + +try { + Object.defineProperties(arg, { + "genericProperty": { + enumerable: false } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyWritable(arg, "genericProperty", "genericPropertyString"); + + verifyEnumerable(arg, "genericProperty"); + + verifyNotConfigurable(arg, "genericProperty"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-313.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-313.js index 28f1e144085d256a513165e16213813e72861ea0..bffe3b3b054a685ef86a7052f282114a0f032601 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-313.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-313.js @@ -11,35 +11,38 @@ description: > generic own accessor property of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arg = (function () { - return arguments; - }(1, 2, 3)); +var arg = (function () { + return arguments; +}(1, 2, 3)); - function setFun(value) { - arg.genericPropertyString = value; - } - Object.defineProperty(arg, "genericProperty", { - set: setFun, - configurable: false - }); - - try { - Object.defineProperties(arg, { - "genericProperty": { - configurable: true - } - }); - - return false; - } catch (ex) { - return ex instanceof TypeError && - accessorPropertyAttributesAreCorrect(arg, "genericProperty", undefined, setFun, "genericPropertyString", false, false, false); +function setFun(value) { + arg.genericPropertyString = value; +} +Object.defineProperty(arg, "genericProperty", { + set: setFun, + configurable: false +}); + +try { + Object.defineProperties(arg, { + "genericProperty": { + configurable: true } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyWritable(arg, "genericProperty", "genericPropertyString"); + + verifyNotEnumerable(arg, "genericProperty"); + + verifyNotConfigurable(arg, "genericProperty"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-33.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-33.js index 0c254b1ca4f901a6b4f20c71180201d6089b419d..a5f213f354e012a0ca9614c1112055303b123b81 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-33.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-33.js @@ -10,25 +10,24 @@ description: > Object.defineProperties - 'P' doesn't exist in 'O', test [[Get]] of 'P' is set as undefined value if absent in accessor descriptor 'desc' (8.12.9 step 4.b) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; - var setFun = function (value) { - obj.setVerifyHelpProp = value; - }; - - Object.defineProperties(obj, { - prop: { - set: setFun, - enumerable: true, - configurable: true - } - }); - return accessorPropertyAttributesAreCorrect(obj, "prop", undefined, setFun, "setVerifyHelpProp", true, true); +var obj = {}; +var setFun = function (value) { + obj.setVerifyHelpProp = value; +}; +Object.defineProperties(obj, { + prop: { + set: setFun, + enumerable: true, + configurable: true } -runTestCase(testcase); +}); +verifyWritable(obj, "prop", "setVerifyHelpProp"); + +verifyEnumerable(obj, "prop"); + +verifyConfigurable(obj, "prop"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-35.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-35.js index bbacd3f2600c7ad0208cd3612782453a1fc99cfd..d0da7577d61eea584b5e4cb22d755911e46e2ae9 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-35.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-35.js @@ -10,28 +10,29 @@ description: > Object.defineProperties - 'P' doesn't exist in 'O', test [[Enumerable]] of 'P' is set as false value if absent in accessor descriptor 'desc' (8.12.9 step 4.b.i) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; - var getFun = function () { - return 10; - }; - var setFun = function (value) { - obj.setVerifyHelpProp = value; - }; - - Object.defineProperties(obj, { - prop: { - set: setFun, - get: getFun, - configurable: true - } - }); - return accessorPropertyAttributesAreCorrect(obj, "prop", getFun, setFun, "setVerifyHelpProp", false, true); +var obj = {}; +var getFun = function () { + return 10; +}; +var setFun = function (value) { + obj.setVerifyHelpProp = value; +}; +Object.defineProperties(obj, { + prop: { + set: setFun, + get: getFun, + configurable: true } -runTestCase(testcase); +}); +verifyEqualTo(obj, "prop", getFun()); + +verifyWritable(obj, "prop", "setVerifyHelpProp"); + +verifyNotEnumerable(obj, "prop"); + +verifyConfigurable(obj, "prop"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-36.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-36.js index f8c1d276bf6fe61d96c7278b7a05327f2c09b271..6eb3036bc054ab809edcf762464ff045883cc275 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-36.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-36.js @@ -11,27 +11,29 @@ description: > [[Configurable]] of 'P' is set as false value if absent in accessor descriptor 'desc' (8.12.9 step 4.b.i) includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js + - propertyHelper.js ---*/ -function testcase() { - var obj = {}; - var getFun = function () { - return 10; - }; - var setFun = function (value) { - obj.setVerifyHelpProp = value; - }; - - Object.defineProperties(obj, { - prop: { - set: setFun, - get: getFun, - enumerable: true - } - }); - return accessorPropertyAttributesAreCorrect(obj, "prop", getFun, setFun, "setVerifyHelpProp", true, false); +var obj = {}; +var getFun = function () { + return 10; +}; +var setFun = function (value) { + obj.setVerifyHelpProp = value; +}; +Object.defineProperties(obj, { + prop: { + set: setFun, + get: getFun, + enumerable: true } -runTestCase(testcase); +}); + +verifyEqualTo(obj, "prop", 10); + +verifyWritable(obj, "prop", "setVerifyHelpProp"); + +verifyEnumerable(obj, "prop"); + +verifyNotConfigurable(obj, "prop"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-37.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-37.js index fd0bca98c6d35cd77bad4202d508c780fe584a6f..2dce15e025ae8363dbb0f232cee00ab7bbb566d5 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-37.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-37.js @@ -9,29 +9,30 @@ es5id: 15.2.3.7-6-a-37 description: > Object.defineProperties - 'desc' is accessor descriptor, test setting all attribute values of 'P' (8.12.9 step 4.b.i) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; - var getFun = function () { - return 10; - }; - var setFun = function (value) { - obj.setVerifyHelpProp = value; - }; - - Object.defineProperties(obj, { - prop: { - get: getFun, - set: setFun, - enumerable: false, - configurable: false - } - }); - return accessorPropertyAttributesAreCorrect(obj, "prop", getFun, setFun, "setVerifyHelpProp", false, false); +var obj = {}; +var getFun = function () { + return 10; +}; +var setFun = function (value) { + obj.setVerifyHelpProp = value; +}; +Object.defineProperties(obj, { + prop: { + get: getFun, + set: setFun, + enumerable: false, + configurable: false } -runTestCase(testcase); +}); +verifyEqualTo(obj, "prop", getFun()); + +verifyWritable(obj, "prop", "setVerifyHelpProp"); + +verifyNotEnumerable(obj, "prop"); + +verifyNotConfigurable(obj, "prop"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-38-1.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-38-1.js index 368a1f12d28af0e040a1909491e8033d48a69701..079f8b0e2434224893760c75a70e92d65fe663b4 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-38-1.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-38-1.js @@ -10,27 +10,26 @@ description: > Object.defineProperties - 'P' exists in 'O' is an accessor property, test 'P' makes no change if 'desc' is generic descriptor without any attribute (8.12.9 step 5) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; - var getFunc = function () { - return 12; - }; - Object.defineProperties(obj, { - foo: { - get: getFunc, - enumerable: true, - configurable: true - } - }); +var obj = {}; +var getFunc = function () { + return 12; +}; +Object.defineProperties(obj, { + foo: { + get: getFunc, + enumerable: true, + configurable: true + } +}); - Object.defineProperties(obj, { foo: {} }); +Object.defineProperties(obj, { foo: {} }); - return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, undefined, undefined, true, true); - } -runTestCase(testcase); +verifyEqualTo(obj, "foo", getFunc()); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-38.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-38.js index 20dd5265119d25062a82a0886dd0888ebec998ff..de529e07f503c3ab4a0fa465f7299294d7fa584e 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-38.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-38.js @@ -10,17 +10,18 @@ description: > Object.defineProperties - 'P' exists in 'O', test 'P' makes no change if 'desc' is generic descriptor without any attribute (8.12.9 step 5) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; - obj.foo = 100; // default value of attributes: writable: true, configurable: true, enumerable: true +var obj = {}; +obj.foo = 100; // default value of attributes: writable: true, configurable: true, enumerable: true - Object.defineProperties(obj, { foo: {} }); - return dataPropertyAttributesAreCorrect(obj, "foo", 100, true, true, true); - } -runTestCase(testcase); +Object.defineProperties(obj, { foo: {} }); +verifyEqualTo(obj, "foo", 100); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-39.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-39.js index 4849a6cf964387b318a54ec713da3a1403c96df8..9c125d9698f74ff1a317209cd23ef202d0927b38 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-39.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-39.js @@ -9,26 +9,27 @@ es5id: 15.2.3.7-6-a-39 description: > Object.defineProperties - 'P' is data descriptor and every fields in 'desc' is the same with 'P' (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true - - Object.defineProperties(obj, { - foo: { - value: 101, - enumerable: true, - writable: true, - configurable: true - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", 101, true, true, true); +obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true +Object.defineProperties(obj, { + foo: { + value: 101, + enumerable: true, + writable: true, + configurable: true } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", 101); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-40.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-40.js index c823e8a653605afdd58fc9478c76e37c349335dc..22ff55e47e04a5f2d8eef71fff505b2ae5af90e5 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-40.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-40.js @@ -9,39 +9,40 @@ es5id: 15.2.3.7-6-a-40 description: > Object.defineProperties - 'P' is accessor descriptor and every fields in 'desc' is the same with 'P' (8.12.9 step 6) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - function get_func() { - return 0; - } - function set_func(value) { - obj.setVerifyHelpProp = value; - } - var desc = { - get: get_func, - set: set_func, - enumerable: true, - configurable: true - }; - - Object.defineProperty(obj, "foo", desc); - - Object.defineProperties(obj, { - foo: { - get: get_func, - set: set_func, - enumerable: true, - configurable: true - } - }); - return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "setVerifyHelpProp", true, true); +var obj = {}; + +function get_func() { + return 0; +} +function set_func(value) { + obj.setVerifyHelpProp = value; +} +var desc = { + get: get_func, + set: set_func, + enumerable: true, + configurable: true +}; + +Object.defineProperty(obj, "foo", desc); + +Object.defineProperties(obj, { + foo: { + get: get_func, + set: set_func, + enumerable: true, + configurable: true } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", get_func()); + +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-41.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-41.js index 2e16082d42629aa3955ad5af63c7f20c1bc2abb3..a6d6802c42eb13f3c1891b5d27926bb98f49a70f 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-41.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-41.js @@ -9,23 +9,24 @@ es5id: 15.2.3.7-6-a-41 description: > Object.defineProperties - type of desc.value is different from type of P.value (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true - - Object.defineProperties(obj, { - foo: { - value: "102" - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", "102", true, true, true); +obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true +Object.defineProperties(obj, { + foo: { + value: "102" } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", "102"); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-42.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-42.js index 4d1958eae1c8397793943e555ed000dd2bb9a491..4a991a07ed733782cb538c5634384cd73549ba22 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-42.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-42.js @@ -9,24 +9,25 @@ es5id: 15.2.3.7-6-a-42 description: > Object.defineProperties - both desc.value and P.value are undefined (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - var desc = { value: undefined }; - Object.defineProperty(obj, "foo", desc); - - Object.defineProperties(obj, { - foo: { - value: undefined - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false); +var desc = { value: undefined }; +Object.defineProperty(obj, "foo", desc); +Object.defineProperties(obj, { + foo: { + value: undefined } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", undefined); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-43.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-43.js index 640630cce80d75d48b6416060838ab670650b7ab..39e342997da1f404ebc466f5f8fac0b2823bc947 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-43.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-43.js @@ -9,24 +9,25 @@ es5id: 15.2.3.7-6-a-43 description: > Object.defineProperties - both desc.value and P.value are null (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - var desc = { value: null }; - Object.defineProperty(obj, "foo", desc); - - Object.defineProperties(obj, { - foo: { - value: null - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", null, false, false, false); +var desc = { value: null }; +Object.defineProperty(obj, "foo", desc); +Object.defineProperties(obj, { + foo: { + value: null } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", null); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-45.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-45.js index a993f783e08324744aea26cdcca13d60e3dfdd7f..2a4cd99aa809cf6dd554491659f72d709d418385 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-45.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-45.js @@ -9,27 +9,33 @@ es5id: 15.2.3.7-6-a-45 description: > Object.defineProperties - desc.value is +0 and P.value is -0 (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - var desc = { value: -0 }; - Object.defineProperty(obj, "foo", desc); +var desc = { value: -0 }; +Object.defineProperty(obj, "foo", desc); - try { - Object.defineProperties(obj, { - foo: { - value: +0 - } - }); - return false; - } catch (e) { - return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", -0, false, false, false); +try { + Object.defineProperties(obj, { + foo: { + value: +0 } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "foo", -0); + + verifyNotWritable(obj, "foo"); + + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-46.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-46.js index 701be15e42229c5dccbe943115cbff683dcd2dcb..69bffbd5b2870e01bac81aae6c4081324e72b7ec 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-46.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-46.js @@ -9,27 +9,33 @@ es5id: 15.2.3.7-6-a-46 description: > Object.defineProperties - desc.value is -0 and P.value is +0 (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - var desc = { value: +0 }; - Object.defineProperty(obj, "foo", desc); +var desc = { value: +0 }; +Object.defineProperty(obj, "foo", desc); - try { - Object.defineProperties(obj, { - foo: { - value: -0 - } - }); - return false; - } catch (e) { - return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", +0, false, false, false); +try { + Object.defineProperties(obj, { + foo: { + value: -0 } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "foo", +0); + + verifyNotWritable(obj, "foo"); + + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-47.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-47.js index a67240e609b680782e3f89c82b5a6c777ffde44e..45db0783e26bd574bab76045dc1f6343009b841b 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-47.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-47.js @@ -9,23 +9,24 @@ es5id: 15.2.3.7-6-a-47 description: > Object.defineProperties - desc.value and P.value are two numbers with the same value (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - var desc = { value: 101 }; - Object.defineProperty(obj, "foo", desc); +var desc = { value: 101 }; +Object.defineProperty(obj, "foo", desc); - Object.defineProperties(obj, { - foo: { - value: 101 - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", 101, false, false, false); +Object.defineProperties(obj, { + foo: { + value: 101 } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", 101); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-48.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-48.js index 5c00c5a11a991f68ba8b089d5c03dd3380503610..ca627be9b84a28b2f017f7dd93f358a6d108150f 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-48.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-48.js @@ -9,22 +9,23 @@ es5id: 15.2.3.7-6-a-48 description: > Object.defineProperties - desc.value and P.value are two numbers with different values (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true +obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true - Object.defineProperties(obj, { - foo: { - value: 102 - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", 102, true, true, true); +Object.defineProperties(obj, { + foo: { + value: 102 } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", 102); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-49.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-49.js index e40d0f9ceb0b0df20988196dd561165c6f7b62c7..4a9749f78aced2f127e52827e7c3869c4442f18e 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-49.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-49.js @@ -10,23 +10,24 @@ description: > Object.defineProperties - both desc.value and P.value are two strings which have same length and same characters in corresponding positions (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - var desc = { value: "abcd" }; - Object.defineProperty(obj, "foo", desc); +var desc = { value: "abcd" }; +Object.defineProperty(obj, "foo", desc); - Object.defineProperties(obj, { - foo: { - value: "abcd" - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", "abcd", false, false, false); +Object.defineProperties(obj, { + foo: { + value: "abcd" } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", "abcd"); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-5.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-5.js index 74783d01044ec029b3a7b8d9654325f319782cfb..5d4ae1bfac4778a6ef85b82d5d926900b713ee2b 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-5.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-5.js @@ -9,32 +9,36 @@ es5id: 15.2.3.7-6-a-5 description: > Object.defineProperties - 'P' is own accessor property (8.12.9 step 1 ) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; - function getFunc() { - return 11; - } +var obj = {}; +function getFunc() { + return 11; +} + +Object.defineProperty(obj, "prop", { + get: getFunc, + configurable: false +}); - Object.defineProperty(obj, "prop", { - get: getFunc, - configurable: false - }); - - try { - Object.defineProperties(obj, { - prop: { - value: 12, - configurable: true - } - }); - return false; - } catch (e) { - return e instanceof TypeError && accessorPropertyAttributesAreCorrect(obj, "prop", getFunc, undefined, undefined, false, false); +try { + Object.defineProperties(obj, { + prop: { + value: 12, + configurable: true } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "prop", getFunc()); + + verifyNotEnumerable(obj, "prop"); + + verifyNotConfigurable(obj, "prop"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-50.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-50.js index 72ca8054d20018e4d98af1afdc31f3c5ae6bc448..466306f07dbde05d0847c721af5e199f80c8233d 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-50.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-50.js @@ -9,22 +9,23 @@ es5id: 15.2.3.7-6-a-50 description: > Object.defineProperties - desc.value and P.value are two strings with different values (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - obj.foo = "abcd"; // default value of attributes: writable: true, configurable: true, enumerable: true +obj.foo = "abcd"; // default value of attributes: writable: true, configurable: true, enumerable: true - Object.defineProperties(obj, { - foo: { - value: "fghj" - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", "fghj", true, true, true); +Object.defineProperties(obj, { + foo: { + value: "fghj" } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", "fghj"); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-51.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-51.js index 173acbb8b770c9b675efaa599d3dec48ffedc280..7d333d6831ed880dccb312ef6de831d59b014a4f 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-51.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-51.js @@ -9,23 +9,24 @@ es5id: 15.2.3.7-6-a-51 description: > Object.defineProperties - both desc.value and P.value are boolean values with the same value (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - var desc = { value: true }; - Object.defineProperty(obj, "foo", desc); +var desc = { value: true }; +Object.defineProperty(obj, "foo", desc); - Object.defineProperties(obj, { - foo: { - value: true - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", true, false, false, false); +Object.defineProperties(obj, { + foo: { + value: true } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", true); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-52.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-52.js index 968030f31255875d28c483b1f6acb7a2fbc054b0..a8dd3b2567bf02e43bbd99b815864a54f1185de7 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-52.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-52.js @@ -9,22 +9,23 @@ es5id: 15.2.3.7-6-a-52 description: > Object.defineProperties - desc.value and P.value are two boolean values with different values (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - obj.foo = true; // default value of attributes: writable: true, configurable: true, enumerable: true +obj.foo = true; // default value of attributes: writable: true, configurable: true, enumerable: true - Object.defineProperties(obj, { - foo: { - value: false - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", false, true, true, true); +Object.defineProperties(obj, { + foo: { + value: false } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", false); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-53.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-53.js index 2396efc19501962fed1e229c3f9c1a1c903df56f..5413e9e68b772b3441ed995541506c22430d78cd 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-53.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-53.js @@ -9,24 +9,25 @@ es5id: 15.2.3.7-6-a-53 description: > Object.defineProperties - both desc.value and P.value are Ojbects which refer to the same Object (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - var obj1 = { length: 10 }; - var desc = { value: obj1 }; - Object.defineProperty(obj, "foo", desc); +var obj1 = { length: 10 }; +var desc = { value: obj1 }; +Object.defineProperty(obj, "foo", desc); - Object.defineProperties(obj, { - foo: { - value: obj1 - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", obj1, false, false, false); +Object.defineProperties(obj, { + foo: { + value: obj1 } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", obj1); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-54.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-54.js index d5aa5a11df5977451a67f2115a31910261f97251..5de9ff2dbd0acf49248cd2bbcbcd6e3a1346a409 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-54.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-54.js @@ -9,25 +9,26 @@ es5id: 15.2.3.7-6-a-54 description: > Object.defineProperties - desc.value and P.value are two Ojbects which refer to the different objects (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - var obj1 = { length: 10 }; - obj.foo = obj1; // default value of attributes: writable: true, configurable: true, enumerable: true +var obj1 = { length: 10 }; +obj.foo = obj1; // default value of attributes: writable: true, configurable: true, enumerable: true - var obj2 = { length: 20 }; +var obj2 = { length: 20 }; - Object.defineProperties(obj, { - foo: { - value: obj2 - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", obj2, true, true, true); +Object.defineProperties(obj, { + foo: { + value: obj2 } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", obj2); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-55.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-55.js index 253e7c7b13e7e708c10e323119bc54e5b679be1b..d830f0cb3c7c1eab5fda5c1babad6f2d8f266b4e 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-55.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-55.js @@ -9,23 +9,24 @@ es5id: 15.2.3.7-6-a-55 description: > Object.defineProperties - both desc.writable and P.writable are boolean values with the same value (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - var desc = { writable: false }; - Object.defineProperty(obj, "foo", desc); +var desc = { writable: false }; +Object.defineProperty(obj, "foo", desc); - Object.defineProperties(obj, { - foo: { - writable: false - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false); +Object.defineProperties(obj, { + foo: { + writable: false } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", undefined); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-56.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-56.js index bc9b5be0074e30c7a27dc43f34bb4a37bfac0816..b564febb881742bbe3dc28c8d06c93846f300227 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-56.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-56.js @@ -9,24 +9,25 @@ es5id: 15.2.3.7-6-a-56 description: > Object.defineProperties - desc.writable and P.writable are two boolean values with different values (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - var desc = { writable: false, configurable: true }; - Object.defineProperty(obj, "foo", desc); +var desc = { writable: false, configurable: true }; +Object.defineProperty(obj, "foo", desc); - Object.defineProperties(obj, { - foo: { - writable: true, - configurable: true - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", undefined, true, false, true); +Object.defineProperties(obj, { + foo: { + writable: true, + configurable: true } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", undefined); + +verifyWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-59.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-59.js index 3e68bf78753e4f88546b9e2938a100118c23cd6f..e779a6e35e753bd1cac28e4ed4e924346b01368e 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-59.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-59.js @@ -9,28 +9,27 @@ es5id: 15.2.3.7-6-a-59 description: > Object.defineProperties - both desc.[[Set]] and P.[[Set]] are two objects which refer to the same object (8.12.9 step 6) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function set_func(value) { - obj.setVerifyHelpProp = value; - } +function set_func(value) { + obj.setVerifyHelpProp = value; +} - Object.defineProperty(obj, "foo", { - set: set_func - }); +Object.defineProperty(obj, "foo", { + set: set_func +}); - Object.defineProperties(obj, { - foo: { - set: set_func - } - }); - return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, set_func, "setVerifyHelpProp", false, false); +Object.defineProperties(obj, { + foo: { + set: set_func } -runTestCase(testcase); +}); +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-60.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-60.js index b190d2349708645fa5af81c4263cf52fcdfcf84a..b44e96b0fa9ea8cde804fefdf586f55887789e48 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-60.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-60.js @@ -9,31 +9,30 @@ es5id: 15.2.3.7-6-a-60 description: > Object.defineProperties - desc.[[Set]] and P.[[Set]] are two objects which refer to the different objects (8.12.9 step 6) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function set_func1() {} +function set_func1() {} - Object.defineProperty(obj, "foo", { - set: set_func1, - configurable: true - }); +Object.defineProperty(obj, "foo", { + set: set_func1, + configurable: true +}); - function set_func2(value) { - obj.setVerifyHelpProp = value; - } +function set_func2(value) { + obj.setVerifyHelpProp = value; +} - Object.defineProperties(obj, { - foo: { - set: set_func2 - } - }); - return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, set_func2, "setVerifyHelpProp", false, true); +Object.defineProperties(obj, { + foo: { + set: set_func2 } -runTestCase(testcase); +}); +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyNotEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-61.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-61.js index 7628964a8fab7f38f682ebeba8efc4571a3211d3..e92ab227d40703b838ff58f60c9bbd0655110ad7 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-61.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-61.js @@ -9,25 +9,26 @@ es5id: 15.2.3.7-6-a-61 description: > Object.defineProperties - both desc.enumerable and P.enumerable are boolean values with the same value (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: 10, - enumerable: false - }); +Object.defineProperty(obj, "foo", { + value: 10, + enumerable: false +}); - Object.defineProperties(obj, { - foo: { - enumerable: false - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false); +Object.defineProperties(obj, { + foo: { + enumerable: false } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", 10); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-62.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-62.js index 7caea92ed36ed8b71cb8ad4defcce080dde63fa3..482eefbb12470c6a99e86c08251dc8e16c958e67 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-62.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-62.js @@ -9,26 +9,27 @@ es5id: 15.2.3.7-6-a-62 description: > Object.defineProperties - desc.enumerable and P.enumerable are two boolean values with different values (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: 10, - enumerable: false, - configurable: true - }); +Object.defineProperty(obj, "foo", { + value: 10, + enumerable: false, + configurable: true +}); - Object.defineProperties(obj, { - foo: { - enumerable: true - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", 10, false, true, true); +Object.defineProperties(obj, { + foo: { + enumerable: true } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", 10); + +verifyNotWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-63.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-63.js index 3da10b24b42e1ff75687186b638a25da63fb2913..28fc79612b6c0e5246034d39260c8cde6e650d8a 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-63.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-63.js @@ -10,25 +10,26 @@ description: > Object.defineProperties - both desc.configurable and P.configurable are boolean values with the same value (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: 10, - configurable: false - }); +Object.defineProperty(obj, "foo", { + value: 10, + configurable: false +}); - Object.defineProperties(obj, { - foo: { - configurable: false - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false); +Object.defineProperties(obj, { + foo: { + configurable: false } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", 10); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-64.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-64.js index 7ca8d05820c2252bf3e1f4119e99e818c098faaa..3fa8f7d621eb686edf54cdf388862918e10c40e9 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-64.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-64.js @@ -9,25 +9,26 @@ es5id: 15.2.3.7-6-a-64 description: > Object.defineProperties - desc.configurable and P.configurable are two boolean values with different values (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: 10, - configurable: true - }); +Object.defineProperty(obj, "foo", { + value: 10, + configurable: true +}); - Object.defineProperties(obj, { - foo: { - configurable: false - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false); +Object.defineProperties(obj, { + foo: { + configurable: false } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", 10); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-65.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-65.js index 1b85ed9e19b8d6c6d39344882a31bfe3863b6940..3359ed8b8e6faf0b6fa7f3da3e76ad2471d2e60e 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-65.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-65.js @@ -9,29 +9,35 @@ es5id: 15.2.3.7-6-a-65 description: > Object.defineProperties throws TypeError when P.configurable is false and desc.configurable is true (8.12.9 step 7.a) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: 10, - configurable: false - }); +Object.defineProperty(obj, "foo", { + value: 10, + configurable: false +}); - try { - Object.defineProperties(obj, { - foo: { - configurable: true - } - }); - return false; - } catch (e) { - return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false); +try { + Object.defineProperties(obj, { + foo: { + configurable: true } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "foo", 10); + + verifyNotWritable(obj, "foo"); + + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-66-1.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-66-1.js index 7e28fd8d0c33f426ccf979db86ec5bbca3fee506..d892a13b0bd9aaec3d609bec931dd0493c2e7fe2 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-66-1.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-66-1.js @@ -10,30 +10,36 @@ description: > Object.defineProperties throws TypeError when P.configurable is false, P.enumerable and desc.enumerable has different values (8.12.9 step 7.b) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - Object.defineProperty(obj, "foo", { - value: 10, - enumerable: false, - configurable: false - }); - - try { - Object.defineProperties(obj, { - foo: { - enumerable: true - } - }); - return false; - } catch (e) { - return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false); + +var obj = {}; + +Object.defineProperty(obj, "foo", { + value: 10, + enumerable: false, + configurable: false +}); + +try { + Object.defineProperties(obj, { + foo: { + enumerable: true } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "foo", 10); + + verifyNotWritable(obj, "foo"); + + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-66.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-66.js index c2e204fdbbda982fe871bcfc08ebac4e768850b4..b47dda9b7b7283a9e2ac02acbe53545887aaaf6b 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-66.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-66.js @@ -10,30 +10,36 @@ description: > Object.defineProperties throws TypeError when P.configurable is false, P.enumerable and desc.enumerable has different values (8.12.9 step 7.b) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - Object.defineProperty(obj, "foo", { - value: 10, - enumerable: true, - configurable: false - }); - - try { - Object.defineProperties(obj, { - foo: { - enumerable: false - } - }); - return false; - } catch (e) { - return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", 10, false, true, false); + +var obj = {}; + +Object.defineProperty(obj, "foo", { + value: 10, + enumerable: true, + configurable: false +}); + +try { + Object.defineProperties(obj, { + foo: { + enumerable: false } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "foo", 10); + + verifyNotWritable(obj, "foo"); + + verifyEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-68.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-68.js index 21417771beb93e2b2f12756b458d009d5bc0030c..42e9bd1165ef23ae3ad480fa6e1a722e4c808b7f 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-68.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-68.js @@ -10,33 +10,39 @@ description: > Object.defineProperties throws TypeError when P is data property and P.configurable is false, desc is accessor property (8.12.9 step 9.a) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: 10, - configurable: false - }); +Object.defineProperty(obj, "foo", { + value: 10, + configurable: false +}); - function get_func() { - return 11; - } +function get_func() { + return 11; +} - try { - Object.defineProperties(obj, { - foo: { - get: get_func - } - }); - return false; - } catch (e) { - return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false); +try { + Object.defineProperties(obj, { + foo: { + get: get_func } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "foo", 10); + + verifyNotWritable(obj, "foo"); + + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-70.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-70.js index 332480ccd745d1d69b85e4478fc2e3bfba7d9f20..d6f2a3b9a7c804f24dfa14fcb9905bb48c9c4dbb 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-70.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-70.js @@ -10,29 +10,30 @@ description: > Object.defineProperties - 'P' is accessor property and P.configurable is true, 'desc' in 'Properties' is data property (8.12.9 step 9.c.i) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function get_func() { - return 10; - } +function get_func() { + return 10; +} - Object.defineProperty(obj, "foo", { - get: get_func, - configurable: true - }); +Object.defineProperty(obj, "foo", { + get: get_func, + configurable: true +}); - Object.defineProperties(obj, { - foo: { - value: 12 - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", 12, false, false, true); +Object.defineProperties(obj, { + foo: { + value: 12 } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", 12); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-71.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-71.js index 720bfcfbc4d1d06519d2c49af6c54e7b2eb0b282..219cd3bad69b0ccf3e4913cba36b6dadc63466e0 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-71.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-71.js @@ -10,30 +10,36 @@ description: > Object.defineProperties throws TypeError when 'P' is data property and P.configurable is false, P.writable is false, desc is data property and desc.writable is true (8.12.9 step 10.a.i) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - Object.defineProperty(obj, "foo", { - value: 10, - writable: false, - configurable: false - }); - - try { - Object.defineProperties(obj, { - foo: { - writable: true - } - }); - return false; - } catch (e) { - return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false); + +var obj = {}; + +Object.defineProperty(obj, "foo", { + value: 10, + writable: false, + configurable: false +}); + +try { + Object.defineProperties(obj, { + foo: { + writable: true } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "foo", 10); + + verifyNotWritable(obj, "foo"); + + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-72.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-72.js index 8932e5856b171353e40a0a5ba77cf7cccdb9353e..c0ce53c7b6e1a4ead06c4b73a12c4a773bcfc548 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-72.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-72.js @@ -11,30 +11,36 @@ description: > and P.configurable is false, P.writable is false, desc is data property and desc.value is not equal to P.value (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - Object.defineProperty(obj, "foo", { - value: 10, - writable: false, - configurable: false - }); - - try { - Object.defineProperties(obj, { - foo: { - value: 20 - } - }); - return false; - } catch (e) { - return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false); + +var obj = {}; + +Object.defineProperty(obj, "foo", { + value: 10, + writable: false, + configurable: false +}); + +try { + Object.defineProperties(obj, { + foo: { + value: 20 } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "foo", 10); + + verifyNotWritable(obj, "foo"); + + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-73.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-73.js index 3e094e30b2c723c499861ad1d204bff8b1eefec0..e6c7139ec55a07aaa320179b23373f3065634fb8 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-73.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-73.js @@ -10,26 +10,27 @@ description: > Object.defineProperties will not throw TypeError if P.configurable is false, P.writalbe is false, P.value is undefined and properties.value is undefined (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: undefined, - writable: false, - configurable: false - }); +Object.defineProperty(obj, "foo", { + value: undefined, + writable: false, + configurable: false +}); - Object.defineProperties(obj, { - foo: { - value: undefined - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false); +Object.defineProperties(obj, { + foo: { + value: undefined } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", undefined); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-74.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-74.js index 2c304da322322990e8b32620817fd00d59f636f1..cce4df0db064f1a873d53eea492ddbaf4ecffd30 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-74.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-74.js @@ -10,26 +10,27 @@ description: > Object.defineProperties will not throw TypeError if P.configurable is false, P.writalbe is false, P.value is null and properties.value is null (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: null, - writable: false, - configurable: false - }); +Object.defineProperty(obj, "foo", { + value: null, + writable: false, + configurable: false +}); - Object.defineProperties(obj, { - foo: { - value: null - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", null, false, false, false); +Object.defineProperties(obj, { + foo: { + value: null } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", null); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-76.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-76.js index 554f369a2eb5817bb425cda3286a1e44af946fb3..c390c5e6a30bd24ccae8b1ed013f25b7c7c202b0 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-76.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-76.js @@ -10,30 +10,36 @@ description: > Object.defineProperties throws TypeError when P.configurable is false, P.writalbe is false, properties.value is +0 and P.value is -0 (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - Object.defineProperty(obj, "foo", { - value: -0, - writable: false, - configurable: false - }); - - try { - Object.defineProperties(obj, { - foo: { - value: +0 - } - }); - return false; - } catch (e) { - return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", -0, false, false, false); + +var obj = {}; + +Object.defineProperty(obj, "foo", { + value: -0, + writable: false, + configurable: false +}); + +try { + Object.defineProperties(obj, { + foo: { + value: +0 } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "foo", -0); + + verifyNotWritable(obj, "foo"); + + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-77.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-77.js index 34fe3b6c551905081a27dd4135500a110624db0b..34c416b757cfe40e4b17e96dd670de9caff6b1f0 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-77.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-77.js @@ -10,30 +10,36 @@ description: > Object.defineProperties throws TypeError when P.configurable is false, P.writalbe is false, properties.value is +0 and P.value is -0 (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - Object.defineProperty(obj, "foo", { - value: +0, - writable: false, - configurable: false - }); - - try { - Object.defineProperties(obj, { - foo: { - value: -0 - } - }); - return false; - } catch (e) { - return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", +0, false, false, false); + +var obj = {}; + +Object.defineProperty(obj, "foo", { + value: +0, + writable: false, + configurable: false +}); + +try { + Object.defineProperties(obj, { + foo: { + value: -0 } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "foo", +0); + + verifyNotWritable(obj, "foo"); + + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-78.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-78.js index cdf8636caa42beef89b635936d8eb14fef32dd91..ac83877ca1236cabc92bbfcdbdfb095b0ca07458 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-78.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-78.js @@ -10,27 +10,28 @@ description: > Object.defineProperties will not throw TypeError when P.configurable is false, P.writalbe is false, properties.value and P.value are two numbers with the same value (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: 100, - writable: false, - configurable: false - }); - - Object.defineProperties(obj, { - foo: { - value: 100 - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", 100, false, false, false); +Object.defineProperty(obj, "foo", { + value: 100, + writable: false, + configurable: false +}); +Object.defineProperties(obj, { + foo: { + value: 100 } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", 100); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-79.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-79.js index b4b9b841ac7134af24e56a68a11d5f55b2e0d4e4..9962e8a3b20c2a74be11cd5e48f3b0597a976684 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-79.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-79.js @@ -10,30 +10,36 @@ description: > Object.defineProperties throws TypeError when P.configurable is false, P.writalbe is false, properties.value and P.value are two numbers with different values (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - Object.defineProperty(obj, "foo", { - value: 10, - writable: false, - configurable: false - }); - - try { - Object.defineProperties(obj, { - foo: { - value: 20 - } - }); - return false; - } catch (e) { - return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false); + +var obj = {}; + +Object.defineProperty(obj, "foo", { + value: 10, + writable: false, + configurable: false +}); + +try { + Object.defineProperties(obj, { + foo: { + value: 20 } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "foo", 10); + + verifyNotWritable(obj, "foo"); + + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-80.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-80.js index b74bf81ddb126241359fc9f311d093cd32987799..a7c1116a48672e9bbd70ed88339b0de6d16d5ffd 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-80.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-80.js @@ -10,26 +10,27 @@ description: > Object.defineProperties will not throw TypeError when P.configurable is false, P.writalbe is false, properties.value and P.value are two strings with the same value (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: "abcd", - writable: false, - configurable: false - }); +Object.defineProperty(obj, "foo", { + value: "abcd", + writable: false, + configurable: false +}); - Object.defineProperties(obj, { - foo: { - value: "abcd" - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", "abcd", false, false, false); +Object.defineProperties(obj, { + foo: { + value: "abcd" } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", "abcd"); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-81.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-81.js index e0a225461e2de5f4c7f30d91f80778c04fba6292..ef2aefcb2b608ff46cacc2f9e72e031a522054d0 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-81.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-81.js @@ -10,30 +10,36 @@ description: > Object.defineProperties throws TypeError when P.configurable is false, P.writalbe is false, properties.value and P.value are two strings with different values (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - Object.defineProperty(obj, "foo", { - value: "abcd", - writable: false, - configurable: false - }); - - try { - Object.defineProperties(obj, { - foo: { - value: "defg" - } - }); - return false; - } catch (e) { - return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", "abcd", false, false, false); + +var obj = {}; + +Object.defineProperty(obj, "foo", { + value: "abcd", + writable: false, + configurable: false +}); + +try { + Object.defineProperties(obj, { + foo: { + value: "defg" } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "foo", "abcd"); + + verifyNotWritable(obj, "foo"); + + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-82.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-82.js index 8e8406a35faac2b12baee3226871cf65d4ead601..c4780dcfe2d442f11c97c875785c64a3c1081309 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-82.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-82.js @@ -11,26 +11,27 @@ description: > P.configurable is false, P.writalbe is false, properties.value and P.value are two booleans with the same value (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: false, - writable: false, - configurable: false - }); +Object.defineProperty(obj, "foo", { + value: false, + writable: false, + configurable: false +}); - Object.defineProperties(obj, { - foo: { - value: false - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", false, false, false, false); +Object.defineProperties(obj, { + foo: { + value: false } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", false); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-83.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-83.js index 5a0cf3c052b52f0f8d660e96e0f73c73a146d9f0..ca5cc8017ea59b5cfc5594295471171d9f52d999 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-83.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-83.js @@ -10,30 +10,36 @@ description: > Object.defineProperties throws TypeError when P.configurable is false, P.writalbe is false, properties.value and P.value are two booleans with different values (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - Object.defineProperty(obj, "foo", { - value: false, - writable: false, - configurable: false - }); - - try { - Object.defineProperties(obj, { - foo: { - value: true - } - }); - return false; - } catch (e) { - return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", false, false, false, false); + +var obj = {}; + +Object.defineProperty(obj, "foo", { + value: false, + writable: false, + configurable: false +}); + +try { + Object.defineProperties(obj, { + foo: { + value: true } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "foo", false); + + verifyNotWritable(obj, "foo"); + + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-84-1.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-84-1.js index c77f2379331af53a809b8b16e368065b356d3445..a99797fbcc873f97c47ac49305cdd371832adaca 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-84-1.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-84-1.js @@ -11,31 +11,32 @@ description: > P.configurable is false, P.writalbe is false, properties.value and P.value are two Objects refer to the same object which has been updated before use it to update the object (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - var obj1 = { length: 10 }; +var obj1 = { length: 10 }; - Object.defineProperty(obj, "foo", { - value: obj1, - writable: false, - configurable: false - }); +Object.defineProperty(obj, "foo", { + value: obj1, + writable: false, + configurable: false +}); - var obj2 = obj1; - obj2.y = "hello"; +var obj2 = obj1; +obj2.y = "hello"; - Object.defineProperties(obj, { - foo: { - value: obj2 - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", obj1, false, false, false); +Object.defineProperties(obj, { + foo: { + value: obj2 } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", obj1); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-84.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-84.js index d5f9f878f3145b92a404bf29d20c2f24917071e9..eca6d9640c52cc2cc2c7289d87c59f1b9282a5fa 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-84.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-84.js @@ -11,28 +11,29 @@ description: > P.configurable is false, P.writalbe is false, properties.value and P.value are two Objects refer to the same object (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - var obj1 = { length: 10 }; +var obj1 = { length: 10 }; - Object.defineProperty(obj, "foo", { - value: obj1, - writable: false, - configurable: false - }); +Object.defineProperty(obj, "foo", { + value: obj1, + writable: false, + configurable: false +}); - Object.defineProperties(obj, { - foo: { - value: obj1 - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", obj1, false, false, false); +Object.defineProperties(obj, { + foo: { + value: obj1 } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", obj1); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-85.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-85.js index 0e7b1f0e095bf8c07f02010cd40c2a9da6fb6bab..55e7b0a4c6b32b0b18203fa0b11453d9de95e508 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-85.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-85.js @@ -10,34 +10,40 @@ description: > Object.defineProperties throws TypeError when P.configurable is false, P.writalbe is false, properties.value and P.value are two objects with different values (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - var obj1 = { length: 10 }; +var obj1 = { length: 10 }; - Object.defineProperty(obj, "foo", { - value: obj1, - writable: false, - configurable: false - }); +Object.defineProperty(obj, "foo", { + value: obj1, + writable: false, + configurable: false +}); - var obj2 = { length: 20 }; +var obj2 = { length: 20 }; - try { - Object.defineProperties(obj, { - foo: { - value: obj2 - } - }); - return false; - } catch (e) { - return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", obj1, false, false, false); +try { + Object.defineProperties(obj, { + foo: { + value: obj2 } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "foo", obj1); + + verifyNotWritable(obj, "foo"); + + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-86-1.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-86-1.js index 0463add58931a05283a02d386cbae03da497c02b..6fcc136ce4d16f540bdd90056b4a20a70e3a0fe5 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-86-1.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-86-1.js @@ -11,36 +11,40 @@ description: > P.configurable is false, both properties.[[Set]] and P.[[Set]] are two objects which refer to the same object and the object has been updated after defined(8.12.9 step 11.a.i) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - var set_func = function (value) { - obj.setVerifyHelpProp = value; - } +var set_func = function (value) { + obj.setVerifyHelpProp = value; +}; - Object.defineProperty(obj, "foo", { - set: set_func, - configurable: false - }); +Object.defineProperty(obj, "foo", { + set: set_func, + configurable: false +}); - set_func = function (value) { - obj.setVerifyHelpProp1 = value; - } +set_func = function (value) { + obj.setVerifyHelpProp1 = value; +}; - try { - Object.defineProperties(obj, { - foo: { - set: set_func - } - }); - } catch (e) { - return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, set_func, "setVerifyHelpProp", false, false); +try { + Object.defineProperties(obj, { + foo: { + set: set_func } + }); +} catch (e) { + verifyWritable(obj, "foo", "setVerifyHelpProp"); + + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-86.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-86.js index 786272d8e2e5e8d3bf7d604a2d272183bd2dd50b..d4c37c42b2c0e7c4f94ab904c4b87138be315a18 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-86.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-86.js @@ -10,30 +10,29 @@ description: > Object.defineProperties will not throw TypeError when P.configurable is false, both properties.[[Set]] and P.[[Set]] are two objects which refer to the same object (8.12.9 step 11.a.i) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function set_func(value) { - obj.setVerifyHelpProp = value; - } +function set_func(value) { + obj.setVerifyHelpProp = value; +} - Object.defineProperty(obj, "foo", { - set: set_func, - configurable: false - }); - - Object.defineProperties(obj, { - foo: { - set: set_func - } - }); - return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, set_func, "setVerifyHelpProp", false, false); +Object.defineProperty(obj, "foo", { + set: set_func, + configurable: false +}); +Object.defineProperties(obj, { + foo: { + set: set_func } -runTestCase(testcase); +}); +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-87.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-87.js index d06e7f74444271f042727b8f543eef572a494f37..e362b223194d84957bd7b1fe3ebd7583038cd5b5 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-87.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-87.js @@ -10,36 +10,40 @@ description: > Object.defineProperties throws TypeError when P.configurable is false, both properties.[[Set]] and P.[[Set]] are two objects which refer to different objects (8.12.9 step 11.a.i) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function set_func1(value) { - obj.setVerifyHelpProp = value; - } +function set_func1(value) { + obj.setVerifyHelpProp = value; +} + +Object.defineProperty(obj, "foo", { + set: set_func1, + configurable: false +}); - Object.defineProperty(obj, "foo", { - set: set_func1, - configurable: false - }); - - function set_func2() {} - - try { - Object.defineProperties(obj, { - foo: { - set: set_func2 - } - }); - return false; - } catch (e) { - return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(obj, "foo", undefined, set_func1, "setVerifyHelpProp", false, false); +function set_func2() {} + +try { + Object.defineProperties(obj, { + foo: { + set: set_func2 } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyWritable(obj, "foo", "setVerifyHelpProp"); + + verifyNotEnumerable(obj, "foo"); + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-88.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-88.js index c2f741608b913609a152d8718e9da544cb78d8e4..ae3969da10cbcb1db5baee29268f2988dcb1aca1 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-88.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-88.js @@ -9,49 +9,46 @@ es5id: 15.2.3.7-6-a-88 description: > Object.defineProperties throws TypeError when P.configurable is false, P.[[Set]] is undefined, properties.[[Set]] refers to an - objcet (8.12.9 step 11.a.i) -includes: [runTestCase.js] + object (8.12.9 step 11.a.i) +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function get_Func() { - return 0; - } +function get_Func() { + return 0; +} + +Object.defineProperty(obj, "foo", { + set: undefined, + get: get_Func, + enumerable: false, + configurable: false +}); + +function set_Func() {} - Object.defineProperty(obj, "foo", { - set: undefined, - get: get_Func, - enumerable: false, - configurable: false - }); - - function set_Func() { } - - try { - Object.defineProperties(obj, { - foo: { - set: set_Func - } - }); - return false; - } catch (e) { - var verifyEnumerable = false; - for (var p in obj) { - if (p === "foo") { - verifyEnumerable = true; - } - } - - var desc = Object.getOwnPropertyDescriptor(obj, "foo"); - - var verifyConfigurable = false; - delete obj.foo; - verifyConfigurable = obj.hasOwnProperty("foo"); - - return e instanceof TypeError && !verifyEnumerable && verifyConfigurable && typeof (desc.set) === "undefined"; +try { + Object.defineProperties(obj, { + foo: { + set: set_Func } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + var desc = Object.getOwnPropertyDescriptor(obj, "foo"); + + if (typeof (desc.set) !== "undefined") { + $ERROR('Expected typeof (desc.set) === "undefined", actually ' + typeof (desc.set)); } -runTestCase(testcase); + + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-89.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-89.js index 208bbd3b0d54fe19d8b35783d7f38d1a93de9af4..d2585dbe50e13ef4d78d471b98063bdce5b121db 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-89.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-89.js @@ -10,43 +10,35 @@ description: > Object.defineProperties will not throw TypeError when P.configurable is false, P.[[Set]] and properties.[[Set]] are undefined (8.12.9 step 11.a.i) -includes: [runTestCase.js] +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function get_Func() { - return 0; - } +function get_Func() { + return 0; +} - Object.defineProperty(obj, "foo", { - get: get_Func, - set: undefined, - enumerable: false, - configurable: false - }); +Object.defineProperty(obj, "foo", { + get: get_Func, + set: undefined, + enumerable: false, + configurable: false +}); - Object.defineProperties(obj, { - foo: { - set: undefined - } - }); +Object.defineProperties(obj, { + foo: { + set: undefined + } +}); - var verifyEnumerable = false; - for (var p in obj) { - if (p === "foo") { - verifyEnumerable = true; - } - } +verifyNotEnumerable(obj, "foo"); - var desc = Object.getOwnPropertyDescriptor(obj, "foo"); +verifyNotConfigurable(obj, "foo"); - var verifyConfigurable = false; - delete obj.foo; - verifyConfigurable = obj.hasOwnProperty("foo"); +var desc = Object.getOwnPropertyDescriptor(obj, "foo"); - return verifyConfigurable && !verifyEnumerable && typeof (desc.set) === "undefined"; - } -runTestCase(testcase); +if (typeof (desc.set) !== "undefined") { + $ERROR('Expected typeof (desc.set) === "undefined", actually ' + typeof (desc.set)); +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-90.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-90.js index c453b3347b3e063875cc8e0f54f34bf70f4792de..64b2a20c324e63624bdb97b5388714baa318352b 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-90.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-90.js @@ -10,34 +10,35 @@ description: > Object.defineProperties will not throw TypeError when P.configurable is false, both properties.[[Get]] and P.[[Get]] are two objects which refer to the same object (8.12.9 step 11.a.ii) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - function set_func(value) { - obj.setVerifyHelpProp = value; - } - function get_func() { - return 10; - } - - Object.defineProperty(obj, "foo", { - get: get_func, - set: set_func, - enumerable: false, - configurable: false - }); - - Object.defineProperties(obj, { - foo: { - get: get_func - } - }); - return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "setVerifyHelpProp", false, false); + +var obj = {}; + +function set_func(value) { + obj.setVerifyHelpProp = value; +} +function get_func() { + return 10; +} + +Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: false, + configurable: false +}); + +Object.defineProperties(obj, { + foo: { + get: get_func } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", get_func()); + +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-91.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-91.js index 0af65538ef6dd9bd986c1fdde2d32829c17faef6..19eb741305b10995b3e744312ea3da008c431e8b 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-91.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-91.js @@ -10,43 +10,49 @@ description: > Object.defineProperties throws TypeError when P.configurable is false, both properties.[[Get]] and P.[[Get]] are two objects which refer to different objects (8.12.9 step 11.a.ii) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function set_func(value) { - obj.setVerifyHelpProp = value; - } - function get_func1() { - return 10; - } +function set_func(value) { + obj.setVerifyHelpProp = value; +} +function get_func1() { + return 10; +} - Object.defineProperty(obj, "foo", { - get: get_func1, - set: set_func, - enumerable: false, - configurable: false - }); +Object.defineProperty(obj, "foo", { + get: get_func1, + set: set_func, + enumerable: false, + configurable: false +}); - function get_func2() { - return 20; - } +function get_func2() { + return 20; +} - try { - Object.defineProperties(obj, { - foo: { - get: get_func2 - } - }); - return false; - } catch (e) { - return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(obj, "foo", get_func1, set_func, "setVerifyHelpProp", false, false); +try { + Object.defineProperties(obj, { + foo: { + get: get_func2 } + }); + $ERROR("Expected an exception"); +} catch (e) { + verifyEqualTo(obj, "foo", get_func1()); + + verifyWritable(obj, "foo", "setVerifyHelpProp"); + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} + diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-92.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-92.js index de8e0f3a4c022f7517d15555390e92d33cae7799..ff7d6d99393d00f8b43272b222145467446957ce 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-92.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-92.js @@ -10,39 +10,43 @@ description: > Object.defineProperties throws TypeError when P.configurable is false, P.[[Get]] is undefined, properties.[[Get]] refers to an objcet (8.12.9 step 11.a.ii) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function set_func(value) { - obj.setVerifyHelpProp = value; - } +function set_func(value) { + obj.setVerifyHelpProp = value; +} - Object.defineProperty(obj, "foo", { - get: undefined, - set: set_func, - enumerable: false, - configurable: false - }); +Object.defineProperty(obj, "foo", { + get: undefined, + set: set_func, + enumerable: false, + configurable: false +}); - function get_func() { - return 0; - } +function get_func() { + return 0; +} - try { - Object.defineProperties(obj, { - foo: { - get: get_func - } - }); - return false; - } catch (e) { - return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(obj, "foo", undefined, set_func, "setVerifyHelpProp", false, false); +try { + Object.defineProperties(obj, { + foo: { + get: get_func } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyWritable(obj, "foo", "setVerifyHelpProp"); + + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-1.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-1.js index 0eb423ff4c960779c64999bf9793f5f3a222c218..a5c1b5d93e32b5c96fae67d6d76b2aed0b46fc6b 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-1.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-1.js @@ -11,42 +11,53 @@ description: > data property 'P' successfully when [[Configurable]] attribute is true and [[Writable]] attribute is false but not when both are false (8.12.9 - step Note & 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - Object.defineProperty(obj, "property", { - value: 1001, - writable: false, - configurable: true - }); - - Object.defineProperty(obj, "property1", { - value: 1003, - writable: false, - configurable: false - }); - - try { - Object.defineProperties(obj, { - property: { - value: 1002 - }, - property1: { - value: 1004 - } - }); - - return false; - } catch (e) { - return e instanceof TypeError && - dataPropertyAttributesAreCorrect(obj, "property", 1002, false, false, true) && - dataPropertyAttributesAreCorrect(obj, "property1", 1003, false, false, false); + +var obj = {}; + +Object.defineProperty(obj, "property", { + value: 1001, + writable: false, + configurable: true +}); + +Object.defineProperty(obj, "property1", { + value: 1003, + writable: false, + configurable: false +}); + +try { + Object.defineProperties(obj, { + property: { + value: 1002 + }, + property1: { + value: 1004 } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "property", 1002); + + verifyNotWritable(obj, "property"); + + verifyNotEnumerable(obj, "property"); + + verifyConfigurable(obj, "property"); + verifyEqualTo(obj, "property1", 1003); + + verifyNotWritable(obj, "property1"); + + verifyNotEnumerable(obj, "property1"); + + verifyNotConfigurable(obj, "property1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-2.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-2.js index 1c00fce1a57cfafbd543c3300bba609c22a846f8..c0241c48e793b02a725a6898925fa8a41b446dcb 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-2.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-2.js @@ -11,42 +11,53 @@ description: > data property 'P' successfully when [[Configurable]] attribute is true and [[Writable]] attribute is false but not when both are false (8.12.9 - step Note & 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - Object.defineProperty(obj, "0", { - value: 1001, - writable: false, - configurable: true - }); - - Object.defineProperty(obj, "1", { - value: 1003, - writable: false, - configurable: false - }); - - try { - Object.defineProperties(obj, { - 0: { - value: 1002 - }, - 1: { - value: 1004 - } - }); - - return false; - } catch (e) { - return e instanceof TypeError && - dataPropertyAttributesAreCorrect(obj, "0", 1002, false, false, true) && - dataPropertyAttributesAreCorrect(obj, "1", 1003, false, false, false); + +var obj = {}; + +Object.defineProperty(obj, "0", { + value: 1001, + writable: false, + configurable: true +}); + +Object.defineProperty(obj, "1", { + value: 1003, + writable: false, + configurable: false +}); + +try { + Object.defineProperties(obj, { + 0: { + value: 1002 + }, + 1: { + value: 1004 } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "0", 1002); + + verifyNotWritable(obj, "0"); + + verifyNotEnumerable(obj, "0"); + + verifyConfigurable(obj, "0"); + verifyEqualTo(obj, "1", 1003); + + verifyNotWritable(obj, "1"); + + verifyNotEnumerable(obj, "1"); + + verifyNotConfigurable(obj, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-3.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-3.js index bb2d61cf191c98faac5474038929d9e11f7d9ae1..64097926a639cfcd5ab4702e1fe0476cdd94636c 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-3.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-3.js @@ -7,46 +7,57 @@ /*--- es5id: 15.2.3.7-6-a-93-3 description: > - Object.defineProperties will not fail to update [[Value]] - attribute of named data property 'P' when [[Configurable]] - attribute of first updating property is false (8.12.9 - step Note - & 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js + Object.defineProperties will not fail to update [[Value]] attribute of + named data property 'P' when [[Configurable]] attribute of first + updating property is false (8.12.9 - step Note & 10.a.ii.1) +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - Object.defineProperty(obj, "property", { - value: 1001, - writable: false, - configurable: false - }); - - Object.defineProperty(obj, "property1", { - value: 1003, - writable: false, - configurable: true - }); - - try { - Object.defineProperties(obj, { - property: { - value: 1002 - }, - property1: { - value: 1004 - } - }); - - return false; - } catch (e) { - return e instanceof TypeError && - dataPropertyAttributesAreCorrect(obj, "property", 1001, false, false, false) && - dataPropertyAttributesAreCorrect(obj, "property1", 1004, false, false, true); + +var obj = {}; + +Object.defineProperty(obj, "property", { + value: 1001, + writable: false, + configurable: false +}); + +Object.defineProperty(obj, "property1", { + value: 1003, + writable: false, + configurable: true +}); + +try { + Object.defineProperties(obj, { + property: { + value: 1002 + }, + property1: { + value: 1004 } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "property", 1001); + + verifyNotWritable(obj, "property"); + + verifyNotEnumerable(obj, "property"); + + verifyNotConfigurable(obj, "property"); + + verifyEqualTo(obj, "property1", 1003); + + verifyNotWritable(obj, "property1"); + + verifyNotEnumerable(obj, "property1"); + + verifyConfigurable(obj, "property1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-4.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-4.js index 151a5f83936797ad86a00595e4c4a8644629a8a1..f758752eb06e3551dd6538312359631228c08caa 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-4.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-4.js @@ -7,46 +7,56 @@ /*--- es5id: 15.2.3.7-6-a-93-4 description: > - Object.defineProperties will not fail to update [[Value]] - attribute of indexed data property 'P' when [[Configurable]] - attribute of first updating property are false (8.12.9 - step - Note & 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js + Object.defineProperties will not fail to update [[Value]] attribute of + indexed data property 'P' when [[Configurable]] attribute of first + updating property are false (8.12.9 - step Note & 10.a.ii.1) +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - Object.defineProperty(obj, "0", { - value: 1001, - writable: false, - configurable: false - }); - - Object.defineProperty(obj, "1", { - value: 1003, - writable: false, - configurable: true - }); - - try { - Object.defineProperties(obj, { - 0: { - value: 1002 - }, - 1: { - value: 1004 - } - }); - - return false; - } catch (e) { - return e instanceof TypeError && - dataPropertyAttributesAreCorrect(obj, "0", 1001, false, false, false) && - dataPropertyAttributesAreCorrect(obj, "1", 1004, false, false, true); + +var obj = {}; + +Object.defineProperty(obj, "0", { + value: 1001, + writable: false, + configurable: false +}); + +Object.defineProperty(obj, "1", { + value: 1003, + writable: false, + configurable: true +}); + +try { + Object.defineProperties(obj, { + 0: { + value: 1002 + }, + 1: { + value: 1004 } + }); + + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "0", 1001); + + verifyNotWritable(obj, "0"); + + verifyNotEnumerable(obj, "0"); + + verifyNotConfigurable(obj, "0"); + verifyEqualTo(obj, "1", 1003); + + verifyNotWritable(obj, "1"); + + verifyNotEnumerable(obj, "1"); + + verifyConfigurable(obj, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93.js index 9b472a691dfee571a3655643c4a8e48349973f61..0b6e28ff2c00049461776c15faf06cb74e37d73c 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93.js @@ -10,31 +10,30 @@ description: > Object.defineProperties will not throw TypeError when P.configurable is false, P.[[Get]] and properties.[[Get]] are undefined (8.12.9 step 11.a.ii) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function set_func(value) { - obj.setVerifyHelpProp = value; - } +function set_func(value) { + obj.setVerifyHelpProp = value; +} - Object.defineProperty(obj, "foo", { - get: undefined, - set: set_func, - enumerable: false, - configurable: false - }); +Object.defineProperty(obj, "foo", { + get: undefined, + set: set_func, + enumerable: false, + configurable: false +}); - Object.defineProperties(obj, { - foo: { - get: undefined - } - }); - return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, set_func, "setVerifyHelpProp", false, false); +Object.defineProperties(obj, { + foo: { + get: undefined } -runTestCase(testcase); +}); +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-94.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-94.js index 9f95b6b70e9f3b4c3c2e3aba767da17db760d95e..540f38bb3e1ebd03ac1b7d77726541c862a963e7 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-94.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-94.js @@ -9,22 +9,23 @@ es5id: 15.2.3.7-6-a-94 description: > Object.defineProperties - 'P' is data property, properties.value and P.value are two different values (8.12.9 step 12) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - obj.foo = 100; // default value of attributes: writable: true, configurable: true, enumerable: true +obj.foo = 100; // default value of attributes: writable: true, configurable: true, enumerable: true - Object.defineProperties(obj, { - foo: { - value: 200 - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", 200, true, true, true); +Object.defineProperties(obj, { + foo: { + value: 200 } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", 200); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-95.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-95.js index 3ecad959c540c25ba0b3612a35622ae037377c8d..b2f1219dc9f8b146b99f0a1828f86b954a277d0f 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-95.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-95.js @@ -9,27 +9,28 @@ es5id: 15.2.3.7-6-a-95 description: > Object.defineProperties - 'P' is data property, P.value is present and properties.value is undefined (8.12.9 step 12) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: 200, - enumerable: true, - writable: true, - configurable: true - }); +Object.defineProperty(obj, "foo", { + value: 200, + enumerable: true, + writable: true, + configurable: true +}); - Object.defineProperties(obj, { - foo: { - value: undefined - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", undefined, true, true, true); +Object.defineProperties(obj, { + foo: { + value: undefined } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", undefined); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-96.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-96.js index 931496de96080c9a9bbb110501a93b306f89f2ac..9ec5a182e25a9038570dd440c250be589da1e801 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-96.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-96.js @@ -9,27 +9,28 @@ es5id: 15.2.3.7-6-a-96 description: > Object.defineProperties - 'P' is data property, properties.value is present and P.value is undefined (8.12.9 step 12) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: undefined, - enumerable: true, - writable: true, - configurable: true - }); +Object.defineProperty(obj, "foo", { + value: undefined, + enumerable: true, + writable: true, + configurable: true +}); - Object.defineProperties(obj, { - foo: { - value: 200 - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", 200, true, true, true); +Object.defineProperties(obj, { + foo: { + value: 200 } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", 200); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-97.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-97.js index a666b975bf5300401aec85b89fd5154ff1749895..2ea879c24d188d257cdd372a7859e7b1c53bbb0f 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-97.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-97.js @@ -9,27 +9,28 @@ es5id: 15.2.3.7-6-a-97 description: > Object.defineProperties - 'P' is data property, P.writable and properties.writable are different values (8.12.9 step 12) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: 100, - enumerable: true, - writable: false, - configurable: true - }); +Object.defineProperty(obj, "foo", { + value: 100, + enumerable: true, + writable: false, + configurable: true +}); - Object.defineProperties(obj, { - foo: { - writable: true - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", 100, true, true, true); +Object.defineProperties(obj, { + foo: { + writable: true } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", 100); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-98.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-98.js index c9a1cf1a13ee608652f5deaafabb2d0da386a8fc..c8476cf65bb1a10fd5ac26108fca20f5d3e055db 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-98.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-98.js @@ -9,27 +9,28 @@ es5id: 15.2.3.7-6-a-98 description: > Object.defineProperties - 'P' is data property, P.enumerable and properties.enumerable are different values (8.12.9 step 12) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: 200, - enumerable: false, - writable: true, - configurable: true - }); +Object.defineProperty(obj, "foo", { + value: 200, + enumerable: false, + writable: true, + configurable: true +}); - Object.defineProperties(obj, { - foo: { - enumerable: true - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", 200, true, true, true); +Object.defineProperties(obj, { + foo: { + enumerable: true } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", 200); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-99.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-99.js index bafcc5943a379713a689f6d391bf0cc480bdf86c..43698b62f739a21c51826f010d68a2c50a00fb4a 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-99.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-99.js @@ -9,27 +9,28 @@ es5id: 15.2.3.7-6-a-99 description: > Object.defineProperties - 'P' is data property, P.configurable is true and properties.configurable is false -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: 200, - enumerable: true, - writable: true, - configurable: true - }); +Object.defineProperty(obj, "foo", { + value: 200, + enumerable: true, + writable: true, + configurable: true +}); - Object.defineProperties(obj, { - foo: { - configurable: false - } - }); - return dataPropertyAttributesAreCorrect(obj, "foo", 200, true, true, false); +Object.defineProperties(obj, { + foo: { + configurable: false } -runTestCase(testcase); +}); +verifyEqualTo(obj, "foo", 200); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-100.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-100.js index 316211f30e84d22f646c7a0ee7473783b5947514..9e89261a0676a56fc301303cd4bfe0308af46865 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-100.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-100.js @@ -9,20 +9,21 @@ es5id: 15.2.3.6-4-100 description: > Object.defineProperty - 'name' and 'desc' are data properties, desc.value and name.value are two different values (8.12.9 step 12) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { +var obj = {}; - var obj = {}; +obj.foo = 100; // default value of attributes: writable: true, configurable: true, enumerable: true - obj.foo = 100; // default value of attributes: writable: true, configurable: true, enumerable: true +Object.defineProperty(obj, "foo", { + value: 200 +}); +verifyEqualTo(obj, "foo", 200); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); - Object.defineProperty(obj, "foo", { - value: 200 - }); - return dataPropertyAttributesAreCorrect(obj, "foo", 200, true, true, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-101.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-101.js index 6c477c90407d26b66c6b84750620147d10c0447a..47f463c45e4bc7b1545dc043622cd527acd58811 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-101.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-101.js @@ -9,18 +9,19 @@ es5id: 15.2.3.6-4-101 description: > Object.defineProperty - 'name' and 'desc' are data properties, name.value is present and desc.value is undefined (8.12.9 step 12) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { +var obj = {}; - var obj = {}; +obj.foo = 100; // default value of attributes: writable: true, configurable: true, enumerable: true - obj.foo = 100; // default value of attributes: writable: true, configurable: true, enumerable: true +Object.defineProperty(obj, "foo", { value: undefined }); +verifyEqualTo(obj, "foo", undefined); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); - Object.defineProperty(obj, "foo", { value: undefined }); - return dataPropertyAttributesAreCorrect(obj, "foo", undefined, true, true, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-102.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-102.js index f9d96c6bc31a03d93388c1195d14fa6eeab3bf93..e3e4e66a79879b714d2417dd984e3f8942f2b3a2 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-102.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-102.js @@ -9,18 +9,19 @@ es5id: 15.2.3.6-4-102 description: > Object.defineProperty - 'name' and 'desc' are data properties, desc.value is present and name.value is undefined (8.12.9 step 12) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { +var obj = {}; - var obj = {}; +obj.foo = undefined; // default value of attributes: writable: true, configurable: true, enumerable: true - obj.foo = undefined; // default value of attributes: writable: true, configurable: true, enumerable: true +Object.defineProperty(obj, "foo", { value: 100 }); +verifyEqualTo(obj, "foo", 100); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); - Object.defineProperty(obj, "foo", { value: 100 }); - return dataPropertyAttributesAreCorrect(obj, "foo", 100, true, true, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-103.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-103.js index 89ab24562aa62ced7514400d2f1c662469d8c223..0f166f326f6587a074afb7d23f877716b24033c8 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-103.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-103.js @@ -10,22 +10,23 @@ description: > Object.defineProperty - 'name' and 'desc' are data properties, name.writable and desc.writable are different values (8.12.9 step 12) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { +var obj = {}; - var obj = {}; +Object.defineProperty(obj, "foo", { + writable: false, configurable: true +}); - Object.defineProperty(obj, "foo", { - writable: false, configurable: true - }); +Object.defineProperty(obj, "foo", { + writable: true +}); +verifyEqualTo(obj, "foo", undefined); + +verifyWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); - Object.defineProperty(obj, "foo", { - writable: true - }); - return dataPropertyAttributesAreCorrect(obj, "foo", undefined, true, false, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-104.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-104.js index 4c7c0fd4fb860c483c19a5f5764936418d222968..92d14c428b3f52b37383e62d44066fe4ab988177 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-104.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-104.js @@ -10,23 +10,24 @@ description: > Object.defineProperty - 'name' and 'desc' are data properties, name.enumerable and desc.enumerable are different values (8.12.9 step 12) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { +var obj = {}; - var obj = {}; +Object.defineProperty(obj, "foo", { + enumerable: false, + configurable: true +}); - Object.defineProperty(obj, "foo", { - enumerable: false, - configurable: true - }); +Object.defineProperty(obj, "foo", { + enumerable: true +}); +verifyEqualTo(obj, "foo", undefined); + +verifyNotWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); - Object.defineProperty(obj, "foo", { - enumerable: true - }); - return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, true, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-105.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-105.js index 5e6304857cf12faf68099254c4f471c839c86517..0ab2b1afe418bf36e10103bff4d382d9c514fe61 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-105.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-105.js @@ -10,26 +10,27 @@ description: > Object.defineProperty - 'name' and 'desc' are data properties, name.configurable = true and desc.configurable = false (8.12.9 step 12) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { +var obj = {}; - var obj = {}; +Object.defineProperty(obj, "foo", { + value: 200, + enumerable: true, + writable: true, + configurable: true +}); - Object.defineProperty(obj, "foo", { - value: 200, - enumerable: true, - writable: true, - configurable: true - }); +Object.defineProperty(obj, "foo", { + configurable: false +}); + +verifyEqualTo(obj, "foo", 200); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); - Object.defineProperty(obj, "foo", { - configurable: false - }); - - return dataPropertyAttributesAreCorrect(obj, "foo", 200, true, true, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-106.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-106.js index a5e4fa4a448ec301eec3eb9c8eecdf13c25b6e9f..95cac3bf107750b9bd9697ec14b6474dee2718c3 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-106.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-106.js @@ -10,27 +10,28 @@ description: > Object.defineProperty - 'name' and 'desc' are data properties, several attributes values of name and desc are different (8.12.9 step 12) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - Object.defineProperty(obj, "foo", { - value: 100, - writable: true, - enumerable: true, - configurable: true - }); - - Object.defineProperty(obj, "foo", { - value: 200, - writable: false, - enumerable: false - }); - return dataPropertyAttributesAreCorrect(obj, "foo", 200, false, false, true); - } -runTestCase(testcase); +var obj = {}; + +Object.defineProperty(obj, "foo", { + value: 100, + writable: true, + enumerable: true, + configurable: true +}); + +Object.defineProperty(obj, "foo", { + value: 200, + writable: false, + enumerable: false +}); +verifyEqualTo(obj, "foo", 200); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); + diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-107.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-107.js index c6cc0d47e59962c6cb4d8f0d81dc74f6d11d9ef5..92bda0373bec07cf95173484bf4f7e9944e39224 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-107.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-107.js @@ -10,36 +10,37 @@ description: > Object.defineProperty - 'name' and 'desc' are accessor properties, both desc.[[Get]] and name.[[Get]] are two different values (8.12.9 step 12) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function getFunc() { - return 10; - } +function getFunc() { + return 10; +} - function setFunc(value) { - obj.setVerifyHelpProp = value; - } +function setFunc(value) { + obj.setVerifyHelpProp = value; +} - Object.defineProperty(obj, "foo", { - get: getFunc, - set: setFunc, - configurable: true - }); +Object.defineProperty(obj, "foo", { + get: getFunc, + set: setFunc, + configurable: true +}); - function getFunc2() { - return 20; - } +function getFunc2() { + return 20; +} - Object.defineProperty(obj, "foo", { - get: getFunc2 - }); - return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc2, setFunc, "setVerifyHelpProp", false, true); - } -runTestCase(testcase); +Object.defineProperty(obj, "foo", { + get: getFunc2 +}); +verifyEqualTo(obj, "foo", getFunc2()); + +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyNotEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-108.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-108.js index 3d28dcb761111f80da1b1cd85fc670fe3828fdf6..73dfa3dec90937d70c8b5f9e291d0fa2d3ceb198 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-108.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-108.js @@ -10,34 +10,33 @@ description: > Object.defineProperty - 'name' and 'desc' are accessor properties, name.[[Get]] is present and desc.[[Get]] is undefined (8.12.9 step 12) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function getFunc() { - return 10; - } +function getFunc() { + return 10; +} - function setFunc(value) { - obj.setVerifyHelpProp = value; - } +function setFunc(value) { + obj.setVerifyHelpProp = value; +} - Object.defineProperty(obj, "foo", { - get: getFunc, - set: setFunc, - enumerable: true, - configurable: true - }); +Object.defineProperty(obj, "foo", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true +}); - Object.defineProperty(obj, "foo", { - set: setFunc, - get: undefined - }); - return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, setFunc, "setVerifyHelpProp", true, true); - } -runTestCase(testcase); +Object.defineProperty(obj, "foo", { + set: setFunc, + get: undefined +}); +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-109.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-109.js index 7b5c9b39a5c67558bfa76393841aec7c48addfe3..35bcf73bd708070b7e203b7211d7f7e117651caf 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-109.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-109.js @@ -10,32 +10,33 @@ description: > Object.defineProperty - 'name' and 'desc' are accessor properties, name.[[Get]] is undefined and desc.[[Get]] is function (8.12.9 step 12) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; - - function setFunc(value) { - obj.setVerifyHelpProp = value; - } - - Object.defineProperty(obj, "foo", { - set: setFunc, - get: undefined, - enumerable: true, - configurable: true - }); - - function getFunc() { - return 10; - } - - Object.defineProperty(obj, "foo", { - get: getFunc - }); - return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, setFunc, "setVerifyHelpProp", true, true); - } -runTestCase(testcase); +var obj = {}; + +function setFunc(value) { + obj.setVerifyHelpProp = value; +} + +Object.defineProperty(obj, "foo", { + set: setFunc, + get: undefined, + enumerable: true, + configurable: true +}); + +function getFunc() { + return 10; +} + +Object.defineProperty(obj, "foo", { + get: getFunc +}); +verifyEqualTo(obj, "foo", getFunc()); + +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-110.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-110.js index 52eb4a67a18d03dac6e02cb5624952dc9c880c84..cf5f75b6fdc2e2e8a2a974d4d4ba645ebda70ef8 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-110.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-110.js @@ -10,32 +10,31 @@ description: > Object.defineProperty - 'name' and 'desc' are accessor properties, both desc.[[Set]] and name.[[Set]] are two different values (8.12.9 step 12) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function setFunc1() { - return 10; - } +function setFunc1() { + return 10; +} - Object.defineProperty(obj, "foo", { - set: setFunc1, - enumerable: true, - configurable: true - }); +Object.defineProperty(obj, "foo", { + set: setFunc1, + enumerable: true, + configurable: true +}); - function setFunc2(value) { - obj.setVerifyHelpProp = value; - } +function setFunc2(value) { + obj.setVerifyHelpProp = value; +} - Object.defineProperty(obj, "foo", { - set: setFunc2 - }); - return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, setFunc2, "setVerifyHelpProp", true, true); - } -runTestCase(testcase); +Object.defineProperty(obj, "foo", { + set: setFunc2 +}); +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-112.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-112.js index 9fecb9176316df15740a86b3a724475be081f4a4..993240de38f088d0ea6122a91d1ae66d6ae1560a 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-112.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-112.js @@ -10,33 +10,34 @@ description: > Object.defineProperty - 'name' and 'desc' are accessor properties, name.[[Set]] is undefined and desc.[[Set]] is function (8.12.9 step 12) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function getFunc() { - return 10; - } +function getFunc() { + return 10; +} - Object.defineProperty(obj, "foo", { - set: undefined, - get: getFunc, - enumerable: true, - configurable: true - }); +Object.defineProperty(obj, "foo", { + set: undefined, + get: getFunc, + enumerable: true, + configurable: true +}); - function setFunc(value) { - obj.setVerifyHelpProp = value; - } +function setFunc(value) { + obj.setVerifyHelpProp = value; +} - Object.defineProperty(obj, "foo", { - set: setFunc - }); - return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, setFunc, "setVerifyHelpProp", true, true); - } -runTestCase(testcase); +Object.defineProperty(obj, "foo", { + set: setFunc +}); +verifyEqualTo(obj, "foo", getFunc()); + +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-113.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-113.js index 3da8fe015bdab8660408e45439b89b06b25bf1d0..30deb96057b81060cd5fe8f003a0be22dd8fe2e9 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-113.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-113.js @@ -10,30 +10,29 @@ description: > Object.defineProperty - 'name' and 'desc' are accessor properties, name.enumerable and desc.enumerable are different values (8.12.9 step 12) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function getFunc() { - return 10; - } +function getFunc() { + return 10; +} - Object.defineProperty(obj, "foo", { - get: getFunc, - enumerable: true, - configurable: true - }); +Object.defineProperty(obj, "foo", { + get: getFunc, + enumerable: true, + configurable: true +}); - Object.defineProperty(obj, "foo", { - get: getFunc, - enumerable: false - }); +Object.defineProperty(obj, "foo", { + get: getFunc, + enumerable: false +}); - return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, undefined, undefined, false, true); - } -runTestCase(testcase); +verifyEqualTo(obj, "foo", getFunc()); + +verifyNotEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-114.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-114.js index 3b40963bb1ae0f5a9e766eda294f4700c65fae14..bb9e4ad3fc3d297431ea014c377d49f9085d09fc 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-114.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-114.js @@ -10,33 +10,34 @@ description: > Object.defineProperty - 'name' and 'desc' are accessor properties, name.configurable = true and desc.configurable = false (8.12.9 step 12) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function setFunc(value) { - obj.setVerifyHelpProp = value; - } +function setFunc(value) { + obj.setVerifyHelpProp = value; +} - function getFunc() { - return 10; - } +function getFunc() { + return 10; +} - Object.defineProperty(obj, "foo", { - get: getFunc, - set: setFunc, - configurable: true - }); +Object.defineProperty(obj, "foo", { + get: getFunc, + set: setFunc, + configurable: true +}); - Object.defineProperty(obj, "foo", { - get: getFunc, - configurable: false - }); - return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, setFunc, "setVerifyHelpProp", false, false); - } -runTestCase(testcase); +Object.defineProperty(obj, "foo", { + get: getFunc, + configurable: false +}); +verifyEqualTo(obj, "foo", getFunc()); + +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-115.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-115.js index 639e979f4f272c63748bfcf36244f3be6120f9c4..2eb0e428cdcaa0eb7a3b3021f59322a92a8fa953 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-115.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-115.js @@ -10,38 +10,39 @@ description: > Object.defineProperty - 'name' and 'desc' are accessor properties, several attributes values of 'name' and 'desc' are different (8.12.9 step 12) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - function getFunc1() { - return 10; - } - function setFunc1() {} - - Object.defineProperty(obj, "foo", { - get: getFunc1, - set: setFunc1, - enumerable: true, - configurable: true - }); - - function getFunc2() { - return 20; - } - function setFunc2(value) { - obj.setVerifyHelpProp = value; - } - Object.defineProperty(obj, "foo", { - get: getFunc2, - set: setFunc2, - enumerable: false - }); - return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc2, setFunc2, "setVerifyHelpProp", false, true); - } -runTestCase(testcase); + +var obj = {}; + +function getFunc1() { + return 10; +} +function setFunc1() {} + +Object.defineProperty(obj, "foo", { + get: getFunc1, + set: setFunc1, + enumerable: true, + configurable: true +}); + +function getFunc2() { + return 20; +} +function setFunc2(value) { + obj.setVerifyHelpProp = value; +} +Object.defineProperty(obj, "foo", { + get: getFunc2, + set: setFunc2, + enumerable: false +}); +verifyEqualTo(obj, "foo", getFunc2()); + +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyNotEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-124.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-124.js index 71160001b9fca9340e6bcda3e60ffa968a648259..7e787f5859f8f9f2a04ac71dc9ebe65cc8650cd3 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-124.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-124.js @@ -11,18 +11,19 @@ description: > property of 'O', the [[Value]] field of 'desc' is absent, test updating the [[Writable]] attribute of the length property from true to false (15.4.5.1 step 3.a.i) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { +var arrObj = []; - var arrObj = []; +Object.defineProperty(arrObj, "length", { + writable: false +}); +verifyEqualTo(arrObj, "length", 0); + +verifyNotWritable(arrObj, "length"); + +verifyNotEnumerable(arrObj, "length"); + +verifyNotConfigurable(arrObj, "length"); - Object.defineProperty(arrObj, "length", { - writable: false - }); - return dataPropertyAttributesAreCorrect(arrObj, "length", 0, false, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-190.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-190.js index 95365ed274b1bec4a3489c77843fd9474e9f54dd..30e2c59bb2e543c851af55317f1fdd3cabde3f66 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-190.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-190.js @@ -11,26 +11,31 @@ description: > named property, 'name' is own data property, test TypeError is thrown on updating the configurable attribute from false to true (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; - Object.defineProperty(arrObj, 0, { - value: "ownDataProperty", - configurable: false - }); - - try { - Object.defineProperty(arrObj, 0, { - configurable: true - }); - return false; - } catch (e) { - return e instanceof TypeError && - dataPropertyAttributesAreCorrect(arrObj, "0", "ownDataProperty", false, false, false); - } +var arrObj = []; + +Object.defineProperty(arrObj, 0, { + value: "ownDataProperty", + configurable: false +}); + +try { + Object.defineProperty(arrObj, 0, { + configurable: true + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arrObj, "0", "ownDataProperty"); + + verifyNotWritable(arrObj, "0"); + + verifyNotEnumerable(arrObj, "0"); + + verifyNotConfigurable(arrObj, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-191.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-191.js index 2681ef4ac535dfb6d8764b1cc178ae6a0d5f893b..9f9d54f4cfb81379cb9e4497df719cc5d8566d6b 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-191.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-191.js @@ -10,25 +10,30 @@ description: > Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is an inherited data property, test that defining own index named property is successful (15.4.5.1 step 4.c) -includes: [runTestCase.js] ---*/ -function testcase() { - try { - Object.defineProperty(Array.prototype, "0", { - value: 11, - configurable: true - }); +try { + Object.defineProperty(Array.prototype, "0", { + value: 11, + configurable: true + }); - var arrObj = []; + var arrObj = []; - Object.defineProperty(arrObj, "0", { - configurable: false - }); - return arrObj.hasOwnProperty("0") && Array.prototype[0] === 11 && typeof arrObj[0] === "undefined"; - } finally { - delete Array.prototype[0]; - } + Object.defineProperty(arrObj, "0", { + configurable: false + }); + if (!arrObj.hasOwnProperty("0")) { + $ERROR("Expected arrObj.hasOwnProperty('0') === true, actually " + arrObj.hasOwnProperty("0")); } -runTestCase(testcase); + if (Array.prototype[0] !== 11) { + $ERROR("Expected Array.prototype[0] === 11), actually " + Array.prototype[0]); + } + if (typeof arrObj[0] !== "undefined") { + $ERROR("Expected typeof arrObj[0] === 'undefined'), actually " + typeof arrObj[0]); + } + +} finally { + delete Array.prototype[0]; +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-194.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-194.js index e5861d80aa12c524d0a436b6ba308a6084ca4389..baf3ec2eb7eeb8af3eb3eddf5c351fa914107644 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-194.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-194.js @@ -11,30 +11,33 @@ description: > named property, 'name' is own accessor property, test TypeError is thrown on updating the configurable attribute from false to true (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; - var getFunc = function () { - return 11; - }; - - Object.defineProperty(arrObj, "0", { - get: getFunc, - configurable: false - }); - - try { - Object.defineProperty(arrObj, "0", { - configurable: true - }); - return false; - } catch (e) { - return e instanceof TypeError && - accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, undefined, undefined, false, false); - } +var arrObj = []; +var getFunc = function () { + return 11; +}; + +Object.defineProperty(arrObj, "0", { + get: getFunc, + configurable: false +}); + +try { + Object.defineProperty(arrObj, "0", { + configurable: true + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arrObj, "0", getFunc()); + + verifyNotEnumerable(arrObj, "0"); + + verifyNotConfigurable(arrObj, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e.name); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-195.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-195.js index cd4c93e99cc65be65b7c03b1d95142dc398a99ac..2abb5b0e52a82c6e7c826d46591683a88a1753e1 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-195.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-195.js @@ -10,40 +10,42 @@ description: > Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is an inherited accessor property (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - try { - Object.defineProperty(Array.prototype, "0", { - get: function () { - return 11; - }, - configurable: true - }); - - var arrObj = []; - - function getFunc() { - return arrObj.helpVerifySet; - } - function setFunc(value) { - arrObj.helpVerifySet = value; - } - - Object.defineProperty(arrObj, "0", { - get: getFunc, - set: setFunc, - configurable: false - }); - - arrObj[0] = 13; - - return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, setFunc, "helpVerifySet", false, false); - } finally { - delete Array.prototype[0]; - } - } -runTestCase(testcase); +function getFunc() { + return arrObj.helpVerifySet; +} +function setFunc(value) { + arrObj.helpVerifySet = value; +} + +try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 11; + }, + configurable: true + }); + + var arrObj = []; + + + Object.defineProperty(arrObj, "0", { + get: getFunc, + set: setFunc, + configurable: false + }); + + arrObj[0] = 13; + + verifyEqualTo(arrObj, "0", getFunc()); + + verifyWritable(arrObj, "0", "helpVerifySet"); + + verifyNotEnumerable(arrObj, "0"); + + verifyNotConfigurable(arrObj, "0"); +} finally { + delete Array.prototype[0]; +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-199.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-199.js index 76ee9cce334d7f291fbab7b1d69edff6a9b013d6..42156b5ab143840223fc25361c76845dc4575a13 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-199.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-199.js @@ -11,18 +11,20 @@ description: > named property, 'name' property doesn't exist in 'O', test 'name' is defined as data property when 'desc' is generic descriptor (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "0", { - enumerable: true - }); +Object.defineProperty(arrObj, "0", { + enumerable: true +}); + +verifyEqualTo(arrObj, "0", undefined); + +verifyNotWritable(arrObj, "0"); + +verifyEnumerable(arrObj, "0"); + +verifyNotConfigurable(arrObj, "0"); - return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, false, true, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-200.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-200.js index 56028a480ca75e4f7b82a92de78ec70b5493c197..3f2c3a64cc5e5aedda1d2204430422a44a99625a 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-200.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-200.js @@ -12,20 +12,22 @@ description: > [[Value]] of 'name' property of 'Attributes' is set as undefined if [[Value]] is absent in data descriptor 'desc' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "0", { - writable: true, - enumerable: true, - configurable: false - }); +Object.defineProperty(arrObj, "0", { + writable: true, + enumerable: true, + configurable: false +}); + +verifyEqualTo(arrObj, "0", undefined); + +verifyWritable(arrObj, "0"); + +verifyEnumerable(arrObj, "0"); + +verifyNotConfigurable(arrObj, "0"); - return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, true, true, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-201.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-201.js index f51aba2e5ce9819a82ae1be8d39d9c237d944b75..d08ac93799951a536965703d172954f3bd8ef196 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-201.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-201.js @@ -12,19 +12,21 @@ description: > [[Writable]] is absent in data descriptor 'desc', test [[Writable]] attribute of property 'name' is set to false (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; + +Object.defineProperty(arrObj, "0", { + value: 1001, + enumerable: true, + configurable: false +}); +verifyEqualTo(arrObj, "0", 1001); + +verifyNotWritable(arrObj, "0"); + +verifyEnumerable(arrObj, "0"); + +verifyNotConfigurable(arrObj, "0"); - Object.defineProperty(arrObj, "0", { - value: 1001, - enumerable: true, - configurable: false - }); - return dataPropertyAttributesAreCorrect(arrObj, "0", 1001, false, true, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-202.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-202.js index 0d8195705e72911387780b0f2972d7e4f51e848f..169f5211e1d27ff9bec7b392e1bed5bf77869428 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-202.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-202.js @@ -12,19 +12,21 @@ description: > [[Enumerable]] is absent in data descriptor 'desc', test [[Enumerable]] of property 'name' is set to false (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; + +Object.defineProperty(arrObj, "0", { + value: 1001, + writable: true, + configurable: true +}); +verifyEqualTo(arrObj, "0", 1001); + +verifyWritable(arrObj, "0"); + +verifyNotEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); - Object.defineProperty(arrObj, "0", { - value: 1001, - writable: true, - configurable: true - }); - return dataPropertyAttributesAreCorrect(arrObj, "0", 1001, true, false, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-203.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-203.js index e482f04c124714e83be20819371156e8196c54e6..b4f2d9b37549e5b8059ba9ebd924959cbf5a5b8c 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-203.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-203.js @@ -12,19 +12,21 @@ description: > [[Configurable]] is absent in data descriptor 'desc', test [[Configurable]] of property 'name' is set to false (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; + +Object.defineProperty(arrObj, "0", { + value: 1001, + writable: true, + enumerable: true +}); +verifyEqualTo(arrObj, "0", 1001); + +verifyWritable(arrObj, "0"); + +verifyEnumerable(arrObj, "0"); + +verifyNotConfigurable(arrObj, "0"); - Object.defineProperty(arrObj, "0", { - value: 1001, - writable: true, - enumerable: true - }); - return dataPropertyAttributesAreCorrect(arrObj, "0", 1001, true, true, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-204.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-204.js index 43732577acd116915fdf00e074b1263a4d735bc1..b681d90b4739b4acbe386c9da14d477ede9b455e 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-204.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-204.js @@ -10,21 +10,23 @@ description: > Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'desc' is data descriptor, test updating all attribute values of 'name' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = [1]; // default value of attributes: writable: true, configurable: true, enumerable: true +var arrObj = [1]; // default value of attributes: writable: true, configurable: true, enumerable: true - Object.defineProperty(arrObj, "0", { - value: 1001, - writable: false, - enumerable: false, - configurable: false - }); +Object.defineProperty(arrObj, "0", { + value: 1001, + writable: false, + enumerable: false, + configurable: false +}); + +verifyEqualTo(arrObj, "0", 1001); + +verifyNotWritable(arrObj, "0"); + +verifyNotEnumerable(arrObj, "0"); + +verifyNotConfigurable(arrObj, "0"); - return dataPropertyAttributesAreCorrect(arrObj, "0", 1001, false, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-205.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-205.js index 63c540b5f22cf818f926123f05c6ebe7c83ed42a..a87266087b770a2d7fa448bedaf27dbdf77df9ae 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-205.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-205.js @@ -11,23 +11,22 @@ description: > named property, 'name' property doesn't exist in 'O' and [[Get]] is absent in accessor descriptor 'desc', test [[Get]] attribute of property 'name' is set to undefined (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; - var setFunc = function (value) { - arrObj.setVerifyHelpProp = value; - }; +var arrObj = []; +var setFunc = function (value) { + arrObj.setVerifyHelpProp = value; +}; - Object.defineProperty(arrObj, "0", { - set: setFunc, - enumerable: true, - configurable: true - }); +Object.defineProperty(arrObj, "0", { + set: setFunc, + enumerable: true, + configurable: true +}); - return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, setFunc, "setVerifyHelpProp", true, true); - } -runTestCase(testcase); +verifyWritable(arrObj, "0", "setVerifyHelpProp"); + +verifyEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-207.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-207.js index 6f71b052f87fe84a1a0ba8ddc2541dbdb5418dee..571de2095cfd5df0536d8e5f8fbe89eee0dc66c0 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-207.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-207.js @@ -12,24 +12,25 @@ description: > [[Enumerable]] is absent in accessor descriptor 'desc', test [[Enumerable]] attribute of property 'name' is set to false (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - var setFunc = function (value) { - arrObj.setVerifyHelpProp = value; - }; - var getFunc = function () { }; +var setFunc = function (value) { + arrObj.setVerifyHelpProp = value; +}; +var getFunc = function () { }; - Object.defineProperty(arrObj, "0", { - set: setFunc, - get: getFunc, - configurable: true - }); - return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, setFunc, "setVerifyHelpProp", false, true); - } -runTestCase(testcase); +Object.defineProperty(arrObj, "0", { + set: setFunc, + get: getFunc, + configurable: true +}); +verifyEqualTo(arrObj, "0", getFunc()); + +verifyWritable(arrObj, "0", "setVerifyHelpProp"); + +verifyNotEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-208.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-208.js index cef424e072962add1bf99e455fcb588902b6863f..e21e28f90b30a07d0c3fff7bf5d2eb4259f620d6 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-208.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-208.js @@ -12,23 +12,24 @@ description: > [[Configurable]] is absent in accessor descriptor 'desc', test [[Configurable]] attribute of property 'name' is set to false (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; - var setFunc = function (value) { - arrObj.setVerifyHelpProp = value; - }; - var getFunc = function () { }; +var arrObj = []; +var setFunc = function (value) { + arrObj.setVerifyHelpProp = value; +}; +var getFunc = function () { }; - Object.defineProperty(arrObj, "0", { - set: setFunc, - get: getFunc, - enumerable: true - }); - return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, setFunc, "setVerifyHelpProp", true, false); - } -runTestCase(testcase); +Object.defineProperty(arrObj, "0", { + set: setFunc, + get: getFunc, + enumerable: true +}); +verifyEqualTo(arrObj, "0", getFunc()); + +verifyWritable(arrObj, "0", "setVerifyHelpProp"); + +verifyEnumerable(arrObj, "0"); + +verifyNotConfigurable(arrObj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-209.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-209.js index b031f70d02e4f804ebeb1b9ba2e79fe6ee38f708..25930ae34a006756b642f790f9713242a4c08235 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-209.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-209.js @@ -10,36 +10,37 @@ description: > Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'desc' is accessor descriptor, test updating all attribute values of 'name' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; - var setFunc = function (value) { - arrObj.setVerifyHelpProp = value; - }; - var getFunc = function () { - return 14; - }; - - Object.defineProperty(arrObj, "0", { - get: function () { - return 11; - }, - set: function () { }, - configurable: true, - enumerable: true - }); - - Object.defineProperty(arrObj, "0", { - get: getFunc, - set: setFunc, - configurable: false, - enumerable: false - }); - - return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, setFunc, "setVerifyHelpProp", false, false); - } -runTestCase(testcase); +var arrObj = []; +var setFunc = function (value) { + arrObj.setVerifyHelpProp = value; +}; +var getFunc = function () { + return 14; +}; + +Object.defineProperty(arrObj, "0", { + get: function () { + return 11; + }, + set: function () { }, + configurable: true, + enumerable: true +}); + +Object.defineProperty(arrObj, "0", { + get: getFunc, + set: setFunc, + configurable: false, + enumerable: false +}); + +verifyEqualTo(arrObj, "0", getFunc()); + +verifyWritable(arrObj, "0", "setVerifyHelpProp"); + +verifyNotEnumerable(arrObj, "0"); + +verifyNotConfigurable(arrObj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-210.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-210.js index e9cdbe2e053880a4c7b382aec29edc6083b96f5f..5f7a355000052fb0b13ec7b3f1ce5b57f477fa4f 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-210.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-210.js @@ -10,17 +10,19 @@ description: > Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' makes no change if every field in 'desc' is absent (name is data property) (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - arrObj[0] = 101; // default value of attributes: writable: true, configurable: true, enumerable: true +arrObj[0] = 101; // default value of attributes: writable: true, configurable: true, enumerable: true + +Object.defineProperty(arrObj, "0", {}); +verifyEqualTo(arrObj, "0", 101); + +verifyWritable(arrObj, "0"); + +verifyEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); - Object.defineProperty(arrObj, "0", {}); - return dataPropertyAttributesAreCorrect(arrObj, "0", 101, true, true, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-211.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-211.js index 892bfff66650af206d83d7ab3ac59bfff05334b3..59c38fe57ecdfef5616444ab3e2a203725e156fb 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-211.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-211.js @@ -10,29 +10,30 @@ description: > Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' makes no change if every field in 'desc' is absent(name is accessor property) (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; - - function getFunc() { - return 11; - } - function setFunc(value) { - arrObj.setVerifyHelpProp = value; - } - - Object.defineProperty(arrObj, "0", { - get: getFunc, - set: setFunc, - enumerable: true, - configurable: true - }); - - Object.defineProperty(arrObj, "0", {}); - return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, setFunc, "setVerifyHelpProp", true, true); - } -runTestCase(testcase); +var arrObj = []; + +function getFunc() { + return 11; +} +function setFunc(value) { + arrObj.setVerifyHelpProp = value; +} + +Object.defineProperty(arrObj, "0", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true +}); + +Object.defineProperty(arrObj, "0", {}); +verifyEqualTo(arrObj, "0", getFunc()); + +verifyWritable(arrObj, "0", "setVerifyHelpProp"); + +verifyEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-212.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-212.js index 356e4fa1a8586faef7420927c7b49e0c883f4c2a..a8181602517326e30460336111462fe10cb8b002 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-212.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-212.js @@ -11,23 +11,25 @@ description: > named property, 'name' makes no change if the value of every field in 'desc' is the same value as the corresponding field in 'name'(desc is data property) (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - arrObj[0] = 100; // default value of attributes: writable: true, configurable: true, enumerable: true +arrObj[0] = 100; // default value of attributes: writable: true, configurable: true, enumerable: true - Object.defineProperty(arrObj, "0", { - value: 100, - writable: true, - enumerable: true, - configurable: true - }); +Object.defineProperty(arrObj, "0", { + value: 100, + writable: true, + enumerable: true, + configurable: true +}); + +verifyEqualTo(arrObj, "0", 100); + +verifyWritable(arrObj, "0"); + +verifyEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); - return dataPropertyAttributesAreCorrect(arrObj, "0", 100, true, true, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-213.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-213.js index 10f5117cf6ff97037a82a566978ae434ddd54ee5..ef396030568ad5aa3e14ec5511faaad7c1b1e99f 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-213.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-213.js @@ -11,36 +11,37 @@ description: > named property, 'name' makes no change if the value of every field in 'desc' is the same value as the corresponding field in 'name'(desc is accessor property) (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; - var getFunc = function () { - return "100"; - }; - var setFunc = function (value) { - arrObj.setVerifyHelpProp = value; - }; - - var desc = { - get: getFunc, - set: setFunc, - enumerable: true, - configurable: true - }; - - Object.defineProperty(arrObj, "0", { - get: getFunc, - set: setFunc, - enumerable: true, - configurable: true - }); - - Object.defineProperty(arrObj, "0", desc); - - return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, setFunc, "setVerifyHelpProp", true, true); - } -runTestCase(testcase); +var arrObj = []; +var getFunc = function () { + return "100"; +}; +var setFunc = function (value) { + arrObj.setVerifyHelpProp = value; +}; + +var desc = { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true +}; + +Object.defineProperty(arrObj, "0", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true +}); + +Object.defineProperty(arrObj, "0", desc); + +verifyEqualTo(arrObj, "0", getFunc()); + +verifyWritable(arrObj, "0", "setVerifyHelpProp"); + +verifyEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-214.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-214.js index 3cdb626d56ec3ec9d880830114547a94a9883273..837112c141e10aca49c1981ff57628579369e9f4 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-214.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-214.js @@ -12,25 +12,31 @@ description: > false, test TypeError is thrown when the type of the [[Value]] field of 'desc' is different from the type of the [[Value]] attribute value of 'name' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; - - Object.defineProperty(arrObj, 0, { - value: 101, - writable: false, - configurable: false - }); - - try { - Object.defineProperty(arrObj, "0", { value: "abc" }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "0", 101, false, false, false); - } +var arrObj = []; + +Object.defineProperty(arrObj, 0, { + value: 101, + writable: false, + configurable: false +}); + +try { + Object.defineProperty(arrObj, "0", { value: "abc" }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arrObj, "0", 101); + + verifyNotWritable(arrObj, "0"); + + verifyNotEnumerable(arrObj, "0"); + + verifyNotConfigurable(arrObj, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-215.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-215.js index 9df867e408232f880812a535088b0d7c377e642e..7d44cc4ad399fed5ba182fe5ab9562822aa735b2 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-215.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-215.js @@ -10,17 +10,19 @@ description: > Object.defineProperty - 'O' is an Array, 'name' is an array index property, both the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are undefined (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "0", { value: undefined }); +Object.defineProperty(arrObj, "0", { value: undefined }); + +Object.defineProperty(arrObj, "0", { value: undefined }); +verifyEqualTo(arrObj, "0", undefined); + +verifyNotWritable(arrObj, "0"); + +verifyNotEnumerable(arrObj, "0"); + +verifyNotConfigurable(arrObj, "0"); - Object.defineProperty(arrObj, "0", { value: undefined }); - return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, false, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-216.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-216.js index 91c911003b2fecdb3bb1fe28be83f16b30586293..080eefdfabc18161b32e3bdc1ae69591fdfba147 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-216.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-216.js @@ -10,17 +10,19 @@ description: > Object.defineProperty - 'O' is an Array, 'name' is an array index property, both the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are null (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "0", { value: null }); +Object.defineProperty(arrObj, "0", { value: null }); + +Object.defineProperty(arrObj, "0", { value: null }); +verifyEqualTo(arrObj, "0", null); + +verifyNotWritable(arrObj, "0"); + +verifyNotEnumerable(arrObj, "0"); + +verifyNotConfigurable(arrObj, "0"); - Object.defineProperty(arrObj, "0", { value: null }); - return dataPropertyAttributesAreCorrect(arrObj, "0", null, false, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-218.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-218.js index 606a6bc92b55e8a40de6ec20b269f847df280b7a..7c2be01d5e43352d3e80723526beecef2df50b4e 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-218.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-218.js @@ -11,21 +11,27 @@ description: > property, test TypeError is thrown when the [[Value]] field of 'desc' is +0, and the [[Value]] attribute value of 'name' is -0 (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "0", { value: -0 }); +Object.defineProperty(arrObj, "0", { value: -0 }); - try { - Object.defineProperty(arrObj, "0", { value: +0 }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "0", -0, false, false, false); - } +try { + Object.defineProperty(arrObj, "0", { value: +0 }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arrObj, "0", -0); + + verifyNotWritable(arrObj, "0"); + + verifyNotEnumerable(arrObj, "0"); + + verifyNotConfigurable(arrObj, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-219.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-219.js index 8f1336f6b81e6d35ce725362220ffff448320c77..a391b96a994235483bbcb20e9612f7937a4a98a5 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-219.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-219.js @@ -11,21 +11,27 @@ description: > property, test TypeError is thrown when the [[Value]] field of 'desc' is -0, and the [[Value]] attribute value of 'name' is +0 (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "0", { value: +0 }); +Object.defineProperty(arrObj, "0", { value: +0 }); - try { - Object.defineProperty(arrObj, "0", { value: -0 }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "0", +0, false, false, false); - } +try { + Object.defineProperty(arrObj, "0", { value: -0 }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arrObj, "0", +0); + + verifyNotWritable(arrObj, "0"); + + verifyNotEnumerable(arrObj, "0"); + + verifyNotConfigurable(arrObj, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-220.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-220.js index e40c6e41c90ce1cb5f548ccf65d10c8c580ccbcd..dc727304382f4acdb0aaa9e2576106b0bdfbaebc 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-220.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-220.js @@ -11,17 +11,18 @@ description: > property, the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two numbers with same vaule (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "0", { value: 101 }); +Object.defineProperty(arrObj, "0", { value: 101 }); - Object.defineProperty(arrObj, "0", { value: 101 }); - return dataPropertyAttributesAreCorrect(arrObj, "0", 101, false, false, false); - } -runTestCase(testcase); +Object.defineProperty(arrObj, "0", { value: 101 }); +verifyEqualTo(arrObj, "0", 101); + +verifyNotWritable(arrObj, "0"); + +verifyNotEnumerable(arrObj, "0"); + +verifyNotConfigurable(arrObj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-221.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-221.js index fbc3ae6e3ef5b01f6fe6eac919366890ad9ec720..b0065a1c2e3726bf112fa0744131db6d200b7208 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-221.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-221.js @@ -11,25 +11,31 @@ description: > property, test TypeError is thrown when the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two numbers with different values (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; - - Object.defineProperty(arrObj, 0, { - value: 101, - writable: false, - configurable: false - }); - - try { - Object.defineProperty(arrObj, "0", { value: 123 }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "0", 101, false, false, false); - } +var arrObj = []; + +Object.defineProperty(arrObj, 0, { + value: 101, + writable: false, + configurable: false +}); + +try { + Object.defineProperty(arrObj, "0", { value: 123 }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arrObj, "0", 101); + + verifyNotWritable(arrObj, "0"); + + verifyNotEnumerable(arrObj, "0"); + + verifyNotConfigurable(arrObj, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-222.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-222.js index 1b0e5ba7e774f517de0dd64cd097b402b6c107d3..dc9f8112fa13b356f1b150918da226a5810d8b7c 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-222.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-222.js @@ -11,17 +11,19 @@ description: > property, the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two strings which have same length and same characters in corresponding positions (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "0", { value: "abcd" }); +Object.defineProperty(arrObj, "0", { value: "abcd" }); + +Object.defineProperty(arrObj, "0", { value: "abcd" }); +verifyEqualTo(arrObj, "0", "abcd"); + +verifyNotWritable(arrObj, "0"); + +verifyNotEnumerable(arrObj, "0"); + +verifyNotConfigurable(arrObj, "0"); - Object.defineProperty(arrObj, "0", { value: "abcd" }); - return dataPropertyAttributesAreCorrect(arrObj, "0", "abcd", false, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-223.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-223.js index 42bd5ac785e8a4459a37c7acc1bf8d69c958a0d3..8cf2925fc5c10cf315d02108df546f266504d6b8 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-223.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-223.js @@ -11,25 +11,31 @@ description: > property, test TypeError is thrown when the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two strings with different values (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; - - Object.defineProperty(arrObj, 0, { - value: "abcd", - writable: false, - configurable: false - }); - - try { - Object.defineProperty(arrObj, "0", { value: "fghj" }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "0", "abcd", false, false, false); - } +var arrObj = []; + +Object.defineProperty(arrObj, 0, { + value: "abcd", + writable: false, + configurable: false +}); + +try { + Object.defineProperty(arrObj, "0", { value: "fghj" }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arrObj, "0", "abcd"); + + verifyNotWritable(arrObj, "0"); + + verifyNotEnumerable(arrObj, "0"); + + verifyNotConfigurable(arrObj, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-224.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-224.js index 78d4ef9c6dfab9f5eaafdc5698511a2ae50c6072..f99e33c4b299cd52667e5483a14f264172f90443 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-224.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-224.js @@ -11,17 +11,19 @@ description: > property, the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two booleans with same value (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "0", { value: true }); +Object.defineProperty(arrObj, "0", { value: true }); + +Object.defineProperty(arrObj, "0", { value: true }); +verifyEqualTo(arrObj, "0", true); + +verifyNotWritable(arrObj, "0"); + +verifyNotEnumerable(arrObj, "0"); + +verifyNotConfigurable(arrObj, "0"); - Object.defineProperty(arrObj, "0", { value: true }); - return dataPropertyAttributesAreCorrect(arrObj, "0", true, false, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-225.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-225.js index 40d655eca6b1f69477186784541703b512d1fce5..aa26f857bceb3d5facd2955e711ec6f97782ca93 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-225.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-225.js @@ -11,25 +11,31 @@ description: > property, test TypeError is thrown when the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two booleans with different values (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; - - Object.defineProperty(arrObj, 0, { - value: true, - writable: false, - configurable: false - }); - - try { - Object.defineProperty(arrObj, "0", { value: false }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "0", true, false, false, false); - } +var arrObj = []; + +Object.defineProperty(arrObj, 0, { + value: true, + writable: false, + configurable: false +}); + +try { + Object.defineProperty(arrObj, "0", { value: false }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arrObj, "0", true); + + verifyNotWritable(arrObj, "0"); + + verifyNotEnumerable(arrObj, "0"); + + verifyNotConfigurable(arrObj, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-226.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-226.js index 78d60fe0e6569b010826217f159cf54897b4e158..41a7d59b53907b6aa73162e23e9199cc2d14576c 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-226.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-226.js @@ -11,19 +11,21 @@ description: > property, the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two objects which refer to the same object (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - var obj1 = { length: 10 }; +var obj1 = { length: 10 }; - Object.defineProperty(arrObj, "0", { value: obj1 }); +Object.defineProperty(arrObj, "0", { value: obj1 }); + +Object.defineProperty(arrObj, "0", { value: obj1 }); +verifyEqualTo(arrObj, "0", obj1); + +verifyNotWritable(arrObj, "0"); + +verifyNotEnumerable(arrObj, "0"); + +verifyNotConfigurable(arrObj, "0"); - Object.defineProperty(arrObj, "0", { value: obj1 }); - return dataPropertyAttributesAreCorrect(arrObj, "0", obj1, false, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-227.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-227.js index 2d68820d726191706af8d1c5b150443e9b34d321..159c41f79e86b2cef9ea43ffd8c4d5aa6eccd942 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-227.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-227.js @@ -11,28 +11,34 @@ description: > property, test TypeError is thrown when the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two objects which refer to two different objects (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - var obj1 = { length: 10 }; - Object.defineProperty(arrObj, 0, { - value: obj1, - writable: false, - configurable: false - }); +var obj1 = { length: 10 }; +Object.defineProperty(arrObj, 0, { + value: obj1, + writable: false, + configurable: false +}); - var obj2 = { length: 20 }; +var obj2 = { length: 20 }; - try { - Object.defineProperty(arrObj, "0", { value: obj2 }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "0", obj1, false, false, false); - } +try { + Object.defineProperty(arrObj, "0", { value: obj2 }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arrObj, "0", obj1); + + verifyNotWritable(arrObj, "0"); + + verifyNotEnumerable(arrObj, "0"); + + verifyNotConfigurable(arrObj, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-228.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-228.js index e3e8b71df9f6cbfb258f6eac7fa7945d6081a48b..0608409885da906a715ec2ebfad90584b49532e4 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-228.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-228.js @@ -11,17 +11,19 @@ description: > property, the [[Writable]] field of 'desc' and the [[Writable]] attribute value of 'name' are two booleans with same value (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "0", { writable: false }); +Object.defineProperty(arrObj, "0", { writable: false }); + +Object.defineProperty(arrObj, "0", { writable: false }); +verifyEqualTo(arrObj, "0", undefined); + +verifyNotWritable(arrObj, "0"); + +verifyNotEnumerable(arrObj, "0"); + +verifyNotConfigurable(arrObj, "0"); - Object.defineProperty(arrObj, "0", { writable: false }); - return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, false, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-229.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-229.js index 8b6c5f7aa574ae3e36d84e5664172012ba9efb20..981ee7d12a3258e3812051981c23c186b5361430 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-229.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-229.js @@ -11,17 +11,18 @@ description: > property, the [[Writable]] field of 'desc' and the [[Writable]] attribute value of 'name' are two booleans with different values (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "0", { writable: false, configurable: true }); +Object.defineProperty(arrObj, "0", { writable: false, configurable: true }); - Object.defineProperty(arrObj, "0", { writable: true }); - return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, true, false, true); - } -runTestCase(testcase); +Object.defineProperty(arrObj, "0", { writable: true }); +verifyEqualTo(arrObj, "0", undefined); + +verifyWritable(arrObj, "0"); + +verifyNotEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-230.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-230.js index d2e7d2b4aafd11a6870c003bbf9ce9845d859f2c..e9e48f1c013016c977045fec4bf0a6cbd7e7a71d 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-230.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-230.js @@ -11,30 +11,31 @@ description: > property, the [[Get]] field of 'desc' and the [[Get]] attribute value of 'name' are two objects which refer to the same object (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; - arrObj.helpVerifySet = 10; - - function getFunc() { - return arrObj.helpVerifySet; - } - function setFunc(value) { - arrObj.helpVerifySet = value; - } - - Object.defineProperty(arrObj, "0", { - get: getFunc, - set: setFunc - }); - - Object.defineProperty(arrObj, "0", { - get: getFunc - }); - return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, setFunc, "helpVerifySet", false, false); - } -runTestCase(testcase); +var arrObj = []; +arrObj.helpVerifySet = 10; + +function getFunc() { + return arrObj.helpVerifySet; +} +function setFunc(value) { + arrObj.helpVerifySet = value; +} + +Object.defineProperty(arrObj, "0", { + get: getFunc, + set: setFunc +}); + +Object.defineProperty(arrObj, "0", { + get: getFunc +}); +verifyEqualTo(arrObj, "0", getFunc()); + +verifyWritable(arrObj, "0", "helpVerifySet"); + +verifyNotEnumerable(arrObj, "0"); + +verifyNotConfigurable(arrObj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-231.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-231.js index 2e682ba13ac7476110ffa900f86aba11a3a9bbfd..2e68e8b0851978f410cbcc47632d3cd357eceb19 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-231.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-231.js @@ -11,35 +11,36 @@ description: > property, the [[Get]] field of 'desc' and the [[Get]] attribute value of 'name' are two objects which refer to the different objects (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; - arrObj.helpVerifySet = 10; - - function getFunc1() { - return 20; - } - function getFunc2() { - return arrObj.helpVerifySet; - } - function setFunc(value) { - arrObj.helpVerifySet = value; - } - - Object.defineProperty(arrObj, "0", { - get: getFunc1, - set: setFunc, - configurable: true - }); - - Object.defineProperty(arrObj, "0", { - get: getFunc2 - }); - - return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc2, setFunc, "helpVerifySet", false, true); - } -runTestCase(testcase); +var arrObj = []; +arrObj.helpVerifySet = 10; + +function getFunc1() { + return 20; +} +function getFunc2() { + return arrObj.helpVerifySet; +} +function setFunc(value) { + arrObj.helpVerifySet = value; +} + +Object.defineProperty(arrObj, "0", { + get: getFunc1, + set: setFunc, + configurable: true +}); + +Object.defineProperty(arrObj, "0", { + get: getFunc2 +}); + +verifyEqualTo(arrObj, "0", getFunc2()); + +verifyWritable(arrObj, "0", "helpVerifySet"); + +verifyNotEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-232.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-232.js index 9c3a9425a2bdaa0366fffaec47f0bb6e81ed64c0..906183a7ba89fc1aed42cccf3bd5ffb124cdee1c 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-232.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-232.js @@ -11,21 +11,20 @@ description: > property, the [[Set]] field of 'desc' and the [[Set]] attribute value of 'name' are two objects which refer to the same object (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - function setFunc(value) { - arrObj.setVerifyHelpProp = value; - } +function setFunc(value) { + arrObj.setVerifyHelpProp = value; +} - Object.defineProperty(arrObj, "0", { set: setFunc }); +Object.defineProperty(arrObj, "0", { set: setFunc }); - Object.defineProperty(arrObj, "0", { set: setFunc }); - return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, setFunc, "setVerifyHelpProp", false, false); - } -runTestCase(testcase); +Object.defineProperty(arrObj, "0", { set: setFunc }); +verifyWritable(arrObj, "0", "setVerifyHelpProp"); + +verifyNotEnumerable(arrObj, "0"); + +verifyNotConfigurable(arrObj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-233.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-233.js index eb670a95f0a6c0463376c9faee44825d2dba4991..e4fc9c0fa9118c6f0a91e99a6417f9c205c19dac 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-233.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-233.js @@ -11,26 +11,25 @@ description: > property, the [[Set]] field of 'desc' and the [[Set]] attribute value of 'name' are two objects which refer to the different objects (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - function setFunc1() { } +function setFunc1() { } - Object.defineProperty(arrObj, "0", { - set: setFunc1, - configurable: true - }); +Object.defineProperty(arrObj, "0", { + set: setFunc1, + configurable: true +}); - function setFunc2(value) { - arrObj.setVerifyHelpProp = value; - } +function setFunc2(value) { + arrObj.setVerifyHelpProp = value; +} - Object.defineProperty(arrObj, "0", { set: setFunc2 }); - return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, setFunc2, "setVerifyHelpProp", false, true); - } -runTestCase(testcase); +Object.defineProperty(arrObj, "0", { set: setFunc2 }); +verifyWritable(arrObj, "0", "setVerifyHelpProp"); + +verifyNotEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-234.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-234.js index cab45f748a785e61c912c2307c03fc8ebd8cdac2..7844538c9b07d4e077f02aa4ddd47bc1fbb97b26 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-234.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-234.js @@ -11,17 +11,19 @@ description: > property, the [[Enumerable]] field of 'desc' and the [[Enumerable]] attribute value of 'name' are two booleans with same value (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "0", { enumerable: false }); +Object.defineProperty(arrObj, "0", { enumerable: false }); + +Object.defineProperty(arrObj, "0", { enumerable: false }); +verifyEqualTo(arrObj, "0", undefined); + +verifyNotWritable(arrObj, "0"); + +verifyNotEnumerable(arrObj, "0"); + +verifyNotConfigurable(arrObj, "0"); - Object.defineProperty(arrObj, "0", { enumerable: false }); - return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, false, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-235.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-235.js index ff75a490f1d3860798353ebb2739ef7832d987d5..b5589fd9b107aa869198208fabf3446ca1d81005 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-235.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-235.js @@ -11,17 +11,19 @@ description: > property, the [[Enumerable]] field of 'desc' and the [[Enumerable]] attribute value of 'name' are two booleans with different values (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "0", { enumerable: false, configurable: true }); +Object.defineProperty(arrObj, "0", { enumerable: false, configurable: true }); + +Object.defineProperty(arrObj, "0", { enumerable: true }); +verifyEqualTo(arrObj, "0", undefined); + +verifyNotWritable(arrObj, "0"); + +verifyEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); - Object.defineProperty(arrObj, "0", { enumerable: true }); - return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, false, true, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-236.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-236.js index f4af3d3a199c4b2191204c076fe044e7ea160f8e..675fd9e46312fe78b83ee6b984a472e73e2bbc61 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-236.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-236.js @@ -11,17 +11,18 @@ description: > property, the [[Configurable]] field of 'desc' and the [[Configurable]] attribute value of 'name' are two booleans with same value (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "0", { configurable: false }); +Object.defineProperty(arrObj, "0", { configurable: false }); - Object.defineProperty(arrObj, "0", { configurable: false }); - return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, false, false, false); - } -runTestCase(testcase); +Object.defineProperty(arrObj, "0", { configurable: false }); +verifyEqualTo(arrObj, "0", undefined); + +verifyNotWritable(arrObj, "0"); + +verifyNotEnumerable(arrObj, "0"); + +verifyNotConfigurable(arrObj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-237.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-237.js index 1322e386aef9b1d7d2f4324ad33676f7b22300ea..b8c594548ae9f406d2b8fb0a3ae0eb330bca7561 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-237.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-237.js @@ -11,17 +11,19 @@ description: > property, the [[Configurable]] field of 'desc' and the [[Configurable]] attribute value of 'name' are two booleans with different values (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "0", { configurable: true }); +Object.defineProperty(arrObj, "0", { configurable: true }); + +Object.defineProperty(arrObj, "0", { configurable: false }); +verifyEqualTo(arrObj, "0", undefined); + +verifyNotWritable(arrObj, "0"); + +verifyNotEnumerable(arrObj, "0"); + +verifyNotConfigurable(arrObj, "0"); - Object.defineProperty(arrObj, "0", { configurable: false }); - return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, false, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-238.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-238.js index 7fb3c4f0fc6d3176cb01049ef61063401fc69852..47f4d9991dfe5d97346b1dc38ac807bda64c2060 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-238.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-238.js @@ -11,31 +11,37 @@ description: > named property, TypeError is thrown if the [[Configurable]] attribute value of 'name' is false and the [[Configurable]] field of 'desc' is true (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "1", { - value: 3, - writable: true, - configurable: false - }); +Object.defineProperty(arrObj, "1", { + value: 3, + writable: true, + configurable: false +}); - try { - Object.defineProperty(arrObj, "1", { - value: 13, - writable: true, - configurable: true - }); - return false; +try { + Object.defineProperty(arrObj, "1", { + value: 13, + writable: true, + configurable: true + }); + $ERROR("Expected an exception."); - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", 3, true, false, false); - } +} catch (e) { + verifyEqualTo(arrObj, "1", 3); + + verifyWritable(arrObj, "1"); + + verifyNotEnumerable(arrObj, "1"); + + verifyNotConfigurable(arrObj, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-239.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-239.js index 5a965d5b31a690f8d8b407d5e515b45eaf681f01..1b51b2d640559a5b7269d0df9d6565a97163e054 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-239.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-239.js @@ -12,32 +12,38 @@ description: > attribute value of 'name' is false, and [[Enumerable]] of 'desc' is present and its value is different from the [[Enumerable]] attribute value of 'name' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "1", { - value: 3, - writable: true, - configurable: false, - enumerable: false - }); +Object.defineProperty(arrObj, "1", { + value: 3, + writable: true, + configurable: false, + enumerable: false +}); - try { - Object.defineProperty(arrObj, "1", { - value: 13, - writable: true, - enumerable: true - }); - return false; +try { + Object.defineProperty(arrObj, "1", { + value: 13, + writable: true, + enumerable: true + }); + $ERROR("Expected an exception."); - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", 3, true, false, false); - } +} catch (e) { + verifyEqualTo(arrObj, "1", 3); + + verifyWritable(arrObj, "1"); + + verifyNotEnumerable(arrObj, "1"); + + verifyNotConfigurable(arrObj, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-240.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-240.js index e25653ab196970b0dd6ec3df50a016fc78f940c9..dc6e35f5d21c8a28c39058ed392d61211211200d 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-240.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-240.js @@ -11,32 +11,36 @@ description: > named property, TypeError is thrown if 'name' is accessor property, and 'desc' is data descriptor, and the [[Configurable]] attribute value of 'name' is false (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - function setFunc(value) { - arrObj.setVerifyHelpProp = value; - } +function setFunc(value) { + arrObj.setVerifyHelpProp = value; +} - Object.defineProperty(arrObj, "1", { - set: setFunc, - configurable: false - }); +Object.defineProperty(arrObj, "1", { + set: setFunc, + configurable: false +}); - try { - Object.defineProperty(arrObj, "1", { - value: 13 - }); - return false; +try { + Object.defineProperty(arrObj, "1", { + value: 13 + }); + $ERROR("Expected an exception."); - } catch (e) { - return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arrObj, "1", undefined, setFunc, "setVerifyHelpProp", false, false); - } +} catch (e) { + verifyWritable(arrObj, "1", "setVerifyHelpProp"); + + verifyNotEnumerable(arrObj, "1"); + + verifyNotConfigurable(arrObj, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-241.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-241.js index b09ad9e8782d289861d10c57792ef83fba3a4a75..63556e2b2c016a9fb10849d7eee3c822d0a7433e 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-241.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-241.js @@ -11,28 +11,34 @@ description: > named property, TypeError is thrown if 'name' is data property, and'desc' is accessor descriptor, and the [[Configurable]] attribute value of 'name' is false (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "1", { - value: 3, - configurable: false - }); +Object.defineProperty(arrObj, "1", { + value: 3, + configurable: false +}); - try { - Object.defineProperty(arrObj, "1", { - set: function () { } - }); - return false; +try { + Object.defineProperty(arrObj, "1", { + set: function () { } + }); + $ERROR("Expected an exception."); - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", 3, false, false, false); - } +} catch (e) { + verifyEqualTo(arrObj, "1", 3); + + verifyNotWritable(arrObj, "1"); + + verifyNotEnumerable(arrObj, "1"); + + verifyNotConfigurable(arrObj, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-242-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-242-1.js index b41c3a75eaf4dff174c409d4a05f52352381df85..555ab8914591576ce3e85a7f9d820268adafac83 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-242-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-242-1.js @@ -11,21 +11,23 @@ description: > named property, 'name' is data property and 'desc' is data descriptor, and the [[Configurable]] attribute value of 'name' is true, test 'name' is updated successfully (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = [3]; +var arrObj = [3]; - Object.defineProperty(arrObj, "0", { - value: 1001, - writable: false, - enumerable: false - }); +Object.defineProperty(arrObj, "0", { + value: 1001, + writable: false, + enumerable: false +}); + +verifyEqualTo(arrObj, "0", 1001); + +verifyNotWritable(arrObj, "0"); + +verifyNotEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); - return dataPropertyAttributesAreCorrect(arrObj, "0", 1001, false, false, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-242.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-242.js index 1a93be344a71d618e489b7f91848e4189ca9d775..30306ebd2265e9b4b40067a9508c8644dc307c42 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-242.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-242.js @@ -12,22 +12,21 @@ description: > descriptor, and the [[Configurable]] attribute value of 'name' is true, test 'name' is converted from data property to accessor property (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = [3]; +var arrObj = [3]; - function setFunc(value) { - arrObj.setVerifyHelpProp = value; - } - Object.defineProperty(arrObj, "0", { - set: setFunc - }); +function setFunc(value) { + arrObj.setVerifyHelpProp = value; +} +Object.defineProperty(arrObj, "0", { + set: setFunc +}); - return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, setFunc, "setVerifyHelpProp", true, true); - } -runTestCase(testcase); +verifyWritable(arrObj, "0", "setVerifyHelpProp"); + +verifyEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-243-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-243-1.js index ee3e8ff4ae4061d74d0cf285a7e9575a8b483fa9..a3a5a639465dc0077ce61b7deb6ffa3f2787c876 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-243-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-243-1.js @@ -11,25 +11,25 @@ description: > named property, 'name' is accessor property and assignment to the accessor property, fails to convert accessor property from accessor property to data property (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] +flags: [noStrict] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - function getFunc() { - return 3; - } - Object.defineProperty(arrObj, "1", { - get: getFunc, - configurable: true - }); +function getFunc() { + return 3; +} +Object.defineProperty(arrObj, "1", { + get: getFunc, + configurable: true +}); - arrObj[1] = 4; +arrObj[1] = 4; - return accessorPropertyAttributesAreCorrect(arrObj, "1", getFunc, undefined, undefined, false, true); - } -runTestCase(testcase); +verifyEqualTo(arrObj, "1", getFunc()); + +verifyNotEnumerable(arrObj, "1"); + +verifyConfigurable(arrObj, "1"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-243-2.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-243-2.js new file mode 100644 index 0000000000000000000000000000000000000000..c158aba3968b648631bc4b8d5dd596c9c8d1710d --- /dev/null +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-243-2.js @@ -0,0 +1,43 @@ +// Copyright (c) 2012 Ecma International. All rights reserved. +// Ecma International makes this code available under the terms and conditions set +// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +// "Use Terms"). Any redistribution of this code must retain the above +// copyright and this notice and otherwise comply with the Use Terms. + +/*--- +es5id: 15.2.3.6-4-243-2 +description: > + Object.defineProperty - 'O' is an Array, 'name' is an array index + named property, 'name' is accessor property and assignment to + the accessor property, fails to convert accessor property from + accessor property to data property (15.4.5.1 step 4.c) +includes: [propertyHelper.js] +flags: [onlyStrict] +---*/ + + +var arrObj = []; + +function getFunc() { + return 3; +} +Object.defineProperty(arrObj, "1", { + get: getFunc, + configurable: true +}); + +try { + arrObj[1] = 4; +} catch (e) { + verifyEqualTo(arrObj, "1", getFunc()); + + verifyNotEnumerable(arrObj, "1"); + + verifyConfigurable(arrObj, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + +} + diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-243.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-243.js index 1f2db50eb766bf188ab9d01700f0e55134ca60f1..dd56d69bf29ee947427f1b40c37a56a4d8ad3e64 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-243.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-243.js @@ -12,27 +12,29 @@ description: > descriptor, and the [[Configurable]] attribute value of 'name' is true, test 'name' is converted from accessor property to data property (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - function getFunc() { - return 3; - } - Object.defineProperty(arrObj, "1", { - get: getFunc, - configurable: true - }); +function getFunc() { + return 3; +} +Object.defineProperty(arrObj, "1", { + get: getFunc, + configurable: true +}); - Object.defineProperty(arrObj, "1", { - value: 12 - }); +Object.defineProperty(arrObj, "1", { + value: 12 +}); + +verifyEqualTo(arrObj, "1", 12); + +verifyNotWritable(arrObj, "1"); + +verifyNotEnumerable(arrObj, "1"); + +verifyConfigurable(arrObj, "1"); - return dataPropertyAttributesAreCorrect(arrObj, "1", 12, false, false, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-244.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-244.js index df4ace8a4ace899010e97030ad28a8c98de9da16..1f2d865e01db138a3fa079a87d98cf21f8eb8d33 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-244.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-244.js @@ -13,28 +13,35 @@ description: > false, test TypeError is thrown if the [[Writable]] attribute value of 'name' is false and the [[Writable]] field of 'desc' is true (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "1", { - writable: false, - configurable: false - }); +Object.defineProperty(arrObj, "1", { + writable: false, + configurable: false +}); - try { +try { - Object.defineProperty(arrObj, "1", { - writable: true - }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", undefined, false, false, false); - } + Object.defineProperty(arrObj, "1", { + writable: true + }); + $ERROR("Expected an exception."); + +} catch (e) { + verifyEqualTo(arrObj, "1", undefined); + + verifyNotWritable(arrObj, "1"); + + verifyNotEnumerable(arrObj, "1"); + + verifyNotConfigurable(arrObj, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-245.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-245.js index 4db654f76d63257bd1a7e50c780ffc8ad22fea88..8a70e1d30196087d74bb0a754d38fb7aff3a24a9 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-245.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-245.js @@ -14,29 +14,34 @@ description: > value of 'name' is false, and the type of the [[Value]] field of 'desc' is different from the type of the [[Value]] attribute value of 'name' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "1", { - value: 3, - writable: false, - configurable: false - }); +Object.defineProperty(arrObj, "1", { + value: 3, + writable: false, + configurable: false +}); - try { +try { + Object.defineProperty(arrObj, "1", { + value: "abc" + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arrObj, "1", 3); - Object.defineProperty(arrObj, "1", { - value: "abc" - }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", 3, false, false, false); - } + verifyNotWritable(arrObj, "1"); + + verifyNotEnumerable(arrObj, "1"); + + verifyNotConfigurable(arrObj, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-246.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-246.js index a822a5e8895f7ef3fd76cbcfd638082f0977afd0..50f518202a6e347e46dc283088e7657446fff9a2 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-246.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-246.js @@ -14,27 +14,32 @@ description: > value of 'name' is false, and the [[Value]] field of 'desc' is +0, and the [[Value]] attribute value of 'name' is -0 (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "1", { - value: -0 +Object.defineProperty(arrObj, "1", { + value: -0 - }); +}); - try { - Object.defineProperty(arrObj, "1", { - value: +0 - }); +try { + Object.defineProperty(arrObj, "1", { + value: +0 + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arrObj, "1", -0); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", -0, false, false, false); - } + verifyNotWritable(arrObj, "1"); + + verifyNotEnumerable(arrObj, "1"); + + verifyNotConfigurable(arrObj, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-247.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-247.js index 51e1acb3f6fab7fcfda988cfd85b8c9ddef0abb7..ebe4abfe811ab12c4d27adc1b07f2dc581ae7e9b 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-247.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-247.js @@ -14,26 +14,32 @@ description: > value of 'name' is false, and the [[Value]] field of 'desc' is -0, and the [[Value]] attribute value of 'name' is +0 (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "1", { - value: +0 - }); +Object.defineProperty(arrObj, "1", { + value: +0 +}); - try { +try { - Object.defineProperty(arrObj, "1", { - value: -0 - }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", +0, false, false, false); - } + Object.defineProperty(arrObj, "1", { + value: -0 + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arrObj, "1", +0); + + verifyNotWritable(arrObj, "1"); + + verifyNotEnumerable(arrObj, "1"); + + verifyNotConfigurable(arrObj, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-248.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-248.js index 39f410325a559c32dca0c5010eeb40f2f41d4c0f..8476bdb89c957c5a0c702f7ede3e30ea4392414b 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-248.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-248.js @@ -14,25 +14,31 @@ description: > value of 'name' is false, and the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two numbers with different vaules (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; - - Object.defineProperty(arrObj, "1", { - value: 12 - }); - - try { - Object.defineProperty(arrObj, "1", { - value: 15 - }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", 12, false, false, false); - } +var arrObj = []; + +Object.defineProperty(arrObj, "1", { + value: 12 +}); + +try { + Object.defineProperty(arrObj, "1", { + value: 15 + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arrObj, "1", 12); + + verifyNotWritable(arrObj, "1"); + + verifyNotEnumerable(arrObj, "1"); + + verifyNotConfigurable(arrObj, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-249.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-249.js index 84aaa2ed0bda0b8f6046479885e52c095611b4da..e8da0e5fff2f6d6b4cc0a5e9bc6a4fe8709f8de1 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-249.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-249.js @@ -14,26 +14,32 @@ description: > value of 'name' is false, and the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two strings with different values (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "1", { - value: "abc" - }); +Object.defineProperty(arrObj, "1", { + value: "abc" +}); - try { - Object.defineProperty(arrObj, "1", { - value: "fgh" - }); +try { + Object.defineProperty(arrObj, "1", { + value: "fgh" + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arrObj, "1", "abc"); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", "abc", false, false, false); - } + verifyNotWritable(arrObj, "1"); + + verifyNotEnumerable(arrObj, "1"); + + verifyNotConfigurable(arrObj, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} + diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-250.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-250.js index 0c9a705ad8df527317c21cb72cf3262c61adc47b..d7235a4f3069df19cacbcbba165acc40bf40c076 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-250.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-250.js @@ -14,26 +14,31 @@ description: > value of 'name' is false, and the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two booleans with different values (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "1", { - value: false - }); +Object.defineProperty(arrObj, "1", { + value: false +}); - try { - Object.defineProperty(arrObj, "1", { - value: true - }); +try { + Object.defineProperty(arrObj, "1", { + value: true + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arrObj, "1", false); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", false, false, false, false); - } + verifyNotWritable(arrObj, "1"); + + verifyNotEnumerable(arrObj, "1"); + + verifyNotConfigurable(arrObj, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-251.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-251.js index ce1c459b363a01aeef71fb988698e03aa6de27d8..0afa71a425b06d45bda805957717db41dc97e5df 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-251.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-251.js @@ -14,25 +14,31 @@ description: > value of 'name' is false, and the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two objects which refer to the different objects (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; - var obj = { length: 10 }; +var arrObj = []; +var obj = { length: 10 }; - Object.defineProperty(arrObj, "1", { - value: obj - }); +Object.defineProperty(arrObj, "1", { + value: obj +}); - try { - Object.defineProperty(arrObj, "1", { value: {} }); +try { + Object.defineProperty(arrObj, "1", { value: {} }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arrObj, "1", obj); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", obj, false, false, false); - } + verifyNotWritable(arrObj, "1"); + + verifyNotEnumerable(arrObj, "1"); + + verifyNotConfigurable(arrObj, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} + diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-252.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-252.js index a098e29dbbc818f72f14667c5cac8cdf78c53ede..4f4dc16f7199b218b39577226385c63b7170399e 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-252.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-252.js @@ -14,29 +14,33 @@ description: > present, and the [[Set]] field of 'desc' and the [[Set]] attribute value of 'name' are two objects which refer to the different objects (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; - - function setFunc(value) { - arrObj.setVerifyHelpProp = value; - } - Object.defineProperty(arrObj, "1", { - set: setFunc - }); - - try { - Object.defineProperty(arrObj, "1", { - set: function () { } - }); - - return false; - } catch (e) { - return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arrObj, "1", undefined, setFunc, "setVerifyHelpProp", false, false); - } +var arrObj = []; + +function setFunc(value) { + arrObj.setVerifyHelpProp = value; +} +Object.defineProperty(arrObj, "1", { + set: setFunc +}); + +try { + Object.defineProperty(arrObj, "1", { + set: function () { } + }); + $ERROR("Expected an exception."); + +} catch (e) { + verifyWritable(arrObj, "1", "setVerifyHelpProp"); + + verifyNotEnumerable(arrObj, "1"); + + verifyNotConfigurable(arrObj, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-253.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-253.js index 6abe4e9bc3f73d42beff37ca4802eebeb8cdf456..325da9709539b1b72f061ed125f10f90f0792114 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-253.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-253.js @@ -13,29 +13,33 @@ description: > false, test TypeError is thrown if the [[Set]] field of 'desc' is present, and the [[Set]] field of 'desc' is an object and the [[Set]] attribute value of 'name' is undefined (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; - function getFunc() { - return 12; - } - - Object.defineProperty(arrObj, "1", { - get: getFunc, - set: undefined - }); - - try { - Object.defineProperty(arrObj, "1", { - set: function () { } - }); - return false; - } catch (e) { - return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arrObj, "1", getFunc, undefined, undefined, false, false); - } +var arrObj = []; +function getFunc() { + return 12; +} + +Object.defineProperty(arrObj, "1", { + get: getFunc, + set: undefined +}); + +try { + Object.defineProperty(arrObj, "1", { + set: function () { } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arrObj, "1", getFunc()); + + verifyNotEnumerable(arrObj, "1"); + + verifyNotConfigurable(arrObj, "1"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-257.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-257.js index 9da91a48e6b8fb345372e44164aa3333c02a3dcf..475da8ecd1f6f02bc28a034bba2e1bade63ab3d7 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-257.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-257.js @@ -13,31 +13,26 @@ description: > false, test TypeError is not thrown if the [[Get]] field of 'desc' is present, and the [[Get]] field of 'desc' and the [[Get]] attribute value of 'name' are undefined (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; - function setFunc(value) { - arrObj.setVerifyHelpProp = value; - } +var arrObj = []; +function setFunc(value) { + arrObj.setVerifyHelpProp = value; +} - Object.defineProperty(arrObj, "1", { - get: undefined, - set: setFunc, - configurable: false - }); +Object.defineProperty(arrObj, "1", { + get: undefined, + set: setFunc, + configurable: false +}); - try { - Object.defineProperty(arrObj, "1", { - get: undefined - }); +Object.defineProperty(arrObj, "1", { + get: undefined +}); - return accessorPropertyAttributesAreCorrect(arrObj, "1", undefined, setFunc, "setVerifyHelpProp", false, false); - } catch (e) { - return false; - } - } -runTestCase(testcase); +verifyWritable(arrObj, "1", "setVerifyHelpProp"); + +verifyNotEnumerable(arrObj, "1"); + +verifyNotConfigurable(arrObj, "1"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-258.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-258.js index d7b90d21ff4c30e8a03b5d6348a0575fc234c395..b61831d416723bfdd02a2cb194543f7b140e5058 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-258.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-258.js @@ -11,18 +11,20 @@ description: > named property, name is data property and 'desc' is data descriptor, test updating the [[Value]] attribute value of 'name' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = [100]; +var arrObj = [100]; + +Object.defineProperty(arrObj, "0", { + value: 200 +}); +verifyEqualTo(arrObj, "0", 200); + +verifyWritable(arrObj, "0"); + +verifyEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); - Object.defineProperty(arrObj, "0", { - value: 200 - }); - return dataPropertyAttributesAreCorrect(arrObj, "0", 200, true, true, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-259.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-259.js index 9db0995084081c33918cf793afd242a41997123c..88aee4f4dcd64dc452f425e935ffbc78183b9bee 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-259.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-259.js @@ -11,18 +11,20 @@ description: > named property, name is data property and 'desc' is data descriptor, test setting the [[Value]] attribute value of 'name' as undefined (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = [100]; +var arrObj = [100]; + +Object.defineProperty(arrObj, "0", { + value: undefined +}); +verifyEqualTo(arrObj, "0", undefined); + +verifyWritable(arrObj, "0"); + +verifyEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); - Object.defineProperty(arrObj, "0", { - value: undefined - }); - return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, true, true, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-260.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-260.js index 7feaa01ce20e527a0b1bc4c2339e793d4403dc71..e3f41ee669b0ca7b235936cf3bc0576c542650f6 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-260.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-260.js @@ -11,17 +11,19 @@ description: > named property, name is data property and 'desc' is data descriptor, test setting the [[Value]] attribute value of 'name' from undefined to number (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = [undefined]; - Object.defineProperty(arrObj, "0", { - value: 100 - }); - return dataPropertyAttributesAreCorrect(arrObj, "0", 100, true, true, true); - } -runTestCase(testcase); +var arrObj = [undefined]; +Object.defineProperty(arrObj, "0", { + value: 100 +}); +verifyEqualTo(arrObj, "0", 100); + +verifyWritable(arrObj, "0"); + +verifyEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); + diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-261.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-261.js index 6fad4c8b26c499a955855c12207129afc3b56bc7..39add17472f91706e5b287f47279ea8f005c69db 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-261.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-261.js @@ -11,17 +11,19 @@ description: > named property, name is data property and 'desc' is data descriptor, test updating the [[Writable]] attribute value of 'name' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = [100]; - Object.defineProperty(arrObj, "0", { - writable: false - }); - return dataPropertyAttributesAreCorrect(arrObj, "0", 100, false, true, true); - } -runTestCase(testcase); +var arrObj = [100]; +Object.defineProperty(arrObj, "0", { + writable: false +}); +verifyEqualTo(arrObj, "0", 100); + +verifyNotWritable(arrObj, "0"); + +verifyEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); + diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-262.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-262.js index 5eef4c6b077812729d55ca082f1e662a06bd3ea0..cbca50654addbbeb83f203ecbd3a0b1eaab85b3e 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-262.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-262.js @@ -11,18 +11,20 @@ description: > named property, name is data property and 'desc' is data descriptor, test updating the [[Enumerable]] attribute value of 'name' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = [100]; +var arrObj = [100]; + +Object.defineProperty(arrObj, "0", { + enumerable: false +}); +verifyEqualTo(arrObj, "0", 100); + +verifyWritable(arrObj, "0"); + +verifyNotEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); - Object.defineProperty(arrObj, "0", { - enumerable: false - }); - return dataPropertyAttributesAreCorrect(arrObj, "0", 100, true, false, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-263.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-263.js index fd5644efec904fa6d57481a1374b4a5b2515bb02..4cc2aae0c96d26c3f94b28d201ca5c1325f5a4ff 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-263.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-263.js @@ -11,18 +11,20 @@ description: > named property, name is data property and 'desc' is data descriptor, test updating the [[Configurable]] attribute value of 'name' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = [100]; +var arrObj = [100]; + +Object.defineProperty(arrObj, "0", { + configurable: false +}); +verifyEqualTo(arrObj, "0", 100); + +verifyWritable(arrObj, "0"); + +verifyEnumerable(arrObj, "0"); + +verifyNotConfigurable(arrObj, "0"); - Object.defineProperty(arrObj, "0", { - configurable: false - }); - return dataPropertyAttributesAreCorrect(arrObj, "0", 100, true, true, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-264.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-264.js index fab104a5035a3bfabfa214dced2324151a47f045..d8522862028e03c9be8b836ebcf89d78ca184d49 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-264.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-264.js @@ -11,19 +11,21 @@ description: > named property, name is data property and 'desc' is data descriptor, test updating multiple attribute values of 'name' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = [100]; - Object.defineProperty(arrObj, "0", { - writable: false, - enumerable: false, - configurable: false - }); - return dataPropertyAttributesAreCorrect(arrObj, "0", 100, false, false, false); - } -runTestCase(testcase); +var arrObj = [100]; +Object.defineProperty(arrObj, "0", { + writable: false, + enumerable: false, + configurable: false +}); +verifyEqualTo(arrObj, "0", 100); + +verifyNotWritable(arrObj, "0"); + +verifyNotEnumerable(arrObj, "0"); + +verifyNotConfigurable(arrObj, "0"); + diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-265.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-265.js index bcdcef9655c898727e811a75ef80247806d73c9a..dc9d0e4d40a9eeee8cda19c8c970fb9ffc1d5050 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-265.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-265.js @@ -11,27 +11,26 @@ description: > named property, name is accessor property and 'desc' is accessor descriptor, test updating the [[Get]] attribute value of 'name' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - function getFunc() { - return 100; - } - Object.defineProperty(arrObj, "0", { - get: function () { - return 12; - }, - configurable: true - }); - Object.defineProperty(arrObj, "0", { - get: getFunc - }); - return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, undefined, undefined, false, true); - } -runTestCase(testcase); +function getFunc() { + return 100; +} +Object.defineProperty(arrObj, "0", { + get: function () { + return 12; + }, + configurable: true +}); +Object.defineProperty(arrObj, "0", { + get: getFunc +}); +verifyEqualTo(arrObj, "0", getFunc()); + +verifyNotEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-266.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-266.js index 4102d77f37e7fbc859abca8f809223ee9632b2a6..d6fd1826f5b41607f163821cb7c8b6b0c925e46d 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-266.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-266.js @@ -11,26 +11,23 @@ description: > named property, name is accessor property and 'desc' is accessor descriptor, test setting the [[Get]] attribute value of 'name' as undefined (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; - function getFunc() { - return 12; - } +var arrObj = []; +function getFunc() { + return 12; +} - Object.defineProperty(arrObj, "0", { - get: getFunc, - configurable: true - }); +Object.defineProperty(arrObj, "0", { + get: getFunc, + configurable: true +}); - Object.defineProperty(arrObj, "0", { - get: undefined - }); - return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, undefined, undefined, false, true); - } -runTestCase(testcase); +Object.defineProperty(arrObj, "0", { + get: undefined +}); +verifyNotEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-267.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-267.js index 2c8a50323dfc48ea9d0ea9ad7e160ace0b430105..ddca9e2e3f8d589407f9fe9452359a0d1e0ee92c 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-267.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-267.js @@ -11,26 +11,25 @@ description: > named property, name is accessor property and 'desc' is accessor descriptor, test updating the [[Get]] attribute value of 'name' from undefined to function object (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - function getFunc() { - return 12; - } - Object.defineProperty(arrObj, "0", { - get: undefined, - configurable: true - }); +function getFunc() { + return 12; +} +Object.defineProperty(arrObj, "0", { + get: undefined, + configurable: true +}); - Object.defineProperty(arrObj, "0", { - get: getFunc - }); - return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, undefined, undefined, false, true); - } -runTestCase(testcase); +Object.defineProperty(arrObj, "0", { + get: getFunc +}); +verifyEqualTo(arrObj, "0", getFunc()); + +verifyNotEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-268.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-268.js index 251838b5518a5943c15836cbb5512c0331fc78e9..5f5124f2768b1872351aa1da25ec1434997380dd 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-268.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-268.js @@ -11,26 +11,25 @@ description: > named property, name is accessor property and 'desc' is accessor descriptor, test updating the [[Set]] attribute value of 'name' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - function setFunc(value) { - arrObj.setVerifyHelpProp = value; - } - Object.defineProperty(arrObj, "0", { - set: function () { }, - configurable: true - }); +function setFunc(value) { + arrObj.setVerifyHelpProp = value; +} +Object.defineProperty(arrObj, "0", { + set: function () { }, + configurable: true +}); - Object.defineProperty(arrObj, "0", { - set: setFunc - }); - return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, setFunc, "setVerifyHelpProp", false, true); - } -runTestCase(testcase); +Object.defineProperty(arrObj, "0", { + set: setFunc +}); +verifyWritable(arrObj, "0", "setVerifyHelpProp"); + +verifyNotEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-269.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-269.js index 988ddeb480c443e1f832f3489be0c9444055f303..c7443ae582af567a6473558d3f0e8e30078455a7 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-269.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-269.js @@ -11,23 +11,20 @@ description: > named property, name is accessor property and 'desc' is accessor descriptor, test setting the [[Set]] attribute value of 'name' as undefined (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "0", { - set: function () { }, - configurable: true - }); +Object.defineProperty(arrObj, "0", { + set: function () { }, + configurable: true +}); - Object.defineProperty(arrObj, "0", { - set: undefined - }); - return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, undefined, undefined, false, true); - } -runTestCase(testcase); +Object.defineProperty(arrObj, "0", { + set: undefined +}); +verifyNotEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-270.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-270.js index 7d1d3a42bf63d5b188cda533122b9c9b7daf2c48..595a006f448f7b1cd7b8ce25956372ef55dd4c28 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-270.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-270.js @@ -11,27 +11,26 @@ description: > named property, name is accessor property and 'desc' is accessor descriptor, test updating the [[Set]] attribute value of 'name' from undefined to function object (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - function setFunc(value) { - arrObj.setVerifyHelpProp = value; - } +function setFunc(value) { + arrObj.setVerifyHelpProp = value; +} - Object.defineProperty(arrObj, "0", { - set: undefined, - configurable: true - }); +Object.defineProperty(arrObj, "0", { + set: undefined, + configurable: true +}); - Object.defineProperty(arrObj, "0", { - set: setFunc - }); - return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, setFunc, "setVerifyHelpProp", false, true); - } -runTestCase(testcase); +Object.defineProperty(arrObj, "0", { + set: setFunc +}); +verifyWritable(arrObj, "0", "setVerifyHelpProp"); + +verifyNotEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-271.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-271.js index 82fab3164d7a08bfd286067953df9c03fb1891e2..3ff40cf0efb7a408f265af420323c4861a557e41 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-271.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-271.js @@ -11,28 +11,27 @@ description: > named property, name is accessor property and 'desc' is accessor descriptor, test updating the [[Enumerable]] attribute value of 'name' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - function setFunc(value) { - arrObj.setVerifyHelpProp = value; - } +function setFunc(value) { + arrObj.setVerifyHelpProp = value; +} - Object.defineProperty(arrObj, "0", { - set: setFunc, - enumerable: true, - configurable: true - }); +Object.defineProperty(arrObj, "0", { + set: setFunc, + enumerable: true, + configurable: true +}); - Object.defineProperty(arrObj, "0", { - enumerable: false - }); - return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, setFunc, "setVerifyHelpProp", false, true); - } -runTestCase(testcase); +Object.defineProperty(arrObj, "0", { + enumerable: false +}); +verifyWritable(arrObj, "0", "setVerifyHelpProp"); + +verifyNotEnumerable(arrObj, "0"); + +verifyConfigurable(arrObj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-272.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-272.js index e0a35ebd0d163cd9f52e543353bbfb22362e1c45..15bf2f351c783f59e6af3419796ec4fae69d44bc 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-272.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-272.js @@ -11,26 +11,25 @@ description: > named property, name is accessor property and 'desc' is accessor descriptor, test updating the [[Configurable]] attribute value of 'name' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; - function setFunc(value) { - arrObj.setVerifyHelpProp = value; - } +var arrObj = []; +function setFunc(value) { + arrObj.setVerifyHelpProp = value; +} - Object.defineProperty(arrObj, "0", { - set: setFunc, - configurable: true - }); +Object.defineProperty(arrObj, "0", { + set: setFunc, + configurable: true +}); - Object.defineProperty(arrObj, "0", { - configurable: false - }); - return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, setFunc, "setVerifyHelpProp", false, false); - } -runTestCase(testcase); +Object.defineProperty(arrObj, "0", { + configurable: false +}); +verifyWritable(arrObj, "0", "setVerifyHelpProp"); + +verifyNotEnumerable(arrObj, "0"); + +verifyNotConfigurable(arrObj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-273.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-273.js index b79561e2c39ede06a0d0f7003aabebe2cadada5d..51df8990e54d1914e5663a1070ea2a49be3d2ee3 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-273.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-273.js @@ -11,35 +11,36 @@ description: > named property, name is accessor property and 'desc' is accessor descriptor, test updating multiple attribute values of 'name' (15.4.5.1 step 4.c) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var arrObj = []; - - function setFunc(value) { - arrObj.setVerifyHelpProp = value; - } - function getFunc() { - return 12; - } - Object.defineProperty(arrObj, "1", { - get: function () { - return 6; - }, - set: setFunc, - enumerable: true, - configurable: true - }); - - Object.defineProperty(arrObj, "1", { - get: getFunc, - enumerable: false, - configurable: false - }); - return accessorPropertyAttributesAreCorrect(arrObj, "1", getFunc, setFunc, "setVerifyHelpProp", false, false); - } -runTestCase(testcase); + +var arrObj = []; + +function setFunc(value) { + arrObj.setVerifyHelpProp = value; +} +function getFunc() { + return 12; +} +Object.defineProperty(arrObj, "1", { + get: function () { + return 6; + }, + set: setFunc, + enumerable: true, + configurable: true +}); + +Object.defineProperty(arrObj, "1", { + get: getFunc, + enumerable: false, + configurable: false +}); +verifyEqualTo(arrObj, "1", getFunc()); + +verifyWritable(arrObj, "1", "setVerifyHelpProp"); + +verifyNotEnumerable(arrObj, "1"); + +verifyNotConfigurable(arrObj, "1"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-277.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-277.js index cde4ef37985579c8db2dde4f7c15225a8ceb2b70..f017d274d11c349e479197072258ecd8b41f9566 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-277.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-277.js @@ -11,22 +11,24 @@ description: > property that won't exist on 'O', and 'desc' is data descriptor, test 'name' is defined in 'O' with all correct attribute values (15.4.5.1 step 5) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - Object.defineProperty(arrObj, "property", { - value: 12, - writable: true, - enumerable: true, - configurable: true - }); +Object.defineProperty(arrObj, "property", { + value: 12, + writable: true, + enumerable: true, + configurable: true +}); + +verifyEqualTo(arrObj, "property", 12); + +verifyWritable(arrObj, "property"); + +verifyEnumerable(arrObj, "property"); + +verifyConfigurable(arrObj, "property"); - return dataPropertyAttributesAreCorrect(arrObj, "property", 12, true, true, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-278.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-278.js index 832fbcb053ee24845e21aadc401208d031c0ffb4..462bbbec40fb41b16471774edbc1d915be1e0a6e 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-278.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-278.js @@ -10,29 +10,30 @@ description: > Object.defineProperty - 'name' is generic property that won't exist on 'O', and 'desc' is accessor descriptor, test 'name' is defined in 'O' with all correct attribute values (15.4.5.1 step 5) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - function getFunc() { - return 12; - } - function setFunc(value) { - arrObj.setVerifyHelpProp = value; - } +function getFunc() { + return 12; +} +function setFunc(value) { + arrObj.setVerifyHelpProp = value; +} - Object.defineProperty(arrObj, "property", { - get: getFunc, - set: setFunc, - enumerable: true, - configurable: true - }); +Object.defineProperty(arrObj, "property", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true +}); - return accessorPropertyAttributesAreCorrect(arrObj, "property", getFunc, setFunc, "setVerifyHelpProp", true, true); - } -runTestCase(testcase); +verifyEqualTo(arrObj, "property", getFunc()); + +verifyWritable(arrObj, "property", "setVerifyHelpProp"); + +verifyEnumerable(arrObj, "property"); + +verifyConfigurable(arrObj, "property"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-279.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-279.js index dc0f32a82c967728b639354a9b894113e9b771ed..734a243445f76c82614b2180ecf33940bf91d9a0 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-279.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-279.js @@ -10,35 +10,36 @@ description: > Object.defineProperty - 'O' is an Array, 'name' is generic own accessor property of 'O', and 'desc' is accessor descriptor, test updating multiple attribute values of 'name' (15.4.5.1 step 5) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var arrObj = []; - - function getFunc() { - return 12; - } - function setFunc(value) { - arrObj.setVerifyHelpProp = value; - } - Object.defineProperty(arrObj, "property", { - get: function () { - return 24; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(arrObj, "property", { - get: getFunc, - set: setFunc, - enumerable: false, - configurable: false - }); - - return accessorPropertyAttributesAreCorrect(arrObj, "property", getFunc, setFunc, "setVerifyHelpProp", false, false); - } -runTestCase(testcase); + +var arrObj = []; + +function getFunc() { + return 12; +} +function setFunc(value) { + arrObj.setVerifyHelpProp = value; +} +Object.defineProperty(arrObj, "property", { + get: function () { + return 24; + }, + enumerable: true, + configurable: true +}); +Object.defineProperty(arrObj, "property", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: false +}); + +verifyEqualTo(arrObj, "property", getFunc()); + +verifyWritable(arrObj, "property", "setVerifyHelpProp"); + +verifyNotEnumerable(arrObj, "property"); + +verifyNotConfigurable(arrObj, "property"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-280.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-280.js index b27fcf84a34dd5764b94f2f16ab8bb88d82178cc..da869b279ada99816a876a836e2da7ac930aebac 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-280.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-280.js @@ -10,23 +10,25 @@ description: > Object.defineProperty - 'O' is an Array, 'name' is generic own data property of 'O', and 'desc' is data descriptor, test updating multiple attribute values of 'name' (15.4.5.1 step 5) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - arrObj.property = 12; // default value of attributes: writable: true, configurable: true, enumerable: true +arrObj.property = 12; // default value of attributes: writable: true, configurable: true, enumerable: true - Object.defineProperty(arrObj, "property", { - writable: false, - enumerable: false, - configurable: false - }); +Object.defineProperty(arrObj, "property", { + writable: false, + enumerable: false, + configurable: false +}); + +verifyEqualTo(arrObj, "property", 12); + +verifyNotWritable(arrObj, "property"); + +verifyNotEnumerable(arrObj, "property"); + +verifyNotConfigurable(arrObj, "property"); - return dataPropertyAttributesAreCorrect(arrObj, "property", 12, false, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-281.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-281.js index 665ee2b403ef8d2a68a007bb455f372102279c24..f4309fe251e36971d8cbb7255bc4f207f391ea3d 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-281.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-281.js @@ -11,25 +11,31 @@ description: > data property of 'O', test TypeError is thrown when updating the [[Value]] attribute value of 'name' which is defined as non-writable and non-configurable (15.4.5.1 step 5) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var arrObj = []; - - Object.defineProperty(arrObj, "property", { - value: 12 - }); - try { - Object.defineProperty(arrObj, "property", { - value: 36 - }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "property", 12, false, false, false); - } + +var arrObj = []; + +Object.defineProperty(arrObj, "property", { + value: 12 +}); +try { + Object.defineProperty(arrObj, "property", { + value: 36 + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arrObj, "property", 12); + + verifyNotWritable(arrObj, "property"); + + verifyNotEnumerable(arrObj, "property"); + + verifyNotConfigurable(arrObj, "property"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-282.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-282.js index 1e965821a6f91eb9492e4edabadfa929b2304a92..807545446e354ad6df3ef1af21075755dae6d75c 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-282.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-282.js @@ -11,25 +11,31 @@ description: > data property of 'O', test TypeError is thrown when updating the [[Writable]] attribute value of 'name' which is defined as non-configurable (15.4.5.1 step 5) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var arrObj = []; - - Object.defineProperty(arrObj, "property", { - writable: false - }); - try { - Object.defineProperty(arrObj, "property", { - writable: true - }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "property", undefined, false, false, false); - } + +var arrObj = []; + +Object.defineProperty(arrObj, "property", { + writable: false +}); +try { + Object.defineProperty(arrObj, "property", { + writable: true + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arrObj, "property", undefined); + + verifyNotWritable(arrObj, "property"); + + verifyNotEnumerable(arrObj, "property"); + + verifyNotConfigurable(arrObj, "property"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-283.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-283.js index bc6ae00696a0151afed32836a68891d49c9806d7..c918fd7365b66db70fcf8d38aad37911a4b6b119 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-283.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-283.js @@ -11,25 +11,31 @@ description: > data property of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'name' which is defined as non-configurable (15.4.5.1 step 5) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; - - Object.defineProperty(arrObj, "property", { - value: 12, - enumerable: false - }); - try { - Object.defineProperty(arrObj, "property", { - enumerable: true - }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "property", 12, false, false, false); - } +var arrObj = []; + +Object.defineProperty(arrObj, "property", { + value: 12, + enumerable: false +}); +try { + Object.defineProperty(arrObj, "property", { + enumerable: true + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arrObj, "property", 12); + + verifyNotWritable(arrObj, "property"); + + verifyNotEnumerable(arrObj, "property"); + + verifyNotConfigurable(arrObj, "property"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-284.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-284.js index a59e0536100fee8ef095d6dfb2933ee16d7526a9..0492a581e3163cbefd1bb80042a21d5ee5e64da7 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-284.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-284.js @@ -11,25 +11,31 @@ description: > data property of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'name' which is defined as non-configurable (15.4.5.1 step 5) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var arrObj = []; - - Object.defineProperty(arrObj, "property", { - value: 12 - }); - try { - Object.defineProperty(arrObj, "property", { - configurable: true - }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "property", 12, false, false, false); - } + +var arrObj = []; + +Object.defineProperty(arrObj, "property", { + value: 12 +}); +try { + Object.defineProperty(arrObj, "property", { + configurable: true + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arrObj, "property", 12); + + verifyNotWritable(arrObj, "property"); + + verifyNotEnumerable(arrObj, "property"); + + verifyNotConfigurable(arrObj, "property"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-285.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-285.js index 35bb914e35e44b32145f10e57e674890e64ef972..88de722520b8c588db3db6bad01a16028fd69a83 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-285.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-285.js @@ -11,34 +11,40 @@ description: > accessor property of 'O', test TypeError is thrown when updating the [[Get]] attribute value of 'name' which is defined as non-configurable (15.4.5.1 step 5) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var arrObj = []; +var arrObj = []; - function getFunc() { - return 12; - } - function setFunc(value) { - arrObj.setVerifyHelpProp = value; - } - Object.defineProperty(arrObj, "property", { - get: getFunc, - set: setFunc - }); - try { - Object.defineProperty(arrObj, "property", { - get: function () { - return 36; - } - }); - return false; - } catch (e) { - return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arrObj, "property", getFunc, setFunc, "setVerifyHelpProp", false, false); +function getFunc() { + return 12; +} +function setFunc(value) { + arrObj.setVerifyHelpProp = value; +} +Object.defineProperty(arrObj, "property", { + get: getFunc, + set: setFunc +}); +try { + Object.defineProperty(arrObj, "property", { + get: function () { + return 36; } + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(arrObj, "property", getFunc()); + + verifyWritable(arrObj, "property", "setVerifyHelpProp"); + + verifyNotEnumerable(arrObj, "property"); + + verifyNotConfigurable(arrObj, "property"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-286.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-286.js index 05930b970ee2e288c50849eccb45b9e4a30a27dd..5c0884c0661f41e7914b70eaf1af4322330ab4bc 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-286.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-286.js @@ -11,28 +11,32 @@ description: > accessor property of 'O', and 'desc' is accessor descriptor, test TypeError is thrown when updating the [[Set]] attribute value of 'name' (15.4.5.1 step 5) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var arrObj = []; - - function setFunc(value) { - arrObj.setVerifyHelpProp = value; - } - Object.defineProperty(arrObj, "property", { - set: setFunc - }); - try { - Object.defineProperty(arrObj, "property", { - set: function () {} - }); - return false; - } catch (e) { - return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arrObj, "property", undefined, setFunc, "setVerifyHelpProp", false, false); - } + +var arrObj = []; + +function setFunc(value) { + arrObj.setVerifyHelpProp = value; +} +Object.defineProperty(arrObj, "property", { + set: setFunc +}); +try { + Object.defineProperty(arrObj, "property", { + set: function () {} + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyWritable(arrObj, "property", "setVerifyHelpProp"); + + verifyNotEnumerable(arrObj, "property"); + + verifyNotConfigurable(arrObj, "property"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-287.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-287.js index a2e2cb8a7639dcf0159b5a323ea2c4a6a9cfabf4..474e8d5c7f7ce1fd31aa2115ab632af574e14326 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-287.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-287.js @@ -11,29 +11,33 @@ description: > accessor property of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'name' which is defined as non-configurable (15.4.5.1 step 5) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var arrObj = []; - - function setFunc(value) { - arrObj.setVerifyHelpProp = value; - } - Object.defineProperty(arrObj, "property", { - set: setFunc, - enumerable: false - }); - try { - Object.defineProperty(arrObj, "property", { - enumerable: true - }); - return false; - } catch (e) { - return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arrObj, "property", undefined, setFunc, "setVerifyHelpProp", false, false); - } + +var arrObj = []; + +function setFunc(value) { + arrObj.setVerifyHelpProp = value; +} +Object.defineProperty(arrObj, "property", { + set: setFunc, + enumerable: false +}); +try { + Object.defineProperty(arrObj, "property", { + enumerable: true + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyWritable(arrObj, "property", "setVerifyHelpProp"); + + verifyNotEnumerable(arrObj, "property"); + + verifyNotConfigurable(arrObj, "property"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-288.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-288.js index 77a5fc240f59a8ace2fb7a9254f383dab285d2cc..41212c239f594f06059a2cfc44d5235449d7479a 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-288.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-288.js @@ -11,29 +11,33 @@ description: > accessor property of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'name' which is defined as non-configurable (15.4.5.1 step 5) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var arrObj = []; - - function setFunc(value) { - arrObj.setVerifyHelpProp = value; - } - Object.defineProperty(arrObj, "property", { - set: setFunc, - configurable: false - }); - try { - Object.defineProperty(arrObj, "property", { - configurable: true - }); - return false; - } catch (e) { - return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arrObj, "property", undefined, setFunc, "setVerifyHelpProp", false, false); - } + +var arrObj = []; + +function setFunc(value) { + arrObj.setVerifyHelpProp = value; +} +Object.defineProperty(arrObj, "property", { + set: setFunc, + configurable: false +}); +try { + Object.defineProperty(arrObj, "property", { + configurable: true + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyWritable(arrObj, "property", "setVerifyHelpProp"); + + verifyNotEnumerable(arrObj, "property"); + + verifyNotConfigurable(arrObj, "property"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-289-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-289-1.js index 07b2729e383522817f1cf3df5a166050e1b79876..15cae2a8b89bfa412d5e0c3280a1552b89994fdb 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-289-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-289-1.js @@ -7,28 +7,34 @@ /*--- es5id: 15.2.3.6-4-289-1 description: > - Object.defineProperty - 'O' is an Arguments object of a function - that has formal parameters, 'name' is own property which is - defined in both [[ParameterMap]] of 'O' and 'O', and is deleted - afterwards, and 'desc' is data descriptor, test 'name' is - redefined in 'O' with all correct attribute values (10.6 - [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js ----*/ + Object.defineProperty - 'O' is an Arguments object of a function + that has formal parameters, 'name' is own property which is + defined in both [[ParameterMap]] of 'O' and 'O', and is deleted + afterwards, and 'desc' is data descriptor, test 'name' is + redefined in 'O' with all correct attribute values (10.6 + [[DefineOwnProperty]] step 3) +includes: [propertyHelper.js] + ---*/ -function testcase() { - return (function (a, b, c) { - delete arguments[0]; - Object.defineProperty(arguments, "0", { - value: 10, - writable: true, - enumerable: true, - configurable: true - }); - var verifyFormal = a === 0; - return dataPropertyAttributesAreCorrect(arguments, "0", 10, true, true, true) && verifyFormal; - }(0, 1, 2)); +;(function (a, b, c) { + delete arguments[0]; + + Object.defineProperty(arguments, "0", { + value: 10, + writable: true, + enumerable: true, + configurable: true + }); + + if (a !== 0) { + $ERROR("Expected a === 0, actually " + a); } -runTestCase(testcase); + + verifyEqualTo(arguments, "0", 10); + + verifyWritable(arguments, "0"); + + verifyEnumerable(arguments, "0"); + + verifyConfigurable(arguments, "0"); +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-289.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-289.js index 997f3ef56534245c71223a391ed5799b689d2c18..f66c10d37c50fce1570627600a5a4712b295250d 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-289.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-289.js @@ -11,21 +11,23 @@ description: > property of 'O', and is deleted afterwards, and 'desc' is data descriptor, test 'name' is redefined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - delete arguments[0]; - Object.defineProperty(arguments, "0", { - value: 10, - writable: true, - enumerable: true, - configurable: true - }); - return dataPropertyAttributesAreCorrect(arguments, "0", 10, true, true, true); - }(0, 1, 2)); - } -runTestCase(testcase); +(function () { + delete arguments[0]; + Object.defineProperty(arguments, "0", { + value: 10, + writable: true, + enumerable: true, + configurable: true + }); + verifyEqualTo(arguments, "0", 10); + + verifyWritable(arguments, "0"); + + verifyEnumerable(arguments, "0"); + + verifyConfigurable(arguments, "0"); +}(0, 1, 2)); + diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-290-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-290-1.js index e76e4ae2398a73a6e91135c83ede647bbac63a21..515c5e98560e9d6e3c164e775cac4c9399a85267 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-290-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-290-1.js @@ -13,28 +13,32 @@ description: > afterwards, and 'desc' is accessor descriptor, test 'name' is redefined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function (a, b, c) { - delete arguments[0]; - function getFunc() { - return 10; - } - function setFunc(value) { - this.setVerifyHelpProp = value; - } - Object.defineProperty(arguments, "0", { - get: getFunc, - set: setFunc, - enumerable: true, - configurable: true - }); - var verifyFormal = a === 0; - return accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, setFunc, "setVerifyHelpProp", true, true) && verifyFormal; - }(0, 1, 2)); +(function (a, b, c) { + delete arguments[0]; + function getFunc() { + return 10; } -runTestCase(testcase); + function setFunc(value) { + this.setVerifyHelpProp = value; + } + Object.defineProperty(arguments, "0", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + if (a !== 0) { + $ERROR('Expected a === 0, actually ' + a); + } + + verifyEqualTo(arguments, "0", getFunc()); + + verifyWritable(arguments, "0", "setVerifyHelpProp"); + + verifyEnumerable(arguments, "0"); + + verifyConfigurable(arguments, "0"); +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-290.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-290.js index 0736bdf066f609efbf89010e0894e993f9f4d205..87fe260e043f7b23741c7f70360673200b6f2b3b 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-290.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-290.js @@ -11,27 +11,28 @@ description: > property of 'O', and is deleted afterwards, and 'desc' is accessor descriptor, test 'name' is redefined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - delete arguments[0]; - function getFunc() { - return 10; - } - function setFunc(value) { - this.setVerifyHelpProp = value; - } - Object.defineProperty(arguments, "0", { - get: getFunc, - set: setFunc, - enumerable: true, - configurable: true - }); - return accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, setFunc, "setVerifyHelpProp", true, true); - }(0, 1, 2)); +(function () { + delete arguments[0]; + function getFunc() { + return 10; } -runTestCase(testcase); + function setFunc(value) { + this.setVerifyHelpProp = value; + } + Object.defineProperty(arguments, "0", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + verifyEqualTo(arguments, "0", getFunc()); + + verifyWritable(arguments, "0", "setVerifyHelpProp"); + + verifyEnumerable(arguments, "0"); + + verifyConfigurable(arguments, "0"); +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-291-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-291-1.js index cc4ca1012830ee416a5cc62990505207656ca9cb..17e1248af3b18a705fb863ab21eaab42ca659bbc 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-291-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-291-1.js @@ -12,31 +12,33 @@ description: > which is also defined in [[ParameterMap]] of 'O', and 'desc' is accessor descriptor, test updating multiple attribute values of 'name' (10.6 [[DefineOwnProperty]] step 3 and 5.a.i) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function (a, b, c) { - function getFunc1() { - return 10; - } - Object.defineProperty(arguments, "0", { - get: getFunc1, - enumerable: true, - configurable: true - }); - function getFunc2() { - return 20; - } - Object.defineProperty(arguments, "0", { - get: getFunc2, - enumerable: false, - configurable: false - }); - var verifyFormal = a === 0; - return accessorPropertyAttributesAreCorrect(arguments, "0", getFunc2, undefined, undefined, false, false) && verifyFormal; - }(0, 1, 2)); +(function (a, b, c) { + function getFunc1() { + return 10; } -runTestCase(testcase); + Object.defineProperty(arguments, "0", { + get: getFunc1, + enumerable: true, + configurable: true + }); + function getFunc2() { + return 20; + } + Object.defineProperty(arguments, "0", { + get: getFunc2, + enumerable: false, + configurable: false + }); + if (a !== 0) { + $ERROR('Expected a === 0, actually ' + a); + } + + verifyEqualTo(arguments, "0", getFunc2()); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-291.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-291.js index d156266093d1747aa3161e8dde5a313fc0b74bfc..be6a157310eea47cbc3ac81b0d8f211353f77038 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-291.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-291.js @@ -11,30 +11,29 @@ description: > accessor property of 'O', and 'desc' is accessor descriptor, test updating multiple attribute values of 'name' (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - function getFunc1() { - return 10; - } - Object.defineProperty(arguments, "0", { - get: getFunc1, - enumerable: true, - configurable: true - }); - function getFunc2() { - return 20; - } - Object.defineProperty(arguments, "0", { - get: getFunc2, - enumerable: false, - configurable: false - }); - return accessorPropertyAttributesAreCorrect(arguments, "0", getFunc2, undefined, undefined, false, false); - }(0, 1, 2)); +(function () { + function getFunc1() { + return 10; } -runTestCase(testcase); + Object.defineProperty(arguments, "0", { + get: getFunc1, + enumerable: true, + configurable: true + }); + function getFunc2() { + return 20; + } + Object.defineProperty(arguments, "0", { + get: getFunc2, + enumerable: false, + configurable: false + }); + verifyEqualTo(arguments, "0", getFunc2()); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-292-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-292-1.js index 392578ffd3b359cbbb5f95e9c760d40539058fb1..81810554bdbb241fb10729b00f321343e8a651f4 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-292-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-292-1.js @@ -12,21 +12,27 @@ description: > also defined in [[ParameterMap]] of 'O', and 'desc' is data descriptor, test updating multiple attribute values of 'name' (10.6 [[DefineOwnProperty]] step 3 and 5.b) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] +flags: [noStrict] ---*/ -function testcase() { - return (function (a, b, c) { - Object.defineProperty(arguments, "0", { - value: 20, - writable: false, - enumerable: false, - configurable: false - }); - var verifyFormal = a === 20; - return dataPropertyAttributesAreCorrect(arguments, "0", 20, false, false, false) && verifyFormal; - }(0, 1, 2)); +(function (a, b, c) { + Object.defineProperty(arguments, "0", { + value: 20, + writable: false, + enumerable: false, + configurable: false + }); + + if (a !== 20) { + $ERROR('Expected a === 20, actually ' + a); } -runTestCase(testcase); + + verifyEqualTo(arguments, "0", 20); + + verifyNotWritable(arguments, "0"); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-292-2.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-292-2.js new file mode 100644 index 0000000000000000000000000000000000000000..312f82a29fe7ec662462de9a3319328a37a65927 --- /dev/null +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-292-2.js @@ -0,0 +1,40 @@ +// Copyright (c) 2012 Ecma International. All rights reserved. +// Ecma International makes this code available under the terms and conditions set +// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +// "Use Terms"). Any redistribution of this code must retain the above +// copyright and this notice and otherwise comply with the Use Terms. + +/*--- +es5id: 15.2.3.6-4-292-1 +description: > + Object.defineProperty - 'O' is an Arguments object of a function + that has formal parameters, 'name' is own property of 'O' which is + also defined in [[ParameterMap]] of 'O', and 'desc' is data + descriptor, test updating multiple attribute values of 'name' + (10.6 [[DefineOwnProperty]] step 3 and 5.b) +includes: [propertyHelper.js] +flags: [onlyStrict] +---*/ + +(function (a, b, c) { + "use strict"; + + Object.defineProperty(arguments, "0", { + value: 20, + writable: false, + enumerable: false, + configurable: false + }); + + if (a !== 0) { + $ERROR('Expected a === 0, actually ' + a); + } + + verifyEqualTo(arguments, "0", 20); + + verifyNotWritable(arguments, "0"); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-292.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-292.js index 64d9d5de94a24e2b2b871c9458f3a12b9c589e9e..6aad654c369e50dbe8aa9196182ab07f267733a6 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-292.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-292.js @@ -11,20 +11,22 @@ description: > data property of 'O', and 'desc' is data descriptor, test updating multiple attribute values of 'name' (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - Object.defineProperty(arguments, "0", { - value: 20, - writable: false, - enumerable: false, - configurable: false - }); - return dataPropertyAttributesAreCorrect(arguments, "0", 20, false, false, false); - }(0, 1, 2)); - } -runTestCase(testcase); +(function () { + Object.defineProperty(arguments, "0", { + value: 20, + writable: false, + enumerable: false, + configurable: false + }); + verifyEqualTo(arguments, "0", 20); + + verifyNotWritable(arguments, "0"); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); +}(0, 1, 2)); + diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-293-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-293-1.js index d7d07da1d464e67b6a6ee16ed0f6c3e0585b6a39..f8fb8cc926e0b8396e632ccd1989265383191fdf 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-293-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-293-1.js @@ -12,21 +12,23 @@ description: > the [[Value]] attribute value of 'name' which is defined as non-writable and configurable (10.6 [[DefineOwnProperty]] step 3 and 5b) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - Object.defineProperty(arguments, "0", { - value: 10, - writable: false - }); - Object.defineProperty(arguments, "0", { - value: 20 - }); - return dataPropertyAttributesAreCorrect(arguments, "0", 20, false, true, true); - }(0, 1, 2)); - } -runTestCase(testcase); +(function () { + Object.defineProperty(arguments, "0", { + value: 10, + writable: false + }); + Object.defineProperty(arguments, "0", { + value: 20 + }); + verifyEqualTo(arguments, "0", 20); + + verifyNotWritable(arguments, "0"); + + verifyEnumerable(arguments, "0"); + + verifyConfigurable(arguments, "0"); +}(0, 1, 2)); + diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-293-2.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-293-2.js index d4659057b359a4e413ca01c79105c02dfc5c7bc3..5cfdd482b0048102c7d584349ad74caf8c392646 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-293-2.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-293-2.js @@ -13,28 +13,40 @@ description: > is thrown when updating the [[Value]] attribute value of 'name' which is defined as unwritable and non-configurable (10.6 [[DefineOwnProperty]] step 4 and step 5b) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] +flags: [noStrict] ---*/ -function testcase() { - return (function (a, b, c) { - Object.defineProperty(arguments, "0", { - value: 10, - writable: false, - enumerable: false, - configurable: false - }); - try { - Object.defineProperty(arguments, "0", { - value: 20 - }); - } catch (e) { - var verifyFormal = a === 10; - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 10, false, false, false) && verifyFormal; - } - return false; - }(0, 1, 2)); +(function (a, b, c) { + Object.defineProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + value: 20 + }); + $ERROR("Expected an exception."); + + } catch (e) { + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + + verifyEqualTo(arguments, "0", 10); + + verifyNotWritable(arguments, "0"); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); + + if (a !== 10) { + $ERROR('Expected "a === 10", actually ' + a); + } + } -runTestCase(testcase); +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-293-3.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-293-3.js index 91068d57c928955ab064d8cdd83cd65502440545..1f51f9870bd95534faf4187c7e97e43a643a5d1c 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-293-3.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-293-3.js @@ -13,22 +13,27 @@ description: > is not thrown when updating the [[Value]] attribute value of 'name' which is defined as non-writable and configurable (10.6 [[DefineOwnProperty]] step 3 and step 5.b) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] +flags: [noStrict] ---*/ -function testcase() { - return (function (a, b, c) { - Object.defineProperty(arguments, "0", { - value: 10, - writable: false, - }); - Object.defineProperty(arguments, "0", { - value: 20 - }); - var verifyFormal = a === 10; - return dataPropertyAttributesAreCorrect(arguments, "0", 20, false, true, true) && verifyFormal; - }(0, 1, 2)); +(function (a, b, c) { + Object.defineProperty(arguments, "0", { + value: 10, + writable: false, + }); + Object.defineProperty(arguments, "0", { + value: 20 + }); + if (a !== 10) { + $ERROR('Expected "a === 10", actually ' + a); } -runTestCase(testcase); + + verifyEqualTo(arguments, "0", 20); + + verifyNotWritable(arguments, "0"); + + verifyEnumerable(arguments, "0"); + + verifyConfigurable(arguments, "0"); +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-293-4.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-293-4.js new file mode 100644 index 0000000000000000000000000000000000000000..5296f3f3f9aae4fcf57ec5611599f9159ec49bcc --- /dev/null +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-293-4.js @@ -0,0 +1,39 @@ +// Copyright (c) 2012 Ecma International. All rights reserved. +// Ecma International makes this code available under the terms and conditions set +// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +// "Use Terms"). Any redistribution of this code must retain the above +// copyright and this notice and otherwise comply with the Use Terms. + +/*--- +es5id: 15.2.3.6-4-293-4 +description: > + Object.defineProperty - 'O' is an Arguments object of a function + that has formal parameters, 'name' is own data property of 'O' + which is also defined in [[ParameterMap]] of 'O', test TypeError + is not thrown when updating the [[Value]] attribute value of + 'name' which is defined as non-writable and configurable (10.6 + [[DefineOwnProperty]] step 3 and step 5.b) +includes: [propertyHelper.js] +flags: [onlyStrict] +---*/ + +(function (a, b, c) { + Object.defineProperty(arguments, "0", { + value: 10, + writable: false, + }); + Object.defineProperty(arguments, "0", { + value: 20 + }); + if (a !== 0) { + $ERROR('Expected "a === 0", actually ' + a); + } + + verifyEqualTo(arguments, "0", 20); + + verifyNotWritable(arguments, "0"); + + verifyEnumerable(arguments, "0"); + + verifyConfigurable(arguments, "0"); +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-293.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-293.js index a24456bad3c71ed802adcedf504c5d6dd906fec6..767d9653159a5589831411fccf183ead45281b72 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-293.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-293.js @@ -12,27 +12,33 @@ description: > [[Value]] attribute value of 'name' which is defined as non-writable and non-configurable (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - Object.defineProperty(arguments, "0", { - value: 10, - writable: false, - enumerable: false, - configurable: false - }); - try { - Object.defineProperty(arguments, "0", { - value: 20 - }); - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 10, false, false, false); - } - return false; - }(0, 1, 2)); +(function () { + Object.defineProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + value: 20 + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyEqualTo(arguments, "0", 10); + + verifyNotWritable(arguments, "0"); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + } -runTestCase(testcase); +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-294-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-294-1.js index 100ec52e12cc308cef88f946a713523d6e86bde5..4bc30b1f70cef1a7d5733e4c558b7159cee189b1 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-294-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-294-1.js @@ -13,28 +13,41 @@ description: > is thrown when updating the [[Writable]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4 and 5b) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] +flags: [noStrict] ---*/ -function testcase() { - return (function (a, b, c) { - Object.defineProperty(arguments, "0", { - value: 10, - writable: false, - enumerable: false, - configurable: false - }); - try { - Object.defineProperty(arguments, "0", { - writable: true - }); - } catch (e) { - var verifyFormal = a === 10; - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 10, false, false, false) && verifyFormal; - } - return false; - }(0, 1, 2)); +(function (a, b, c) { + Object.defineProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + writable: true + }); + $ERROR("Expected an exception."); + } catch (e) { + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + + verifyEqualTo(arguments, "0", 10); + + verifyNotWritable(arguments, "0"); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); + + if (a !== 10) { + $ERROR('Expected "a === 10", actually ' + a); + } + } -runTestCase(testcase); + +}(0, 1, 2)); + diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-294.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-294.js index 5b82a901a5504e9a628a1f6112b9729d3eca484b..44566f5ce4d391b967e69404b8c7a67081618d1f 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-294.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-294.js @@ -11,27 +11,33 @@ description: > data property of 'O', test TypeError is thrown when updating the [[Writable]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - Object.defineProperty(arguments, "0", { - value: 10, - writable: false, - enumerable: false, - configurable: false - }); - try { - Object.defineProperty(arguments, "0", { - writable: true - }); - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 10, false, false, false); - } - return false; - }(0, 1, 2)); +(function () { + Object.defineProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + writable: true + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyEqualTo(arguments, "0", 10); + + verifyNotWritable(arguments, "0"); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + } -runTestCase(testcase); +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-295-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-295-1.js index c485e86c6d3a637e597d75cd6abc4cbcdb28f942..d8c53d426344854d1f6963dd825c620f3b46d190 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-295-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-295-1.js @@ -13,28 +13,38 @@ description: > is thrown when updating the [[Enumerable]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4 and step 5b) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] +flags: [noStrict] ---*/ -function testcase() { - return (function (a, b, c) { - Object.defineProperty(arguments, "0", { - value: 10, - writable: false, - enumerable: true, - configurable: false - }); - try { - Object.defineProperty(arguments, "0", { - enumerable: false - }); - } catch (e) { - var verifyFormal = a === 10; - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 10, false, true, false) && verifyFormal; - } - return false; - }(0, 1, 2)); + +(function (a, b, c) { + Object.defineProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + enumerable: false + }); + $ERROR("Expected an exception."); + } catch (e) { + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + + verifyEqualTo(arguments, "0", 10); + + verifyNotWritable(arguments, "0"); + + verifyEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); + + if (a !== 10) { + $ERROR('Expected "a === 10", actually ' + a); + } } -runTestCase(testcase); +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-295.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-295.js index 4965a2aa726f915b157f6d794166842b4e1ac557..a15919c64dc1004234c113fd1aa54d830033fbac 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-295.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-295.js @@ -11,27 +11,33 @@ description: > data property of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - Object.defineProperty(arguments, "0", { - value: 10, - writable: false, - enumerable: true, - configurable: false - }); - try { - Object.defineProperty(arguments, "0", { - enumerable: false - }); - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 10, false, true, false); - } - return false; - }(0, 1, 2)); +(function () { + Object.defineProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + enumerable: false + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyEqualTo(arguments, "0", 10); + + verifyNotWritable(arguments, "0"); + + verifyEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + } -runTestCase(testcase); +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-296-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-296-1.js index 570a234da43387bb6b90b4697b8e41a491d5296d..ff03da1019a03a755e7ac1e4b05d54a894506e18 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-296-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-296-1.js @@ -13,28 +13,37 @@ description: > is thrown when updating the [[Configurable]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4 and step 5b) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] +flags: [noStrict] ---*/ -function testcase() { - return (function (a, b, c) { - Object.defineProperty(arguments, "0", { - value: 10, - writable: false, - enumerable: false, - configurable: false - }); - try { - Object.defineProperty(arguments, "0", { - configurable: true - }); - } catch (e) { - var verifyFormal = a === 10; - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 10, false, false, false) && verifyFormal; - } - return false; - }(0, 1, 2)); +(function (a, b, c) { + Object.defineProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + configurable: true + }); + $ERROR("Expected an exception."); + } catch (e) { + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + + verifyEqualTo(arguments, "0", 10); + + verifyNotWritable(arguments, "0"); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); + + if (a !== 10) { + $ERROR('Expected "a === 10", actually ' + a); + } } -runTestCase(testcase); +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-296.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-296.js index 45ee0515fc08fa9af7a5a3b9d805af20d9137f3b..ec812f9c1a9fa55cf7831fafbeba2413227765f2 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-296.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-296.js @@ -11,27 +11,33 @@ description: > data property of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - Object.defineProperty(arguments, "0", { - value: 10, - writable: false, - enumerable: false, - configurable: false - }); - try { - Object.defineProperty(arguments, "0", { - configurable: true - }); - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 10, false, false, false); - } - return false; - }(0, 1, 2)); +(function () { + Object.defineProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + configurable: true + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyEqualTo(arguments, "0", 10); + + verifyNotWritable(arguments, "0"); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + } -runTestCase(testcase); +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-297-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-297-1.js index d4fe4f15f4dd60ae829376689f4cbb978b5d7cd8..a5ac8f3510f76293c8eb6f5c3c87a4941cb4d22c 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-297-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-297-1.js @@ -13,33 +13,40 @@ description: > is thrown when updating the [[Get]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4 and step 5a) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function (a, b, c) { - function getFunc1() { - return 10; - } - Object.defineProperty(arguments, "0", { - get: getFunc1, - enumerable: false, - configurable: false - }); - function getFunc2() { - return 20; - } - try { - Object.defineProperty(arguments, "0", { - get: getFunc2 - }); - } catch (e) { - var verifyFormal = a === 0; - return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc1, undefined, undefined, false, false) && verifyFormal; - } - return false; - }(0, 1, 2)); +(function (a, b, c) { + function getFunc1() { + return 10; } -runTestCase(testcase); + Object.defineProperty(arguments, "0", { + get: getFunc1, + enumerable: false, + configurable: false + }); + function getFunc2() { + return 20; + } + try { + Object.defineProperty(arguments, "0", { + get: getFunc2 + }); + $ERROR("Expected an exception."); + } catch (e) { + if (a !== 0) { + $ERROR('Expected a === 0, actually ' + a); + } + + verifyEqualTo(arguments, "0", getFunc1()); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + + } +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-297.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-297.js index 6544efa66ec56f9cd82fd9f3728bcd1a0b8825b2..7af355e330e3d08af74ee506b9e500d62f1fc201 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-297.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-297.js @@ -11,32 +11,36 @@ description: > accessor property of 'O', test TypeError is thrown when updating the [[Get]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - function getFunc1() { - return 10; - } - Object.defineProperty(arguments, "0", { - get: getFunc1, - enumerable: false, - configurable: false - }); - function getFunc2() { - return 20; - } - try { - Object.defineProperty(arguments, "0", { - get: getFunc2 - }); - } catch (e) { - return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc1, undefined, undefined, false, false); - } - return false; - }(0, 1, 2)); +(function () { + function getFunc1() { + return 10; } -runTestCase(testcase); + Object.defineProperty(arguments, "0", { + get: getFunc1, + enumerable: false, + configurable: false + }); + function getFunc2() { + return 20; + } + try { + Object.defineProperty(arguments, "0", { + get: getFunc2 + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyEqualTo(arguments, "0", getFunc1()); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + + } +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-298-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-298-1.js index 6e701c1e23c235420db67cc21aea48adfd5e327c..8e6244fffdf09dfa80910326f1a69a01e2752374 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-298-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-298-1.js @@ -13,35 +13,41 @@ description: > is thrown when updating the [[Set]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] steps 4 and 5a) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function (a, b, c) { - function getFunc() { - return 10; - } - Object.defineProperty(arguments, "0", { - get: getFunc, - set: undefined, - enumerable: false, - configurable: false - }); - function setFunc(value) { - this.setVerifyHelpProp = value; - } - try { - Object.defineProperty(arguments, "0", { - set: setFunc - }); - } catch (e) { - var verifyFormal = a === 0; - return e instanceof TypeError && - accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, false, false) && verifyFormal; - } - return false; - }(0, 1, 2)); +(function (a, b, c) { + function getFunc() { + return 10; } -runTestCase(testcase); + Object.defineProperty(arguments, "0", { + get: getFunc, + set: undefined, + enumerable: false, + configurable: false + }); + function setFunc(value) { + this.setVerifyHelpProp = value; + } + try { + Object.defineProperty(arguments, "0", { + set: setFunc + }); + $ERROR("Expected an exception."); + } catch (e) { + if (a !== 0) { + $ERROR('Expected a === 0, actually ' + a); + } + + verifyEqualTo(arguments, "0", getFunc()); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + + } +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-298.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-298.js index 1e3ac280d761246c3e3f22361aedbd0dbd6086d4..628dd20af7380a08b56cfa19ac59df5f6732d5e4 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-298.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-298.js @@ -11,33 +11,37 @@ description: > accessor property of 'O', test TypeError is thrown when updating the [[Set]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - function getFunc() { - return 10; - } - Object.defineProperty(arguments, "0", { - get: getFunc, - set: undefined, - enumerable: false, - configurable: false - }); - function setFunc(value) { - this.setVerifyHelpProp = value; - } - try { - Object.defineProperty(arguments, "0", { - set: setFunc - }); - } catch (e) { - return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, false, false); - } - return false; - }(0, 1, 2)); +(function () { + function getFunc() { + return 10; } -runTestCase(testcase); + Object.defineProperty(arguments, "0", { + get: getFunc, + set: undefined, + enumerable: false, + configurable: false + }); + function setFunc(value) { + this.setVerifyHelpProp = value; + } + try { + Object.defineProperty(arguments, "0", { + set: setFunc + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyEqualTo(arguments, "0", getFunc()); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + + } +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-299-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-299-1.js index 38ce1f45b62f439dd8e5dcf065839ad330b9a0d4..160f649efdce1cdac2155d088a2042d681030336 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-299-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-299-1.js @@ -13,31 +13,36 @@ description: > is thrown when updating the [[Enumerable]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] steps 4 and 5a) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function (a, b, c) { - function getFunc() { - return 10; - } - Object.defineProperty(arguments, "0", { - get: getFunc, - enumerable: true, - configurable: false - }); - try { - Object.defineProperty(arguments, "0", { - enumerable: false - }); - } catch (e) { - var verifyFormal = a === 0; - return e instanceof TypeError && - accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, true, false) && verifyFormal; - } - return false; - }(0, 1, 2)); +(function (a, b, c) { + function getFunc() { + return 10; } -runTestCase(testcase); + Object.defineProperty(arguments, "0", { + get: getFunc, + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + enumerable: false + }); + $ERROR("Expected an exception."); + } catch (e) { + if (a !== 0) { + $ERROR('Expected a === 0, actually ' + a); + } + verifyEqualTo(arguments, "0", getFunc()); + + verifyEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + + } +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-299.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-299.js index fa0817b65a89396884ef61cb290c1da0c29bcfb6..a6721b999556b1cf29a2a3a872e2f489ed065b65 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-299.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-299.js @@ -11,29 +11,33 @@ description: > accessor property of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - function getFunc() { - return 10; - } - Object.defineProperty(arguments, "0", { - get: getFunc, - enumerable: true, - configurable: false - }); - try { - Object.defineProperty(arguments, "0", { - enumerable: false - }); - } catch (e) { - return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, true, false); - } - return false; - }(0, 1, 2)); +(function () { + function getFunc() { + return 10; } -runTestCase(testcase); + Object.defineProperty(arguments, "0", { + get: getFunc, + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + enumerable: false + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyEqualTo(arguments, "0", getFunc()); + + verifyEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + + } +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-300-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-300-1.js index 8ad3eae8f9c0aba195656c96411177ab69cab145..c48975ff1e81fd702f7bdfab7403454c0b6c9941 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-300-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-300-1.js @@ -13,31 +13,36 @@ description: > is thrown when updating the [[Configurable]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4 and step 5a) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function (a, b, c) { - function getFunc() { - return 0; - } - Object.defineProperty(arguments, "0", { - get: getFunc, - enumerable: true, - configurable: false - }); - try { - Object.defineProperty(arguments, "0", { - configurable: true - }); - } catch (e) { - var verifyFormal = a === 0; - return e instanceof TypeError && - accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, true, false) && verifyFormal; - } - return false; - }(0, 1, 2)); +(function (a, b, c) { + function getFunc() { + return 0; } -runTestCase(testcase); + Object.defineProperty(arguments, "0", { + get: getFunc, + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + configurable: true + }); + $ERROR("Expected an exception."); + } catch (e) { + if (a !== 0) { + $ERROR('Expected a === 0, actually ' + a); + } + verifyEqualTo(arguments, "0", getFunc()); + + verifyEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + + } +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-300.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-300.js index c126506f1d107d06d023624dbd6628edf2c048e6..61f4ecc5aacd6c5ae1416a88db195e89ce9eb61a 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-300.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-300.js @@ -11,29 +11,33 @@ description: > accessor property of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - function getFunc() { - return 10; - } - Object.defineProperty(arguments, "0", { - get: getFunc, - enumerable: true, - configurable: false - }); - try { - Object.defineProperty(arguments, "0", { - configurable: true - }); - } catch (e) { - return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, true, false); - } - return false; - }(0, 1, 2)); +(function () { + function getFunc() { + return 10; } -runTestCase(testcase); + Object.defineProperty(arguments, "0", { + get: getFunc, + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + configurable: true + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyEqualTo(arguments, "0", getFunc()); + + verifyEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + + } +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-301-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-301-1.js index 6b1ec784e90490bcc93882326e8b97a805625ac4..10b1e63eca660990e641a7230abc57494f6698a4 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-301-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-301-1.js @@ -12,22 +12,26 @@ description: > 'O', and 'desc' is data descriptor, test 'name' is defined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function (a, b, c) { - delete arguments[0]; - Object.defineProperty(arguments, "0", { - value: 10, - writable: false, - enumerable: false, - configurable: false - }); - var verifyFormal = a === 0; - return dataPropertyAttributesAreCorrect(arguments, "0", 10, false, false, false) && verifyFormal; - }(0, 1, 2)); +(function (a, b, c) { + delete arguments[0]; + Object.defineProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false + }); + if (a !== 0) { + $ERROR("Expected a === 0, actually " + a); } -runTestCase(testcase); + verifyEqualTo(arguments, "0", 10); + + verifyNotWritable(arguments, "0"); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); +}(0, 1, 2)); + diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-301.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-301.js index 84af90c001493c769289b59c347d11080f1f3900..1708a50cd54f114b17541bd23e087963bd16e3bf 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-301.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-301.js @@ -12,21 +12,23 @@ description: > [[ParameterMap]] of 'O', and 'desc' is data descriptor, test 'name' is defined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - delete arguments[0]; - Object.defineProperty(arguments, "0", { - value: 10, - writable: false, - enumerable: false, - configurable: false - }); - return dataPropertyAttributesAreCorrect(arguments, "0", 10, false, false, false); - }(0, 1, 2)); - } -runTestCase(testcase); +(function () { + delete arguments[0]; + Object.defineProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false + }); + verifyEqualTo(arguments, "0", 10); + + verifyNotWritable(arguments, "0"); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); +}(0, 1, 2)); + diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-302-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-302-1.js index f64d1b88bf211f0e72f931ea37b904b8e2d374e9..86faf6022276220361718a41a545828581a61367 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-302-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-302-1.js @@ -13,28 +13,31 @@ description: > accessor descriptor, test 'name' is defined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3 and step 5a) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function (a, b, c) { - delete arguments[0]; - function getFunc() { - return 10; - } - function setFunc(value) { - this.setVerifyHelpProp = value; - } - Object.defineProperty(arguments, "0", { - get: getFunc, - set: setFunc, - enumerable: false, - configurable: false - }); - var verifyFormal = a === 0; - return accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, setFunc, "setVerifyHelpProp", false, false) && verifyFormal; - }(0, 1, 2)); +(function (a, b, c) { + delete arguments[0]; + function getFunc() { + return 10; } -runTestCase(testcase); + function setFunc(value) { + this.setVerifyHelpProp = value; + } + Object.defineProperty(arguments, "0", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: false + }); + if (a !== 0) { + $ERROR('Expected a === 0, actually ' + a); + } + verifyEqualTo(arguments, "0", getFunc()); + + verifyWritable(arguments, "0", "setVerifyHelpProp"); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-302.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-302.js index 030cbe3dd40579859b7b77a1c3e75af715648b2c..cb92c27f8a7d112f78635b854837778362ffeb4b 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-302.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-302.js @@ -12,27 +12,28 @@ description: > 'O', and 'desc' is accessor descriptor, test 'name' is defined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - delete arguments[0]; - function getFunc() { - return 10; - } - function setFunc(value) { - this.setVerifyHelpProp = value; - } - Object.defineProperty(arguments, "0", { - get: getFunc, - set: setFunc, - enumerable: false, - configurable: false - }); - return accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, setFunc, "setVerifyHelpProp", false, false); - }(0, 1, 2)); +(function () { + delete arguments[0]; + function getFunc() { + return 10; } -runTestCase(testcase); + function setFunc(value) { + this.setVerifyHelpProp = value; + } + Object.defineProperty(arguments, "0", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: false + }); + verifyEqualTo(arguments, "0", getFunc()); + + verifyWritable(arguments, "0", "setVerifyHelpProp"); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); +}(0, 1, 2)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-303.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-303.js index 4cc9b8b563adc49a30f3f9a086266b2594d1a849..215818404a98807ab90de7addd95ae9a94d75a2b 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-303.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-303.js @@ -12,30 +12,29 @@ description: > [[ParameterMap]] of 'O', and 'desc' is accessor descriptor, test updating multiple attribute values of 'name' (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - function getFunc1() { - return 10; - } - Object.defineProperty(arguments, "0", { - get: getFunc1, - enumerable: true, - configurable: true - }); - function getFunc2() { - return 20; - } - Object.defineProperty(arguments, "0", { - get: getFunc2, - enumerable: false, - configurable: false - }); - return accessorPropertyAttributesAreCorrect(arguments, "0", getFunc2, undefined, undefined, false, false); - }()); +(function () { + function getFunc1() { + return 10; } -runTestCase(testcase); + Object.defineProperty(arguments, "0", { + get: getFunc1, + enumerable: true, + configurable: true + }); + function getFunc2() { + return 20; + } + Object.defineProperty(arguments, "0", { + get: getFunc2, + enumerable: false, + configurable: false + }); + verifyEqualTo(arguments, "0", getFunc2()); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); +}()); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-304.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-304.js index 0af11ce929b197516059cc140d9f8183559bfb14..5bf3c965bc3cd4e5036e7e98f36c43a579eb467f 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-304.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-304.js @@ -12,20 +12,22 @@ description: > [[ParameterMap]] of 'O', and 'desc' is data descriptor, test updating multiple attribute values of 'name' (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - Object.defineProperty(arguments, "0", { - value: 20, - writable: false, - enumerable: false, - configurable: false - }); - return dataPropertyAttributesAreCorrect(arguments, "0", 20, false, false, false); - }()); - } -runTestCase(testcase); +(function () { + Object.defineProperty(arguments, "0", { + value: 20, + writable: false, + enumerable: false, + configurable: false + }); + verifyEqualTo(arguments, "0", 20); + + verifyNotWritable(arguments, "0"); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); +}()); + diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-305.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-305.js index a16f290b5febe6856c00f4c206b780e06c3197e0..1d788184b3e3836d50cb20c52c340a1d7f3560c3 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-305.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-305.js @@ -12,27 +12,33 @@ description: > [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Value]] attribute value of 'name' which is not writable and not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - Object.defineProperty(arguments, "0", { - value: 0, - writable: false, - configurable: false - }); - - try { - Object.defineProperty(arguments, "0", { - value: 10 - }); - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 0, false, false, false); - } - return false; - }()); +(function () { + Object.defineProperty(arguments, "0", { + value: 0, + writable: false, + configurable: false + }); + + try { + Object.defineProperty(arguments, "0", { + value: 10 + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyEqualTo(arguments, "0", 0); + + verifyNotWritable(arguments, "0"); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + } -runTestCase(testcase); +}()); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-306.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-306.js index a9f64c1ddda0c426384c6c57738b689a2642390a..ba9d9b1003a5945524c1d74007e61c9af4245aaa 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-306.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-306.js @@ -12,27 +12,33 @@ description: > [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Writable]] attribute value of 'name' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - Object.defineProperty(arguments, "0", { - value: 0, - writable: false, - enumerable: false, - configurable: false - }); - try { - Object.defineProperty(arguments, "0", { - writable: true - }); - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 0, false, false, false); - } - return false; - }()); +(function () { + Object.defineProperty(arguments, "0", { + value: 0, + writable: false, + enumerable: false, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + writable: true + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyEqualTo(arguments, "0", 0); + + verifyNotWritable(arguments, "0"); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + } -runTestCase(testcase); +}()); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-307.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-307.js index 933c5503a5434e05520f0c7146e66cfe2ac71fa3..3a63380cca80c6d47d05da24c92a72012a4ad7ac 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-307.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-307.js @@ -12,27 +12,33 @@ description: > [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'name' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - Object.defineProperty(arguments, "0", { - value: 0, - writable: false, - enumerable: true, - configurable: false - }); - try { - Object.defineProperty(arguments, "0", { - enumerable: false - }); - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 0, false, true, false); - } - return false; - }()); +(function () { + Object.defineProperty(arguments, "0", { + value: 0, + writable: false, + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + enumerable: false + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyEqualTo(arguments, "0", 0); + + verifyNotWritable(arguments, "0"); + + verifyEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + } -runTestCase(testcase); +}()); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-308.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-308.js index 68decc8ec9ebb2775dc7db91381f13d54fad2359..54c2560ebab8cebf3bd4e5fb480977581c29f148 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-308.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-308.js @@ -12,27 +12,33 @@ description: > [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'name' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - Object.defineProperty(arguments, "0", { - value: 0, - writable: false, - enumerable: false, - configurable: false - }); - try { - Object.defineProperty(arguments, "0", { - configurable: true - }); - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 0, false, false, false); - } - return false; - }()); +(function () { + Object.defineProperty(arguments, "0", { + value: 0, + writable: false, + enumerable: false, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + configurable: true + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyEqualTo(arguments, "0", 0); + + verifyNotWritable(arguments, "0"); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + } -runTestCase(testcase); +}()); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-309.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-309.js index 5fda8e75c6730e5eb286dcdc8360eac5b21e790f..db14b5bedb82999b845f844cbdb8a3cf92633787 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-309.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-309.js @@ -12,32 +12,36 @@ description: > [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Get]] attribute value of 'name' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - function getFunc1() { - return 0; - } - Object.defineProperty(arguments, "0", { - get: getFunc1, - enumerable: false, - configurable: false - }); - function getFunc2() { - return 10; - } - try { - Object.defineProperty(arguments, "0", { - get: getFunc2 - }); - return false; - } catch (e) { - return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc1, undefined, undefined, false, false); - } - }()); +(function () { + function getFunc1() { + return 0; } -runTestCase(testcase); + Object.defineProperty(arguments, "0", { + get: getFunc1, + enumerable: false, + configurable: false + }); + function getFunc2() { + return 10; + } + try { + Object.defineProperty(arguments, "0", { + get: getFunc2 + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyEqualTo(arguments, "0", getFunc1()); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + + } +}()); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-310.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-310.js index e37e898cfa008ef7d688eaa0f7baaa1db9971635..6d82c2650fae414c21b15f492890b1ba6bdc0eac 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-310.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-310.js @@ -12,33 +12,37 @@ description: > [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Set]] attribute value of 'name' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - function getFunc() { - return 0; - } - Object.defineProperty(arguments, "0", { - get: getFunc, - set: undefined, - enumerable: false, - configurable: false - }); - function setFunc(value) { - this.setVerifyHelpProp = value; - } - try { - Object.defineProperty(arguments, "0", { - set: setFunc - }); - } catch (e) { - return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, false, false); - } - return false; - }()); +(function () { + function getFunc() { + return 0; } -runTestCase(testcase); + Object.defineProperty(arguments, "0", { + get: getFunc, + set: undefined, + enumerable: false, + configurable: false + }); + function setFunc(value) { + this.setVerifyHelpProp = value; + } + try { + Object.defineProperty(arguments, "0", { + set: setFunc + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyEqualTo(arguments, "0", getFunc()); + + verifyNotEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + + } +}()); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-311.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-311.js index 2c267d32554869c0aadcae145253623033c84a6f..55652b21cf44d496be94737a77b2f15c6f3a79e3 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-311.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-311.js @@ -12,29 +12,33 @@ description: > [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'name' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - function getFunc() { - return 0; - } - Object.defineProperty(arguments, "0", { - get: getFunc, - enumerable: true, - configurable: false - }); - try { - Object.defineProperty(arguments, "0", { - enumerable: false - }); - } catch (e) { - return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, true, false); - } - return false; - }()); +(function () { + function getFunc() { + return 0; } -runTestCase(testcase); + Object.defineProperty(arguments, "0", { + get: getFunc, + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + enumerable: false + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyEqualTo(arguments, "0", getFunc()); + + verifyEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + + } +}()); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-312.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-312.js index 2ff3706505de108e7463fddd3bf4dfdcaf19eec0..779971a74e6ea01f90e19727553dabc52705cc9d 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-312.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-312.js @@ -12,29 +12,32 @@ description: > [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'name' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - function getFunc() { - return 0; - } - Object.defineProperty(arguments, "0", { - get: getFunc, - enumerable: true, - configurable: false - }); - try { - Object.defineProperty(arguments, "0", { - configurable: true - }); - } catch (e) { - return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, true, false); - } - return false; - }()); +(function () { + function getFunc() { } -runTestCase(testcase); + Object.defineProperty(arguments, "0", { + get: getFunc, + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + configurable: true + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyEqualTo(arguments, "0", getFunc()); + + verifyEnumerable(arguments, "0"); + + verifyNotConfigurable(arguments, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + + } +}()); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-313-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-313-1.js index 94b29a6e35b7860892682d9a251d175c49e31fc7..48f7ad4c5210c99128aa398608bf2f6e33a163b9 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-313-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-313-1.js @@ -11,20 +11,22 @@ description: > that has formal parameters, 'P' is own property, and 'desc' is data descriptor, test 'P' is defined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function (a, b, c) { - Object.defineProperty(arguments, "genericProperty", { - value: 1001, - writable: true, - enumerable: true, - configurable: true - }); - return dataPropertyAttributesAreCorrect(arguments, "genericProperty", 1001, true, true, true); - }(1, 2, 3)); - } -runTestCase(testcase); +(function (a, b, c) { + Object.defineProperty(arguments, "genericProperty", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + verifyEqualTo(arguments, "genericProperty", 1001); + + verifyWritable(arguments, "genericProperty"); + + verifyEnumerable(arguments, "genericProperty"); + + verifyConfigurable(arguments, "genericProperty"); +}(1, 2, 3)); + diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-313.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-313.js index 1061ac675d242ad05fc1c1151c9aa049b34a70d7..3157bc48abff4f2268e6329b1d788a2d44e75851 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-313.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-313.js @@ -11,20 +11,22 @@ description: > property, and 'desc' is data descriptor, test 'P' is defined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - Object.defineProperty(arguments, "genericProperty", { - value: 1001, - writable: true, - enumerable: true, - configurable: true - }); - return dataPropertyAttributesAreCorrect(arguments, "genericProperty", 1001, true, true, true); - }(1, 2, 3)); - } -runTestCase(testcase); +(function () { + Object.defineProperty(arguments, "genericProperty", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + verifyEqualTo(arguments, "genericProperty", 1001); + + verifyWritable(arguments, "genericProperty"); + + verifyEnumerable(arguments, "genericProperty"); + + verifyConfigurable(arguments, "genericProperty"); +}(1, 2, 3)); + diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-314-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-314-1.js index 11dcfd9a03ab4064cb165044a79470e8bb1532cf..26d60af348b317b0b2ad8da8418bfc5a041015d6 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-314-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-314-1.js @@ -11,26 +11,27 @@ description: > that has formal parameters, 'P' is property, and 'desc' is accessor descriptor, test 'P' is defined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function (a, b, c) { - function getFunc() { - return "getFunctionString"; - } - function setFunc(value) { - this.testgetFunction = value; - } - Object.defineProperty(arguments, "genericProperty", { - get: getFunc, - set: setFunc, - enumerable: true, - configurable: true - }); - return accessorPropertyAttributesAreCorrect(arguments, "genericProperty", getFunc, setFunc, "testgetFunction", true, true); - }(1, 2, 3)); +(function (a, b, c) { + function getFunc() { + return "getFunctionString"; } -runTestCase(testcase); + function setFunc(value) { + this.testgetFunction = value; + } + Object.defineProperty(arguments, "genericProperty", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + verifyEqualTo(arguments, "genericProperty", getFunc()); + + verifyWritable(arguments, "genericProperty", "testgetFunction"); + + verifyEnumerable(arguments, "genericProperty"); + + verifyConfigurable(arguments, "genericProperty"); +}(1, 2, 3)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-314.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-314.js index a82c9fe4e2b4a2ca29f47db8cd3c64e5edb7119f..1072420a05f0f3b4746807f751aecd46ec9a932d 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-314.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-314.js @@ -11,26 +11,27 @@ description: > property, and 'desc' is accessor descriptor, test 'P' is defined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - function getFunc() { - return "getFunctionString"; - } - function setFunc(value) { - this.testgetFunction = value; - } - Object.defineProperty(arguments, "genericProperty", { - get: getFunc, - set: setFunc, - enumerable: true, - configurable: true - }); - return accessorPropertyAttributesAreCorrect(arguments, "genericProperty", getFunc, setFunc, "testgetFunction", true, true); - }(1, 2, 3)); +(function () { + function getFunc() { + return "getFunctionString"; } -runTestCase(testcase); + function setFunc(value) { + this.testgetFunction = value; + } + Object.defineProperty(arguments, "genericProperty", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + verifyEqualTo(arguments, "genericProperty", getFunc()); + + verifyWritable(arguments, "genericProperty", "testgetFunction"); + + verifyEnumerable(arguments, "genericProperty"); + + verifyConfigurable(arguments, "genericProperty"); +}(1, 2, 3)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-315-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-315-1.js index 934c465e4032349133ccf0ab95d5a1619da5a2c9..82c7cb3605b3495d78246437508c24efc489e456 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-315-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-315-1.js @@ -11,37 +11,41 @@ description: > that has formal parameters, 'P' is own accessor property of 'O', and 'desc' is accessor descriptor, test updating multiple attribute values of 'P' (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function (a, b, c) { - Object.defineProperty(arguments, "genericProperty", { - get: function () { - return 1001; - }, - set: function (value) { - this.testgetFunction1 = value; - }, - enumerable: true, - configurable: true - }); - function getFunc() { - return "getFunctionString"; - } - function setFunc(value) { - this.testgetFunction = value; - } - Object.defineProperty(arguments, "genericProperty", { - get: getFunc, - set: setFunc, - enumerable: false, - configurable: false - }); - var verifyFormal = c === 3; - return accessorPropertyAttributesAreCorrect(arguments, "genericProperty", getFunc, setFunc, "testgetFunction", false, false) && verifyFormal; - }(1, 2, 3)); +(function (a, b, c) { + Object.defineProperty(arguments, "genericProperty", { + get: function () { + return 1001; + }, + set: function (value) { + this.testgetFunction1 = value; + }, + enumerable: true, + configurable: true + }); + function getFunc() { + return "getFunctionString"; } -runTestCase(testcase); + function setFunc(value) { + this.testgetFunction = value; + } + Object.defineProperty(arguments, "genericProperty", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: false + }); + if (c !== 3) { + $ERROR('Expected c === 3, actually ' + c); + } + + verifyEqualTo(arguments, "genericProperty", getFunc()); + + verifyWritable(arguments, "genericProperty", "testgetFunction"); + + verifyNotEnumerable(arguments, "genericProperty"); + + verifyNotConfigurable(arguments, "genericProperty"); +}(1, 2, 3)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-315.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-315.js index b999c263432d3b5fbcace05485d3513ebf16c852..980da213fba58cb0fd673660fa1c28f4c379c34c 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-315.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-315.js @@ -11,36 +11,37 @@ description: > own accessor property of 'O', and 'desc' is accessor descriptor, test updating multiple attribute values of 'P' (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - Object.defineProperty(arguments, "genericProperty", { - get: function () { - return 1001; - }, - set: function (value) { - this.testgetFunction1 = value; - }, - enumerable: true, - configurable: true - }); - function getFunc() { - return "getFunctionString"; - } - function setFunc(value) { - this.testgetFunction = value; - } - Object.defineProperty(arguments, "genericProperty", { - get: getFunc, - set: setFunc, - enumerable: false, - configurable: false - }); - return accessorPropertyAttributesAreCorrect(arguments, "genericProperty", getFunc, setFunc, "testgetFunction", false, false); - }(1, 2, 3)); +(function () { + Object.defineProperty(arguments, "genericProperty", { + get: function () { + return 1001; + }, + set: function (value) { + this.testgetFunction1 = value; + }, + enumerable: true, + configurable: true + }); + function getFunc() { + return "getFunctionString"; } -runTestCase(testcase); + function setFunc(value) { + this.testgetFunction = value; + } + Object.defineProperty(arguments, "genericProperty", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: false + }); + verifyEqualTo(arguments, "genericProperty", getFunc()); + + verifyWritable(arguments, "genericProperty", "testgetFunction"); + + verifyNotEnumerable(arguments, "genericProperty"); + + verifyNotConfigurable(arguments, "genericProperty"); +}(1, 2, 3)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-316-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-316-1.js index 4f9b50861975c86d31aa356c15f3705ccd3ec44a..5ffa599e02fbb297fd5c07a96871be9cff97e654 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-316-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-316-1.js @@ -11,25 +11,27 @@ description: > that has formal parameters, 'P' is own data property of 'O', and 'desc' is data descriptor, test updating multiple attribute values of 'P' (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function (a, b, c) { - Object.defineProperty(arguments, "genericProperty", { - value: 1001, - writable: true, - enumerable: true, - configurable: true - }); - Object.defineProperty(arguments, "genericProperty", { - value: 1002, - enumerable: false, - configurable: false - }); - return dataPropertyAttributesAreCorrect(arguments, "genericProperty", 1002, true, false, false); - }(1, 2, 3)); - } -runTestCase(testcase); +(function (a, b, c) { + Object.defineProperty(arguments, "genericProperty", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + Object.defineProperty(arguments, "genericProperty", { + value: 1002, + enumerable: false, + configurable: false + }); + verifyEqualTo(arguments, "genericProperty", 1002); + + verifyWritable(arguments, "genericProperty"); + + verifyNotEnumerable(arguments, "genericProperty"); + + verifyNotConfigurable(arguments, "genericProperty"); +}(1, 2, 3)); + diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-316.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-316.js index c12cf363ce0855ff003ae4e96d034285349bf83b..f72c0bc9cc0cbc3c6795195a350179b305872788 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-316.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-316.js @@ -11,25 +11,27 @@ description: > own data property of 'O', and 'desc' is data descriptor, test updating multiple attribute values of 'P' (10.6 [[DefineOwnProperty]] step 3) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - Object.defineProperty(arguments, "genericProperty", { - value: 1001, - writable: true, - enumerable: true, - configurable: true - }); - Object.defineProperty(arguments, "genericProperty", { - value: 1002, - enumerable: false, - configurable: false - }); - return dataPropertyAttributesAreCorrect(arguments, "genericProperty", 1002, true, false, false); - }(1, 2, 3)); - } -runTestCase(testcase); +(function () { + Object.defineProperty(arguments, "genericProperty", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + Object.defineProperty(arguments, "genericProperty", { + value: 1002, + enumerable: false, + configurable: false + }); + verifyEqualTo(arguments, "genericProperty", 1002); + + verifyWritable(arguments, "genericProperty"); + + verifyNotEnumerable(arguments, "genericProperty"); + + verifyNotConfigurable(arguments, "genericProperty"); +}(1, 2, 3)); + diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-317-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-317-1.js index 67f92c91129ec6d54dfa24841a2bfaffbb6aef94..a518f7efbee9e164262c8591b4ee33352c960365 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-317-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-317-1.js @@ -12,28 +12,36 @@ description: > TypeError is thrown when updating the [[Value]] attribute value of 'P' which is not writable and not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function (a, b, c) { - Object.defineProperty(arguments, "genericProperty", { - value: 1001, - writable: false, - configurable: false - }); - try { - Object.defineProperty(arguments, "genericProperty", { - value: 1002 - }); - } catch (e) { - var verifyFormal = b === 2; - return e instanceof TypeError && - dataPropertyAttributesAreCorrect(arguments, "genericProperty", 1001, false, false, false) && verifyFormal; - } - return false; - }(1, 2, 3)); +(function (a, b, c) { + Object.defineProperty(arguments, "genericProperty", { + value: 1001, + writable: false, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + value: 1002 + }); + $ERROR("Expected an exception."); + } catch (e) { + if (b !== 2) { + $ERROR('Expected "b === 2;", actually ' + b); + } + + verifyEqualTo(arguments, "genericProperty", 1001); + + verifyNotWritable(arguments, "genericProperty"); + + verifyNotEnumerable(arguments, "genericProperty"); + + verifyNotConfigurable(arguments, "genericProperty"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + } -runTestCase(testcase); +}(1, 2, 3)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-317.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-317.js index d6932e0c02aae141de0beebdaecb3da3796a064e..c3f3d81409b2bd3bf25a26d94bce3b7832131d96 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-317.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-317.js @@ -11,27 +11,32 @@ description: > own data property of 'O', test TypeError is thrown when updating the [[Value]] attribute value of 'P' which is not writable and not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - Object.defineProperty(arguments, "genericProperty", { - value: 1001, - writable: false, - configurable: false - }); - try { - Object.defineProperty(arguments, "genericProperty", { - value: 1002 - }); - } catch (e) { - return e instanceof TypeError && - dataPropertyAttributesAreCorrect(arguments, "genericProperty", 1001, false, false, false); - } - return false; - }(1, 2, 3)); +(function () { + Object.defineProperty(arguments, "genericProperty", { + value: 1001, + writable: false, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + value: 1002 + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyEqualTo(arguments, "genericProperty", 1001); + + verifyNotWritable(arguments, "genericProperty"); + + verifyNotEnumerable(arguments, "genericProperty"); + + verifyNotConfigurable(arguments, "genericProperty"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + } -runTestCase(testcase); +}(1, 2, 3)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-318-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-318-1.js index 27d5c6a7dbf67b587a3f6dd0ad809c29d333f6e6..95ab97a734473118bc2425f011cb8bc0c55ca9f2 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-318-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-318-1.js @@ -12,26 +12,31 @@ description: > test TypeError is thrown when updating the [[Writable]] attribute value of 'name' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function (a, b, c) { - Object.defineProperty(arguments, "genericProperty", { - writable: false, - configurable: false - }); - try { - Object.defineProperty(arguments, "genericProperty", { - writable: true - }); - } catch (e) { - return e instanceof TypeError && - dataPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, false, false, false); - } - return false; - }(1, 2, 3)); +(function (a, b, c) { + Object.defineProperty(arguments, "genericProperty", { + writable: false, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + writable: true + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyEqualTo(arguments, "genericProperty", undefined); + + verifyNotWritable(arguments, "genericProperty"); + + verifyNotEnumerable(arguments, "genericProperty"); + + verifyNotConfigurable(arguments, "genericProperty"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + } -runTestCase(testcase); +}(1, 2, 3)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-318.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-318.js index f1425044d2b9995cc6db505efae2143a5dede5b5..c09bc868383686654c4c71883f09a742dbd38f53 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-318.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-318.js @@ -11,26 +11,33 @@ description: > generic own data property of 'O', test TypeError is thrown when updating the [[Writable]] attribute value of 'name' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - Object.defineProperty(arguments, "genericProperty", { - writable: false, - configurable: false - }); - try { - Object.defineProperty(arguments, "genericProperty", { - writable: true - }); - } catch (e) { - return e instanceof TypeError && - dataPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, false, false, false); - } - return false; - }(1, 2, 3)); +(function () { + Object.defineProperty(arguments, "genericProperty", { + writable: false, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + writable: true + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyEqualTo(arguments, "genericProperty", undefined); + + verifyNotWritable(arguments, "genericProperty"); + + verifyNotEnumerable(arguments, "genericProperty"); + + verifyNotConfigurable(arguments, "genericProperty"); + + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + } -runTestCase(testcase); + +}(1, 2, 3)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-319-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-319-1.js index 2df5b34ad9f3449dafb22d257390344494520e41..b1615409b18d078417abd10347aade1ea1239461 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-319-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-319-1.js @@ -12,26 +12,32 @@ description: > TypeError is thrown when updating the [[Enumerable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function (a, b, c) { - Object.defineProperty(arguments, "genericProperty", { - enumerable: true, - configurable: false - }); - try { - Object.defineProperty(arguments, "genericProperty", { - enumerable: false - }); - } catch (e) { - return e instanceof TypeError && - dataPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, false, true, false); - } - return false; - }(1, 2, 3)); +(function (a, b, c) { + Object.defineProperty(arguments, "genericProperty", { + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + enumerable: false + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyEqualTo(arguments, "genericProperty", undefined); + + verifyNotWritable(arguments, "genericProperty"); + + verifyEnumerable(arguments, "genericProperty"); + + verifyNotConfigurable(arguments, "genericProperty"); + + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + } -runTestCase(testcase); +}(1, 2, 3)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-319.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-319.js index 916de453166f1aa14e3e985acb3b9fec8bc08993..0811edd624d7d3ac93a0a008d7ab248dd9a5c18d 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-319.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-319.js @@ -11,26 +11,31 @@ description: > data property of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - Object.defineProperty(arguments, "genericProperty", { - enumerable: true, - configurable: false - }); - try { - Object.defineProperty(arguments, "genericProperty", { - enumerable: false - }); - } catch (e) { - return e instanceof TypeError && - dataPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, false, true, false); - } - return false; - }(1, 2, 3)); +(function () { + Object.defineProperty(arguments, "genericProperty", { + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + enumerable: false + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyEqualTo(arguments, "genericProperty", undefined); + + verifyNotWritable(arguments, "genericProperty"); + + verifyEnumerable(arguments, "genericProperty"); + + verifyNotConfigurable(arguments, "genericProperty"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + } -runTestCase(testcase); +}(1, 2, 3)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-320-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-320-1.js index 614468a7cf7b6c0a3c169f0f5a42bd13734b79ee..c1c9a1790317ec269f925774bdc34403c7bccbbd 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-320-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-320-1.js @@ -12,25 +12,30 @@ description: > TypeError is thrown when updating the [[Configurable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function (a, b, c) { - Object.defineProperty(arguments, "genericProperty", { - configurable: false - }); - try { - Object.defineProperty(arguments, "genericProperty", { - configurable: true - }); - } catch (e) { - return e instanceof TypeError && - dataPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, false, false, false); - } - return false; - }(1, 2, 3)); +(function (a, b, c) { + Object.defineProperty(arguments, "genericProperty", { + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + configurable: true + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyEqualTo(arguments, "genericProperty", undefined); + + verifyNotWritable(arguments, "genericProperty"); + + verifyNotEnumerable(arguments, "genericProperty"); + + verifyNotConfigurable(arguments, "genericProperty"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + } -runTestCase(testcase); +}(1, 2, 3)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-320.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-320.js index 7ad8de9e6974f94cffdf3350ff687a70a27565f5..32d2987c11d25f5d63903dffd89fd0fe5fe87ef8 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-320.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-320.js @@ -11,25 +11,32 @@ description: > data property of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - Object.defineProperty(arguments, "genericProperty", { - configurable: false - }); - try { - Object.defineProperty(arguments, "genericProperty", { - configurable: true - }); - } catch (e) { - return e instanceof TypeError && - dataPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, false, false, false); - } - return false; - }(1, 2, 3)); +(function () { + Object.defineProperty(arguments, "genericProperty", { + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + configurable: true + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyEqualTo(arguments, "genericProperty", undefined); + + verifyNotWritable(arguments, "genericProperty"); + + verifyNotEnumerable(arguments, "genericProperty"); + + verifyNotConfigurable(arguments, "genericProperty"); + + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + } -runTestCase(testcase); + +}(1, 2, 3)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-321-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-321-1.js index 3805e0f2884df354dc301dbb1080c013bd3e1cd5..323460968f64e197d63c28adce75eec0d134cdc9 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-321-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-321-1.js @@ -12,36 +12,44 @@ description: > test TypeError is thrown when updating the [[Get]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function (a, b, c) { - function getFunc() { - return "genericPropertyString"; - } - function setFunc(value) { - this.helpVerifyGet = value; - } - Object.defineProperty(arguments, "genericProperty", { - get: getFunc, - set: setFunc, - configurable: false - }); - try { - Object.defineProperty(arguments, "genericProperty", { - get: function () { - return "overideGenericPropertyString"; - } - }); - } catch (e) { - var verifyFormal = a === 1; - return e instanceof TypeError && - accessorPropertyAttributesAreCorrect(arguments, "genericProperty", getFunc, setFunc, "helpVerifyGet", false, false, false) && verifyFormal; +(function (a, b, c) { + function getFunc() { + return "genericPropertyString"; + } + function setFunc(value) { + this.helpVerifyGet = value; + } + Object.defineProperty(arguments, "genericProperty", { + get: getFunc, + set: setFunc, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + get: function () { + return "overideGenericPropertyString"; } - return false; - }(1, 2, 3)); + }); + $ERROR("Expected an exception."); + } catch (e) { + if (a !== 1) { + $ERROR('Expected a === 1, actually ' + a); + } + + verifyEqualTo(arguments, "genericProperty", getFunc()); + + verifyWritable(arguments, "genericProperty", "helpVerifyGet"); + + verifyNotEnumerable(arguments, "genericProperty"); + + verifyNotConfigurable(arguments, "genericProperty"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + } -runTestCase(testcase); +}(1, 2, 3)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-321.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-321.js index 90a378c1cfd3499df430fd6ae76ac940b7684983..4abc7358d695d8e84494f55ff26974d0dc9af2c2 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-321.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-321.js @@ -11,35 +11,40 @@ description: > accessor property of 'O', test TypeError is thrown when updating the [[Get]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - function getFunc() { - return "genericPropertyString"; - } - function setFunc(value) { - this.helpVerifyGet = value; - } - Object.defineProperty(arguments, "genericProperty", { - get: getFunc, - set: setFunc, - configurable: false - }); - try { - Object.defineProperty(arguments, "genericProperty", { - get: function () { - return "overideGenericPropertyString"; - } - }); - } catch (e) { - return e instanceof TypeError && - accessorPropertyAttributesAreCorrect(arguments, "genericProperty", getFunc, setFunc, "helpVerifyGet", false, false, false); +(function () { + function getFunc() { + return "genericPropertyString"; + } + function setFunc(value) { + this.helpVerifyGet = value; + } + Object.defineProperty(arguments, "genericProperty", { + get: getFunc, + set: setFunc, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + get: function () { + return "overideGenericPropertyString"; } - return false; - }(1, 2, 3)); + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyEqualTo(arguments, "genericProperty", getFunc()); + + verifyWritable(arguments, "genericProperty", "helpVerifyGet"); + + verifyNotEnumerable(arguments, "genericProperty"); + + verifyNotConfigurable(arguments, "genericProperty"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + } -runTestCase(testcase); +}(1, 2, 3)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-322-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-322-1.js index c62fde71696bd93706cec16f90042f2ed8c94962..ca8a2ebcc933b2727b23ac1196da0c2ca17a1db4 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-322-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-322-1.js @@ -12,31 +12,34 @@ description: > test TypeError is thrown when updating the [[Set]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function (a, b, c) { - function setFunc(value) { - this.genericPropertyString = value; - } - Object.defineProperty(arguments, "genericProperty", { - set: setFunc, - configurable: false - }); - try { - Object.defineProperty(arguments, "genericProperty", { - set: function (value) { - this.genericPropertyString1 = value; - } - }); - } catch (e) { - return e instanceof TypeError && - accessorPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, setFunc, "genericPropertyString", false, false, false); +(function (a, b, c) { + function setFunc(value) { + this.genericPropertyString = value; + } + Object.defineProperty(arguments, "genericProperty", { + set: setFunc, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + set: function (value) { + this.genericPropertyString1 = value; } - return false; - }(1, 2, 3)); + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyWritable(arguments, "genericProperty", "genericPropertyString"); + + verifyNotEnumerable(arguments, "genericProperty"); + + verifyNotConfigurable(arguments, "genericProperty"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + } -runTestCase(testcase); +}(1, 2, 3)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-322.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-322.js index f53eb4ed233771027922288390111dbe7f91454f..fdb86cd9b18e10d82c6a1b35c4a15606e841d706 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-322.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-322.js @@ -11,31 +11,34 @@ description: > accessor property of 'O', test TypeError is thrown when updating the [[Set]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - function setFunc(value) { - this.genericPropertyString = value; - } - Object.defineProperty(arguments, "genericProperty", { - set: setFunc, - configurable: false - }); - try { - Object.defineProperty(arguments, "genericProperty", { - set: function (value) { - this.genericPropertyString1 = value; - } - }); - } catch (e) { - return e instanceof TypeError && - accessorPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, setFunc, "genericPropertyString", false, false, false); +(function () { + function setFunc(value) { + this.genericPropertyString = value; + } + Object.defineProperty(arguments, "genericProperty", { + set: setFunc, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + set: function (value) { + this.genericPropertyString1 = value; } - return false; - }(1, 2, 3)); + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyWritable(arguments, "genericProperty", "genericPropertyString"); + + verifyNotEnumerable(arguments, "genericProperty"); + + verifyNotConfigurable(arguments, "genericProperty"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + } -runTestCase(testcase); +}(1, 2, 3)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-323-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-323-1.js index 4f38a7210674830e9c4313d708902a99da8f7208..9f6d38845bd908822ad7f9e40ebbf52a1a1dc46d 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-323-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-323-1.js @@ -12,31 +12,37 @@ description: > test TypeError is thrown when updating the [[Enumerable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function (a, b, c) { - function setFunc(value) { - this.genericPropertyString = value; - } - Object.defineProperty(arguments, "genericProperty", { - set: setFunc, - enumerable: true, - configurable: false - }); - try { - Object.defineProperty(arguments, "genericProperty", { - enumerable: false - }); - } catch (e) { - verifyFormal = c === 3; - return e instanceof TypeError && - accessorPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, setFunc, "genericPropertyString", true, false) && verifyFormal; - } - return false; - }(1, 2, 3)); +(function (a, b, c) { + function setFunc(value) { + this.genericPropertyString = value; } -runTestCase(testcase); + Object.defineProperty(arguments, "genericProperty", { + set: setFunc, + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + enumerable: false + }); + $ERROR("Expected an exception."); + } catch (e) { + if (c !== 3) { + $ERROR('Expected c === 3, actually ' + c); + } + verifyWritable(arguments, "genericProperty", "genericPropertyString"); + + verifyEnumerable(arguments, "genericProperty"); + + verifyNotConfigurable(arguments, "genericProperty"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + + } + +}(1, 2, 3)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-323.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-323.js index 7b3937b8425827206d57c7700d5ecc042e98a921..f353c688d253effff647ebc3c6f86209c93632d2 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-323.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-323.js @@ -11,30 +11,33 @@ description: > accessor property of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - function setFunc(value) { - this.genericPropertyString = value; - } - Object.defineProperty(arguments, "genericProperty", { - set: setFunc, - enumerable: true, - configurable: false - }); - try { - Object.defineProperty(arguments, "genericProperty", { - enumerable: false - }); - } catch (e) { - return e instanceof TypeError && - accessorPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, setFunc, "genericPropertyString", true, false); - } - return false; - }(1, 2, 3)); +(function () { + function setFunc(value) { + this.genericPropertyString = value; } -runTestCase(testcase); + Object.defineProperty(arguments, "genericProperty", { + set: setFunc, + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + enumerable: false + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyWritable(arguments, "genericProperty", "genericPropertyString"); + + verifyEnumerable(arguments, "genericProperty"); + + verifyNotConfigurable(arguments, "genericProperty"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + + } +}(1, 2, 3)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-324-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-324-1.js index 12384ea2ace9e9c59adc0c88883852d7608a4ad2..821ebbcab12d417db5421238eda93e19ae21c98c 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-324-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-324-1.js @@ -12,29 +12,32 @@ description: > test TypeError is thrown when updating the [[Configurable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function (a, b, c) { - function setFunc(value) { - this.genericPropertyString = value; - } - Object.defineProperty(arguments, "genericProperty", { - set: setFunc, - configurable: false - }); - try { - Object.defineProperty(arguments, "genericProperty", { - configurable: true - }); - } catch (e) { - return e instanceof TypeError && - accessorPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, setFunc, "genericPropertyString", false, false, false); - } - return false; - }(1, 2, 3)); +(function (a, b, c) { + function setFunc(value) { + this.genericPropertyString = value; } -runTestCase(testcase); + Object.defineProperty(arguments, "genericProperty", { + set: setFunc, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + configurable: true + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyWritable(arguments, "genericProperty", "genericPropertyString"); + + verifyNotEnumerable(arguments, "genericProperty"); + + verifyNotConfigurable(arguments, "genericProperty"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + + } +}(1, 2, 3)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-324.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-324.js index 00e2d81dc374df7edd6ec3e7b0cf7a03d5a8e89d..6fdb4a774976eab7020c0b436e65c9622f09a377 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-324.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-324.js @@ -11,29 +11,33 @@ description: > accessor property of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - return (function () { - function setFunc(value) { - this.genericPropertyString = value; - } - Object.defineProperty(arguments, "genericProperty", { - set: setFunc, - configurable: false - }); - try { - Object.defineProperty(arguments, "genericProperty", { - configurable: true - }); - } catch (e) { - return e instanceof TypeError && - accessorPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, setFunc, "genericPropertyString", false, false, false); - } - return false; - }(1, 2, 3)); +(function () { + function setFunc(value) { + this.genericPropertyString = value; } -runTestCase(testcase); + Object.defineProperty(arguments, "genericProperty", { + set: setFunc, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + configurable: true + }); + $ERROR("Expected an exception."); + } catch (e) { + verifyWritable(arguments, "genericProperty", "genericPropertyString"); + + verifyNotEnumerable(arguments, "genericProperty"); + + verifyNotConfigurable(arguments, "genericProperty"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + + } + false; +}(1, 2, 3)); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-333-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-333-1.js index 3e91e0e6a2170f90be8c59d868f95f34ead6f77e..9acb30ee41f04346065fc8cda82d1fb75a14727d 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-333-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-333-1.js @@ -11,25 +11,27 @@ description: > property 'P' successfully when [[Configurable]] attribute is false, [[Writable]] attribute is true and 'O' is an Object object (8.12.9 - step 10) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "property", { - value: 1001, - writable: true, - configurable: false - }); +Object.defineProperty(obj, "property", { + value: 1001, + writable: true, + configurable: false +}); - Object.defineProperty(obj, "property", { - value: 1002 - }); +Object.defineProperty(obj, "property", { + value: 1002 +}); + +verifyEqualTo(obj, "property", 1002); + +verifyWritable(obj, "property"); + +verifyNotEnumerable(obj, "property"); + +verifyNotConfigurable(obj, "property"); - return dataPropertyAttributesAreCorrect(obj, "property", 1002, true, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-333-2.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-333-2.js index 12981e7979320008590940fcc99fb115ede721fb..9bba5f341d38cd3ddcb745d4672970acc0330bec 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-333-2.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-333-2.js @@ -11,25 +11,27 @@ description: > property 'P' successfully when [[Configurable]] attribute is false, [[Writable]] attribute is true and 'A' is an Array object (8.12.9 - step 10) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = []; +var obj = []; - Object.defineProperty(obj, "0", { - value: 1001, - writable: true, - configurable: false - }); +Object.defineProperty(obj, "0", { + value: 1001, + writable: true, + configurable: false +}); - Object.defineProperty(obj, "0", { - value: 1002 - }); +Object.defineProperty(obj, "0", { + value: 1002 +}); + +verifyEqualTo(obj, "0", 1002); + +verifyWritable(obj, "0"); + +verifyNotEnumerable(obj, "0"); + +verifyNotConfigurable(obj, "0"); - return dataPropertyAttributesAreCorrect(obj, "0", 1002, true, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-333-3.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-333-3.js index 140ddcb5e3c4fa0e67d599a29df46fdea5a4d244..a5501e2d1352f5ff26301599642471610485f936 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-333-3.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-333-3.js @@ -11,27 +11,29 @@ description: > property 'P' successfully when [[Configurable]] attribute is false, [[Writable]] attribute is true and 'O' is an Arguments object (8.12.9 - step 10) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = (function () { - return arguments; - }()); +var obj = (function () { + return arguments; +}()); - Object.defineProperty(obj, "property", { - value: 1001, - writable: true, - configurable: false - }); +Object.defineProperty(obj, "property", { + value: 1001, + writable: true, + configurable: false +}); - Object.defineProperty(obj, "property", { - value: 1002 - }); +Object.defineProperty(obj, "property", { + value: 1002 +}); + +verifyEqualTo(obj, "property", 1002); + +verifyWritable(obj, "property"); + +verifyNotEnumerable(obj, "property"); + +verifyNotConfigurable(obj, "property"); - return dataPropertyAttributesAreCorrect(obj, "property", 1002, true, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-333-6.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-333-6.js index d76802574462c0ba277d9957c505e053cc292b11..4655075d392eb474ee247eea4533a4c55fac89dd 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-333-6.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-333-6.js @@ -11,25 +11,27 @@ description: > property 'P' successfully when [[Configurable]] attribute is false, [[Writable]] attribute is true and 'O' is an Object object (8.12.9 - step 10) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "0", { - value: 1001, - writable: true, - configurable: false - }); +Object.defineProperty(obj, "0", { + value: 1001, + writable: true, + configurable: false +}); - Object.defineProperty(obj, "0", { - value: 1002 - }); +Object.defineProperty(obj, "0", { + value: 1002 +}); + +verifyEqualTo(obj, "0", 1002); + +verifyWritable(obj, "0"); + +verifyNotEnumerable(obj, "0"); + +verifyNotConfigurable(obj, "0"); - return dataPropertyAttributesAreCorrect(obj, "0", 1002, true, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-333-7.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-333-7.js index 4f15006f1e261fcb4d1e5cd1337fd4d2ab90d214..fd7dcdef7ac7b93e7ff3607dcd9c89dbbb4bab81 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-333-7.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-333-7.js @@ -11,25 +11,27 @@ description: > property 'P' successfully when [[Configurable]] attribute is false, [[Writable]] attribute is true and 'A' is an Array object (8.12.9 - step 10) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = []; +var obj = []; - Object.defineProperty(obj, "prop", { - value: 1001, - writable: true, - configurable: false - }); +Object.defineProperty(obj, "prop", { + value: 1001, + writable: true, + configurable: false +}); - Object.defineProperty(obj, "prop", { - value: 1002 - }); +Object.defineProperty(obj, "prop", { + value: 1002 +}); + +verifyEqualTo(obj, "prop", 1002); + +verifyWritable(obj, "prop"); + +verifyNotEnumerable(obj, "prop"); + +verifyNotConfigurable(obj, "prop"); - return dataPropertyAttributesAreCorrect(obj, "prop", 1002, true, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-333-8.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-333-8.js index 89d18fed0c68cf04d8f19d7f1dd9a8d06b48441d..14962c467245b98758197666e1594c4fa776fbde 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-333-8.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-333-8.js @@ -11,27 +11,29 @@ description: > property 'P'successfully when [[Configurable]] attribute is false, [[Writable]] attribute is true and 'O' is an Arguments object (8.12.9 - step 10) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = (function () { - return arguments; - }()); +var obj = (function () { + return arguments; +}()); - Object.defineProperty(obj, "0", { - value: 1001, - writable: true, - configurable: false - }); +Object.defineProperty(obj, "0", { + value: 1001, + writable: true, + configurable: false +}); - Object.defineProperty(obj, "0", { - value: 1002 - }); +Object.defineProperty(obj, "0", { + value: 1002 +}); + +verifyEqualTo(obj, "0", 1002); + +verifyWritable(obj, "0"); + +verifyNotEnumerable(obj, "0"); + +verifyNotConfigurable(obj, "0"); - return dataPropertyAttributesAreCorrect(obj, "0", 1002, true, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-1.js index 6df341a796bc2c4c7414bd978bdf33e58228c6ae..8a0ec1cfe8f04b16ab8843167277112b0f5d6233 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-1.js @@ -11,25 +11,27 @@ description: > property 'P' successfully when [[Configurable]] attribute is true and [[Writable]] attribute is false, 'O' is an Object object (8.12.9 step - Note) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "property", { - value: 1001, - writable: false, - configurable: true - }); +Object.defineProperty(obj, "property", { + value: 1001, + writable: false, + configurable: true +}); - Object.defineProperty(obj, "property", { - value: 1002 - }); +Object.defineProperty(obj, "property", { + value: 1002 +}); + +verifyEqualTo(obj, "property", 1002); + +verifyNotWritable(obj, "property"); + +verifyNotEnumerable(obj, "property"); + +verifyConfigurable(obj, "property"); - return dataPropertyAttributesAreCorrect(obj, "property", 1002, false, false, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-10.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-10.js index be6c692264203c6dbef584af3a55ce7709448733..b888037735b1d57c845dcdb74d96816946c301d7 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-10.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-10.js @@ -11,25 +11,27 @@ description: > property 'P' successfully when [[Configurable]] attribute is true and [[Writable]] attribute is false, 'O' is an Object object (8.12.9 step - Note) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "0", { - value: 1001, - writable: false, - configurable: true - }); +Object.defineProperty(obj, "0", { + value: 1001, + writable: false, + configurable: true +}); - Object.defineProperty(obj, "0", { - value: 1002 - }); +Object.defineProperty(obj, "0", { + value: 1002 +}); + +verifyEqualTo(obj, "0", 1002); + +verifyNotWritable(obj, "0"); + +verifyNotEnumerable(obj, "0"); + +verifyConfigurable(obj, "0"); - return dataPropertyAttributesAreCorrect(obj, "0", 1002, false, false, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-11.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-11.js index d93238f5fb450684ae5afc2ece62f624c70d73fc..c82f6340f1e91dffb5cf11c62d50478827b744c2 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-11.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-11.js @@ -11,25 +11,27 @@ description: > property 'P' successfully when [[Configurable]] attribute is true and [[Writable]] attribute is false, 'A' is an Array object (8.12.9 step - Note) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = []; +var obj = []; - Object.defineProperty(obj, "prop", { - value: 1001, - writable: false, - configurable: true - }); +Object.defineProperty(obj, "prop", { + value: 1001, + writable: false, + configurable: true +}); - Object.defineProperty(obj, "prop", { - value: 1002 - }); +Object.defineProperty(obj, "prop", { + value: 1002 +}); + +verifyEqualTo(obj, "prop", 1002); + +verifyNotWritable(obj, "prop"); + +verifyNotEnumerable(obj, "prop"); + +verifyConfigurable(obj, "prop"); - return dataPropertyAttributesAreCorrect(obj, "prop", 1002, false, false, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-12.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-12.js index d3f8b3467bae1244b14d157f38a547c665fbd65f..f0381b5f90750d70b5f02ae317e876c984ea99b9 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-12.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-12.js @@ -11,27 +11,29 @@ description: > property successfully when [[Configurable]] attribute is true and [[Writable]] attribute is false, 'O' is an Arguments object (8.12.9 - step Note) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = (function () { - return arguments; - }()); +var obj = (function () { + return arguments; +}()); - Object.defineProperty(obj, "0", { - value: 1001, - writable: false, - configurable: true - }); +Object.defineProperty(obj, "0", { + value: 1001, + writable: false, + configurable: true +}); - Object.defineProperty(obj, "0", { - value: 1002 - }); +Object.defineProperty(obj, "0", { + value: 1002 +}); + +verifyEqualTo(obj, "0", 1002); + +verifyNotWritable(obj, "0"); + +verifyNotEnumerable(obj, "0"); + +verifyConfigurable(obj, "0"); - return dataPropertyAttributesAreCorrect(obj, "0", 1002, false, false, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-13.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-13.js index 3f7aece4936cfadf32a40e5d5ed5c4a50c31cefd..9c6c7f1010d383da09e715e8359c2d65bc27a585 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-13.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-13.js @@ -11,30 +11,31 @@ description: > property successfully when [[Configurable]] attribute is true and [[Writable]] attribute is false, 'O' is the global object (8.12.9 - step Note) -includes: - - runTestCase.js - - fnGlobalObject.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js, fnGlobalObject.js] ---*/ -function testcase() { - var obj = fnGlobalObject(); +var obj = fnGlobalObject(); - try { - Object.defineProperty(obj, "0", { - value: 1001, - writable: false, - configurable: true - }); +try { + Object.defineProperty(obj, "0", { + value: 1001, + writable: false, + configurable: true + }); - Object.defineProperty(obj, "0", { - value: 1002 - }); + Object.defineProperty(obj, "0", { + value: 1002 + }); + + verifyEqualTo(obj, "0", 1002); + + verifyNotWritable(obj, "0"); + + verifyNotEnumerable(obj, "0"); + + verifyConfigurable(obj, "0"); +} finally { + delete obj[0]; +} - return dataPropertyAttributesAreCorrect(obj, "0", 1002, false, false, true); - } finally { - delete obj[0]; - } - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-2.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-2.js index 3719a1991cd64484b2a2021dd36a330e63a63996..ce4b5919ca47c810d05f82f4cb8b75cfbe6161cc 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-2.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-2.js @@ -11,25 +11,27 @@ description: > property 'P' successfully when [[Configurable]] attribute is true and [[Writable]] attribute is false, 'A' is an Array object (8.12.9 step - Note) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js, fnGlobalObject.js] ---*/ -function testcase() { - var obj = []; +var obj = []; - Object.defineProperty(obj, "0", { - value: 1001, - writable: false, - configurable: true - }); +Object.defineProperty(obj, "0", { + value: 1001, + writable: false, + configurable: true +}); - Object.defineProperty(obj, "0", { - value: 1002 - }); +Object.defineProperty(obj, "0", { + value: 1002 +}); + +verifyEqualTo(obj, "0", 1002); + +verifyNotWritable(obj, "0"); + +verifyNotEnumerable(obj, "0"); + +verifyConfigurable(obj, "0"); - return dataPropertyAttributesAreCorrect(obj, "0", 1002, false, false, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-3.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-3.js index f5dfce189a41478edd1d4701cda78893eb36e2b7..5e824ae5c98b8cb09ea2d28e433b39efd425aa3d 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-3.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-3.js @@ -10,27 +10,29 @@ description: > Object.defineProperty will update [[Value]] attribute successfully when [[Configurable]] attribute is true and [[Writable]] attribute is false, 'O' is an Arguments object (8.12.9 - step Note) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = (function () { - return arguments; - }()); +var obj = (function () { + return arguments; +}()); - Object.defineProperty(obj, "property", { - value: 1001, - writable: false, - configurable: true - }); +Object.defineProperty(obj, "property", { + value: 1001, + writable: false, + configurable: true +}); - Object.defineProperty(obj, "property", { - value: 1002 - }); +Object.defineProperty(obj, "property", { + value: 1002 +}); + +verifyEqualTo(obj, "property", 1002); + +verifyNotWritable(obj, "property"); + +verifyNotEnumerable(obj, "property"); + +verifyConfigurable(obj, "property"); - return dataPropertyAttributesAreCorrect(obj, "property", 1002, false, false, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-4.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-4.js index fc5e8d4d4ba0ce32cc58862164ffe2e5d9ff01c8..0958aa32dd31f81d7212a65148f92f986aec46d5 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-4.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-4.js @@ -10,30 +10,31 @@ description: > Object.defineProperty will update [[Value]] attribute successfully when [[Configurable]] attribute is true and [[Writable]] attribute is false, 'O' is the global object (8.12.9 - step Note) -includes: - - runTestCase.js - - fnGlobalObject.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js, fnGlobalObject.js] ---*/ -function testcase() { - var obj = fnGlobalObject(); +var obj = fnGlobalObject(); - try { - Object.defineProperty(obj, "property", { - value: 1001, - writable: false, - configurable: true - }); +try { + Object.defineProperty(obj, "property", { + value: 1001, + writable: false, + configurable: true + }); - Object.defineProperty(obj, "property", { - value: 1002 - }); + Object.defineProperty(obj, "property", { + value: 1002 + }); + + verifyEqualTo(obj, "property", 1002); + + verifyNotWritable(obj, "property"); + + verifyNotEnumerable(obj, "property"); + + verifyConfigurable(obj, "property"); +} finally { + delete obj.property; +} - return dataPropertyAttributesAreCorrect(obj, "property", 1002, false, false, true); - } finally { - delete obj.property; - } - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-360-7.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-360-7.js index dee88492bf263855a7bfeaf4d213a3612a330855..909ce5308b1eb7c700ba917b16c245e05afb73b1 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-360-7.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-360-7.js @@ -11,35 +11,44 @@ description: > attributes are [[Writable]]: false, [[Enumerable]]: true, [[Configurable]]: true to an accessor property, 'O' is the global object (8.12.9 - step 9.b.i) -includes: - - runTestCase.js - - fnGlobalObject.js +includes: [propertyHelper.js, fnGlobalObject.js] ---*/ -function testcase() { - var obj = fnGlobalObject(); - try { - Object.defineProperty(obj, "0", { - value: 2010, - writable: false, - enumerable: true, - configurable: true - }); - var desc1 = Object.getOwnPropertyDescriptor(obj, "0"); - - function getFunc() { - return 20; - } - Object.defineProperty(obj, "0", { - get: getFunc - }); - var desc2 = Object.getOwnPropertyDescriptor(obj, "0"); - - return desc1.hasOwnProperty("value") && desc2.hasOwnProperty("get") && - desc2.enumerable === true && desc2.configurable === true && - obj[0] === 20 && typeof desc2.set === "undefined" && desc2.get === getFunc; - } finally { - delete obj[0]; - } +function getFunc() { + return 20; } -runTestCase(testcase); + +var obj = fnGlobalObject(); +try { + Object.defineProperty(obj, "0", { + value: 2010, + writable: false, + enumerable: true, + configurable: true + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "0"); + + Object.defineProperty(obj, "0", { + get: getFunc + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "0"); + + if (!Object.prototype.hasOwnProperty.call(desc1, "value")) { + $ERROR("Expected to find ownProperty 'value'"); + } + + if (!(desc2.hasOwnProperty("get") && desc2.enumerable === true && + desc2.configurable === true && obj[0] === 20 && + (typeof desc2.set === "undefined") && desc2.get === getFunc)) { + $ERROR("Expected desc2 to be as configured."); + } + + verifyEqualTo(obj, "0", getFunc()); + + verifyEnumerable(obj, "0"); + + verifyConfigurable(obj, "0"); + +} finally { + delete obj[0]; +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-38.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-38.js index ed21f85422988531db6818376128b0f72ec9dc9e..fd2189dd334c5bbe8871af910eaf4131a4a78dae 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-38.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-38.js @@ -10,21 +10,23 @@ description: > Object.defineProperty - 'O' is the Math object that uses Object's [[GetOwnProperty]] method to access the 'name' property (8.12.9 step 1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - try { - Object.defineProperty(Math, "foo", { - value: 12, - configurable: true - }); - - return dataPropertyAttributesAreCorrect(Math, "foo", 12, false, false, true); - } finally { - delete Math.foo; - } - } -runTestCase(testcase); +try { + Object.defineProperty(Math, "foo", { + value: 12, + configurable: true + }); + + verifyEqualTo(Math, "foo", 12); + + verifyNotWritable(Math, "foo"); + + verifyNotEnumerable(Math, "foo"); + + verifyConfigurable(Math, "foo"); +} finally { + delete Math.foo; +} + diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-41.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-41.js index 895eeff91ab7316df46eb9a80ea17b3da29d6d67..fbf40e15c6555876b5594dbb86cb3bea4beb7f80 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-41.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-41.js @@ -10,22 +10,22 @@ description: > Object.defineProperty - 'O' is the JSON object that uses Object's [[GetOwnProperty]] method to access the 'name' property (8.12.9 step 1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - try { - Object.defineProperty(JSON, "foo", { - value: 12, - configurable: true - }); +Object.defineProperty(JSON, "foo", { +value: 12, +configurable: true +}); + +verifyEqualTo(JSON, "foo", 12); + +verifyNotWritable(JSON, "foo"); + +verifyNotEnumerable(JSON, "foo"); + +verifyConfigurable(JSON, "foo"); + +delete JSON.foo; - return dataPropertyAttributesAreCorrect(JSON, "foo", 12, false, false, true); - } finally { - delete JSON.foo; - } - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-45.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-45.js index ced4ff42fae73b71a3021d2773ed46c91967bdf6..337ce1e7dbe1d6bdb04c85874be4d2749dba4900 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-45.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-45.js @@ -10,22 +10,18 @@ description: > Object.defineProperty - 'O' is the global object that uses Object's [[GetOwnProperty]] method to access the 'name' property (8.12.9 step 1) -includes: - - runTestCase.js - - fnGlobalObject.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js, fnGlobalObject.js] ---*/ -function testcase() { - try { - Object.defineProperty(fnGlobalObject(), "foo", { - value: 12, - configurable: true - }); +Object.defineProperty(fnGlobalObject(), "foo", { + value: 12, + configurable: true +}); - return dataPropertyAttributesAreCorrect(fnGlobalObject(), "foo", 12, false, false, true); - } finally { - delete fnGlobalObject().foo; - } - } -runTestCase(testcase); +verifyEqualTo(fnGlobalObject(), "foo", 12); + +verifyNotWritable(fnGlobalObject(), "foo"); + +verifyNotEnumerable(fnGlobalObject(), "foo"); + +verifyConfigurable(fnGlobalObject(), "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-47.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-47.js index ed2dec6ae0470d76ddbd96c1dbf19918d6d9809e..b5d193705d55e2c898a43149c03e27aeb8410984 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-47.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-47.js @@ -10,20 +10,22 @@ description: > Object.defineProperty - 'name' property doesn't exist in 'O', [[Value]] of 'name' property is set as undefined if it is absent in data descriptor 'desc' (8.12.9 step 4.a.i) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "property", { - writable: true, - enumerable: true, - configurable: false - }); +Object.defineProperty(obj, "property", { + writable: true, + enumerable: true, + configurable: false +}); + +verifyEqualTo(obj, "property", undefined); + +verifyWritable(obj, "property"); + +verifyEnumerable(obj, "property"); + +verifyNotConfigurable(obj, "property"); - return dataPropertyAttributesAreCorrect(obj, "property", undefined, true, true, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-48.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-48.js index 602305b605810961f9df32285a36dbe94744b844..6ce013387ba12461010167b29a6afc83b39d0095 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-48.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-48.js @@ -10,20 +10,22 @@ description: > Object.defineProperty - 'name' property doesn't exist in 'O', test [[Writable]] of 'name' property of 'Attributes' is set as false value if absent in data descriptor 'desc' (8.12.9 step 4.a.i) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "property", { - value: 1001, - enumerable: true, - configurable: false - }); +Object.defineProperty(obj, "property", { + value: 1001, + enumerable: true, + configurable: false +}); + +verifyEqualTo(obj, "property", 1001); + +verifyNotWritable(obj, "property"); + +verifyEnumerable(obj, "property"); + +verifyNotConfigurable(obj, "property"); - return dataPropertyAttributesAreCorrect(obj, "property", 1001, false, true, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-49.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-49.js index dcce164005c802e5e902db691d5f83516fae0516..e55dcba156f1eff86d7083f5a69a5fee7729e809 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-49.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-49.js @@ -10,19 +10,21 @@ description: > Object.defineProperty - 'name' property doesn't exist in 'O', test [[Enumerable]] of 'name' property of 'Attributes' is set as false value if absent in data descriptor 'desc' (8.12.9 step 4.a.i) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; + +Object.defineProperty(obj, "property", { + value: 1001, + writable: true, + configurable: true +}); +verifyEqualTo(obj, "property", 1001); + +verifyWritable(obj, "property"); + +verifyNotEnumerable(obj, "property"); + +verifyConfigurable(obj, "property"); - Object.defineProperty(obj, "property", { - value: 1001, - writable: true, - configurable: true - }); - return dataPropertyAttributesAreCorrect(obj, "property", 1001, true, false, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-50.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-50.js index 30d55351bffe46db92cccf1931fd8557c40cee8a..f983d627210743d363db84bb16e1944d422c0dcd 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-50.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-50.js @@ -10,19 +10,21 @@ description: > Object.defineProperty - 'name' property doesn't exist in 'O', test [[Configurable]] of 'name' property is set as false if it is absent in data descriptor 'desc' (8.12.9 step 4.a.i) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; + +Object.defineProperty(obj, "property", { + value: 1001, + writable: true, + enumerable: true +}); +verifyEqualTo(obj, "property", 1001); + +verifyWritable(obj, "property"); + +verifyEnumerable(obj, "property"); + +verifyNotConfigurable(obj, "property"); - Object.defineProperty(obj, "property", { - value: 1001, - writable: true, - enumerable: true - }); - return dataPropertyAttributesAreCorrect(obj, "property", 1001, true, true, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-51.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-51.js index e865661aa53634a1f00c7d0dae61d446a98515fe..87cfab043882968ef8412a01831905b1921e49ee 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-51.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-51.js @@ -9,21 +9,23 @@ es5id: 15.2.3.6-4-51 description: > Object.defineProperty - desc is data descriptor, test updating all attribute values of 'name' (8.12.9 step 4.a.i) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = { "property": 1 }; // default value of attributes: writable: true, configurable: true, enumerable: true +var obj = { "property": 1 }; // default value of attributes: writable: true, configurable: true, enumerable: true - Object.defineProperty(obj, "property", { - value: 1001, - writable: false, - enumerable: false, - configurable: false - }); +Object.defineProperty(obj, "property", { + value: 1001, + writable: false, + enumerable: false, + configurable: false +}); + +verifyEqualTo(obj, "property", 1001); + +verifyNotWritable(obj, "property"); + +verifyNotEnumerable(obj, "property"); + +verifyNotConfigurable(obj, "property"); - return dataPropertyAttributesAreCorrect(obj, "property", 1001, false, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-52.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-52.js index 416aeac5f6ca4ca5f6ab925507e9569fcca2b6c0..cc6e4b8c9c012033579cb13387c9de343375bc0a 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-52.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-52.js @@ -10,16 +10,18 @@ description: > Object.defineProperty - 'desc' is generic descriptor without any attribute, test 'name' is defined in 'obj' with all default attribute values (8.12.9 step 4.a.i) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "property", {}); +Object.defineProperty(obj, "property", {}); + +verifyEqualTo(obj, "property", undefined); + +verifyNotWritable(obj, "property"); + +verifyNotEnumerable(obj, "property"); + +verifyNotConfigurable(obj, "property"); - return dataPropertyAttributesAreCorrect(obj, "property", undefined, false, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-53.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-53.js index 5076fe14dd7ce508d7af461babdb5901ddf507cb..79784c6b73c821c3961469b8dd44da77726e728b 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-53.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-53.js @@ -10,23 +10,22 @@ description: > Object.defineProperty - 'name' property doesn't exist in 'O', test [[Get]] of 'name' property is set as undefined if it is absent in accessor descriptor 'desc' (8.12.9 step 4.b) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; - var setFunc = function (value) { - obj.setVerifyHelpProp = value; - }; +var obj = {}; +var setFunc = function (value) { + obj.setVerifyHelpProp = value; +}; - Object.defineProperty(obj, "property", { - set: setFunc, - enumerable: true, - configurable: true - }); +Object.defineProperty(obj, "property", { + set: setFunc, + enumerable: true, + configurable: true +}); - return accessorPropertyAttributesAreCorrect(obj, "property", undefined, setFunc, "setVerifyHelpProp", true, true); - } -runTestCase(testcase); +verifyWritable(obj, "property", "setVerifyHelpProp"); + +verifyEnumerable(obj, "property"); + +verifyConfigurable(obj, "property"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-1.js index c361ec258deb95176f4a0b6ca1abb2d84852a03d..f775b7597feb18261cd54594472ec6135d6b1f2e 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-1.js @@ -10,38 +10,39 @@ description: > Object.defineProperty will update [[Get]] and [[Set]] attributes of named accessor property 'P' successfully when [[Configurable]] attribute is true, 'O' is an Object object (8.12.9 step 11) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - obj.verifySetFunction = "data"; - Object.defineProperty(obj, "property", { - get: function () { - return obj.verifySetFunction; - }, - set: function (value) { - obj.verifySetFunction = value; - }, - configurable: true - }); - - obj.verifySetFunction1 = "data1"; - var getFunc = function () { - return obj.verifySetFunction1; - }; - var setFunc = function (value) { - obj.verifySetFunction1 = value; - }; - - Object.defineProperty(obj, "property", { - get: getFunc, - set: setFunc - }); - - return accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "verifySetFunction1", false, true); - } -runTestCase(testcase); + +var obj = {}; +obj.verifySetFunction = "data"; +Object.defineProperty(obj, "property", { + get: function () { + return obj.verifySetFunction; + }, + set: function (value) { + obj.verifySetFunction = value; + }, + configurable: true +}); + +obj.verifySetFunction1 = "data1"; +var getFunc = function () { + return obj.verifySetFunction1; +}; +var setFunc = function (value) { + obj.verifySetFunction1 = value; +}; + +Object.defineProperty(obj, "property", { + get: getFunc, + set: setFunc +}); + +verifyEqualTo(obj, "property", getFunc()); + +verifyWritable(obj, "property", "verifySetFunction1"); + +verifyNotEnumerable(obj, "property"); + +verifyConfigurable(obj, "property"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-10.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-10.js index 4a9823406227be3965ef332861c829752afae42b..b849c330a51142ad6991d837531dd7c9f880b499 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-10.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-10.js @@ -11,39 +11,40 @@ description: > of indexed accessor property 'P' successfully when [[Configurable]] attribute is true, 'O' is an Object object (8.12.9 step 11) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - obj.verifySetFunction = "data"; - Object.defineProperty(obj, "0", { - get: function () { - return obj.verifySetFunction; - }, - set: function (value) { - obj.verifySetFunction = value; - }, - configurable: true - }); - - obj.verifySetFunction1 = "data1"; - var getFunc = function () { - return obj.verifySetFunction1; - }; - var setFunc = function (value) { - obj.verifySetFunction1 = value; - }; - - Object.defineProperty(obj, "0", { - get: getFunc, - set: setFunc - }); - - return accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction1", false, true); - } -runTestCase(testcase); + +var obj = {}; + +obj.verifySetFunction = "data"; +Object.defineProperty(obj, "0", { + get: function () { + return obj.verifySetFunction; + }, + set: function (value) { + obj.verifySetFunction = value; + }, + configurable: true +}); + +obj.verifySetFunction1 = "data1"; +var getFunc = function () { + return obj.verifySetFunction1; +}; +var setFunc = function (value) { + obj.verifySetFunction1 = value; +}; + +Object.defineProperty(obj, "0", { + get: getFunc, + set: setFunc +}); + +verifyEqualTo(obj, "0", getFunc()); + +verifyWritable(obj, "0", "verifySetFunction1"); + +verifyNotEnumerable(obj, "0"); + +verifyConfigurable(obj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-11.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-11.js index b2a8871a5cffa16c186b948f0444bd026375fbfd..22b4b2774e938b7a130a93f16c3a5a0e3ac98e84 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-11.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-11.js @@ -10,39 +10,40 @@ description: > Object.defineProperty will update [[Get]] and [[Set]] attributes of named accessor property 'P' successfully when [[Configurable]] attribute is true, 'A' is an Array object (8.12.9 step 11) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = []; - - obj.verifySetFunction = "data"; - Object.defineProperty(obj, "prop", { - get: function () { - return obj.verifySetFunction; - }, - set: function (value) { - obj.verifySetFunction = value; - }, - configurable: true - }); - - obj.verifySetFunction1 = "data1"; - var getFunc = function () { - return obj.verifySetFunction1; - }; - var setFunc = function (value) { - obj.verifySetFunction1 = value; - }; - - Object.defineProperty(obj, "prop", { - get: getFunc, - set: setFunc - }); - - return accessorPropertyAttributesAreCorrect(obj, "prop", getFunc, setFunc, "verifySetFunction1", false, true); - } -runTestCase(testcase); + +var obj = []; + +obj.verifySetFunction = "data"; +Object.defineProperty(obj, "prop", { + get: function () { + return obj.verifySetFunction; + }, + set: function (value) { + obj.verifySetFunction = value; + }, + configurable: true +}); + +obj.verifySetFunction1 = "data1"; +var getFunc = function () { + return obj.verifySetFunction1; +}; +var setFunc = function (value) { + obj.verifySetFunction1 = value; +}; + +Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc +}); + +verifyEqualTo(obj, "prop", getFunc()); + +verifyWritable(obj, "prop", "verifySetFunction1"); + +verifyNotEnumerable(obj, "prop"); + +verifyConfigurable(obj, "prop"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-12.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-12.js index ee06fc899942296393c9e7a5964f21f79361c5bc..eacd44a572eb0131546c3f1e10ecb892e5678156 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-12.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-12.js @@ -10,41 +10,42 @@ description: > Object.defineProperty will update [[Get]] and [[Set]] attributes of indexed accessor property successfully when [[Configurable]] attribute is true, 'O' is an Arguments object (8.12.9 step 11) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = (function () { - return arguments; - }()); - - obj.verifySetFunction = "data"; - Object.defineProperty(obj, "0", { - get: function () { - return obj.verifySetFunction; - }, - set: function (value) { - obj.verifySetFunction = value; - }, - configurable: true - }); - - obj.verifySetFunction1 = "data1"; - var getFunc = function () { - return obj.verifySetFunction1; - }; - var setFunc = function (value) { - obj.verifySetFunction1 = value; - }; - - Object.defineProperty(obj, "0", { - get: getFunc, - set: setFunc - }); - - return accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction1", false, true); - } -runTestCase(testcase); + +var obj = (function () { + return arguments; +}()); + +obj.verifySetFunction = "data"; +Object.defineProperty(obj, "0", { + get: function () { + return obj.verifySetFunction; + }, + set: function (value) { + obj.verifySetFunction = value; + }, + configurable: true +}); + +obj.verifySetFunction1 = "data1"; +var getFunc = function () { + return obj.verifySetFunction1; +}; +var setFunc = function (value) { + obj.verifySetFunction1 = value; +}; + +Object.defineProperty(obj, "0", { + get: getFunc, + set: setFunc +}); + +verifyEqualTo(obj, "0", getFunc()); + +verifyWritable(obj, "0", "verifySetFunction1"); + +verifyNotEnumerable(obj, "0"); + +verifyConfigurable(obj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-13.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-13.js index 70f387324a714673a9a6545a4e4478696d073df0..440b9c107bfd48d0da433cc9a621a1541b8a8c1c 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-13.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-13.js @@ -11,45 +11,45 @@ description: > of indexed accessor property 'P' successfully when [[Configurable]] attribute is true, 'O' is the global object (8.12.9 step 11) -includes: - - runTestCase.js - - fnGlobalObject.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js, fnGlobalObject.js] ---*/ -function testcase() { - - var obj = fnGlobalObject(); - try { - obj.verifySetFunction = "data"; - Object.defineProperty(obj, "0", { - get: function () { - return obj.verifySetFunction; - }, - set: function (value) { - obj.verifySetFunction = value; - }, - configurable: true - }); - - obj.verifySetFunction1 = "data1"; - var getFunc = function () { - return obj.verifySetFunction1; - }; - var setFunc = function (value) { - obj.verifySetFunction1 = value; - }; - - Object.defineProperty(obj, "0", { - get: getFunc, - set: setFunc - }); - - return accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction1", false, true); - } finally { - delete obj[0]; - delete obj.verifySetFunction; - delete obj.verifySetFunction1; - } - } -runTestCase(testcase); + +var obj = fnGlobalObject(); +try { + obj.verifySetFunction = "data"; + Object.defineProperty(obj, "0", { + get: function () { + return obj.verifySetFunction; + }, + set: function (value) { + obj.verifySetFunction = value; + }, + configurable: true + }); + + obj.verifySetFunction1 = "data1"; + var getFunc = function () { + return obj.verifySetFunction1; + }; + var setFunc = function (value) { + obj.verifySetFunction1 = value; + }; + + Object.defineProperty(obj, "0", { + get: getFunc, + set: setFunc + }); + + verifyEqualTo(obj, "0", getFunc()); + + verifyWritable(obj, "0", "verifySetFunction1"); + + verifyNotEnumerable(obj, "0"); + + verifyConfigurable(obj, "0"); +} finally { + delete obj[0]; + delete obj.verifySetFunction; + delete obj.verifySetFunction1; +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-2.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-2.js index e705a17bd781dbd5db9416637059aaef34204b56..15baa9b12eb4694083a5c2b00d803dedec3cb4c9 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-2.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-2.js @@ -11,39 +11,40 @@ description: > of indexed accessor property 'P' successfully when [[Configurable]] attribute is true, 'A' is an Array object (8.12.9 step 11) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = []; - - obj.verifySetFunction = "data"; - Object.defineProperty(obj, "0", { - get: function () { - return obj.verifySetFunction; - }, - set: function (value) { - obj.verifySetFunction = value; - }, - configurable: true - }); - - obj.verifySetFunction1 = "data1"; - var getFunc = function () { - return obj.verifySetFunction1; - }; - var setFunc = function (value) { - obj.verifySetFunction1 = value; - }; - - Object.defineProperty(obj, "0", { - get: getFunc, - set: setFunc - }); - - return accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction1", false, true); - } -runTestCase(testcase); + +var obj = []; + +obj.verifySetFunction = "data"; +Object.defineProperty(obj, "0", { + get: function () { + return obj.verifySetFunction; + }, + set: function (value) { + obj.verifySetFunction = value; + }, + configurable: true +}); + +obj.verifySetFunction1 = "data1"; +var getFunc = function () { + return obj.verifySetFunction1; +}; +var setFunc = function (value) { + obj.verifySetFunction1 = value; +}; + +Object.defineProperty(obj, "0", { + get: getFunc, + set: setFunc +}); + +verifyEqualTo(obj, "0", getFunc()); + +verifyWritable(obj, "0", "verifySetFunction1"); + +verifyNotEnumerable(obj, "0"); + +verifyConfigurable(obj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-3.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-3.js index 85fe3ca930ed001b3a3467719cb032cab56a86c3..458556b0da05ccfe1fba397e72e1a55411ade0f3 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-3.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-3.js @@ -10,41 +10,42 @@ description: > Object.defineProperty will update [[Get]] and [[Set]] attributes of named accessor property successfully when [[Configurable]] attribute is true, 'O' is an Arguments object (8.12.9 step 11) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = (function () { - return arguments; - }()); - - obj.verifySetFunction = "data"; - Object.defineProperty(obj, "property", { - get: function () { - return obj.verifySetFunction; - }, - set: function (value) { - obj.verifySetFunction = value; - }, - configurable: true - }); - - obj.verifySetFunction1 = "data1"; - var getFunc = function () { - return obj.verifySetFunction1; - }; - var setFunc = function (value) { - obj.verifySetFunction1 = value; - }; - - Object.defineProperty(obj, "property", { - get: getFunc, - set: setFunc - }); - - return accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "verifySetFunction1", false, true); - } -runTestCase(testcase); + +var obj = (function () { + return arguments; +}()); + +obj.verifySetFunction = "data"; +Object.defineProperty(obj, "property", { + get: function () { + return obj.verifySetFunction; + }, + set: function (value) { + obj.verifySetFunction = value; + }, + configurable: true +}); + +obj.verifySetFunction1 = "data1"; +var getFunc = function () { + return obj.verifySetFunction1; +}; +var setFunc = function (value) { + obj.verifySetFunction1 = value; +}; + +Object.defineProperty(obj, "property", { + get: getFunc, + set: setFunc +}); + +verifyEqualTo(obj, "property", getFunc()); + +verifyWritable(obj, "property", "verifySetFunction1"); + +verifyNotEnumerable(obj, "property"); + +verifyConfigurable(obj, "property"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-4.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-4.js index b0f2a8034774143e0a7c5e1f1e4ddf7240702931..54a4956613752b8f0f65beea9813cdc47eb7207b 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-4.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-4.js @@ -10,45 +10,45 @@ description: > Object.defineProperty will update [[Get]] and [[Set]] attributes of named accessor property 'P' successfully when [[Configurable]] attribute is true, 'O' is the global object (8.12.9 step 11) -includes: - - runTestCase.js - - fnGlobalObject.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js, fnGlobalObject.js] ---*/ -function testcase() { - - var obj = fnGlobalObject(); - try { - obj.verifySetFunction = "data"; - Object.defineProperty(obj, "property", { - get: function () { - return obj.verifySetFunction; - }, - set: function (value) { - obj.verifySetFunction = value; - }, - configurable: true - }); - - obj.verifySetFunction1 = "data1"; - var getFunc = function () { - return obj.verifySetFunction1; - }; - var setFunc = function (value) { - obj.verifySetFunction1 = value; - }; - - Object.defineProperty(obj, "property", { - get: getFunc, - set: setFunc - }); - - return accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "verifySetFunction1", false, true); - } finally { - delete obj.property; - delete obj.verifySetFunction; - delete obj.verifySetFunction1; - } - } -runTestCase(testcase); + +var obj = fnGlobalObject(); +try { + obj.verifySetFunction = "data"; + Object.defineProperty(obj, "property", { + get: function () { + return obj.verifySetFunction; + }, + set: function (value) { + obj.verifySetFunction = value; + }, + configurable: true + }); + + obj.verifySetFunction1 = "data1"; + var getFunc = function () { + return obj.verifySetFunction1; + }; + var setFunc = function (value) { + obj.verifySetFunction1 = value; + }; + + Object.defineProperty(obj, "property", { + get: getFunc, + set: setFunc + }); + + verifyEqualTo(obj, "property", getFunc()); + + verifyWritable(obj, "property", "verifySetFunction1"); + + verifyNotEnumerable(obj, "property"); + + verifyConfigurable(obj, "property"); +} finally { + delete obj.property; + delete obj.verifySetFunction; + delete obj.verifySetFunction1; +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-538-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-538-1.js index ce59418d568019114924de6fea8c91ebceaadcca..99918d563452400a21c1a0e870938aebe1a4339a 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-538-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-538-1.js @@ -10,38 +10,53 @@ description: > ES5 Attributes - Updating an indexed 'P' whose [[Configurable]] attribute is true to a data property is successful, 'A' is an Array object (8.12.9 - step 9.c.i) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = []; - - obj.verifySetFunc = "data"; - var getFunc = function () { - return obj.verifySetFunc; - }; - - var setFunc = function (value) { - obj.verifySetFunc = value; - }; - - Object.defineProperty(obj, "0", { - get: getFunc, - set: setFunc, - enumerable: true, - configurable: true - }); - var desc1 = Object.getOwnPropertyDescriptor(obj, "0"); - - Object.defineProperty(obj, "0", { - value: 1001 - }); - var desc2 = Object.getOwnPropertyDescriptor(obj, "0"); - - return desc1.hasOwnProperty("get") && desc2.hasOwnProperty("value") && - typeof desc2.get === "undefined" && typeof desc2.get === "undefined" && - dataPropertyAttributesAreCorrect(obj, "0", 1001, false, true, true); - } -runTestCase(testcase); +var obj = []; + +obj.verifySetFunc = "data"; +var getFunc = function () { + return obj.verifySetFunc; +}; + +var setFunc = function (value) { + obj.verifySetFunc = value; +}; + +Object.defineProperty(obj, "0", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true +}); +var desc1 = Object.getOwnPropertyDescriptor(obj, "0"); + +Object.defineProperty(obj, "0", { + value: 1001 +}); +var desc2 = Object.getOwnPropertyDescriptor(obj, "0"); + +if (!desc1.hasOwnProperty("get")) { + $ERROR('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get")); +} + +if (!desc2.hasOwnProperty("value")) { + $ERROR('Expected desc2.hasOwnProperty("value") to be true, actually ' + desc2.hasOwnProperty("value")); +} + +if (typeof desc2.get !== "undefined") { + $ERROR('Expected typeof desc2.get === "undefined", actually ' + typeof desc2.get); +} + +if (typeof desc2.set !== "undefined") { + $ERROR('Expected typeof desc2.set === "undefined", actually ' + typeof desc2.set); +} + +verifyEqualTo(obj, "0", 1001); + +verifyNotWritable(obj, "0"); + +verifyEnumerable(obj, "0"); + +verifyConfigurable(obj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-538-2.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-538-2.js index d40aa701bff61abd63c015ed8b99e58c400430ec..86e34a4f324d0567a4d8c0732a3c1a8e01238866 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-538-2.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-538-2.js @@ -10,40 +10,57 @@ description: > ES5 Attributes - Updating a named accessor property 'P' whose [[Configurable]] attribute is true to a data property is successful, 'O' is an Arguments object -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = (function () { - return arguments; - }()); - - obj.verifySetFunc = "data"; - var getFunc = function () { - return obj.verifySetFunc; - }; - - var setFunc = function (value) { - obj.verifySetFunc = value; - }; - - Object.defineProperty(obj, "prop", { - get: getFunc, - set: setFunc, - enumerable: true, - configurable: true - }); - var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); - - Object.defineProperty(obj, "prop", { - value: 1001 - }); - var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); - - return desc1.hasOwnProperty("get") && desc2.hasOwnProperty("value") && - typeof desc2.get === "undefined" && typeof desc2.get === "undefined" && - dataPropertyAttributesAreCorrect(obj, "prop", 1001, false, true, true); - } -runTestCase(testcase); +var obj = (function () { + return arguments; +}()); + +obj.verifySetFunc = "data"; +var getFunc = function () { + return obj.verifySetFunc; +}; + +var setFunc = function (value) { + obj.verifySetFunc = value; +}; + +Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true +}); +var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + +Object.defineProperty(obj, "prop", { + value: 1001 +}); +var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + +if (!desc1.hasOwnProperty("get") ) { + $ERROR('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get")); +} + +if (!desc2.hasOwnProperty("value") ) { + $ERROR('Expected desc2.hasOwnProperty("value") to be true, actually ' + desc2.hasOwnProperty("value")); +} + +if (typeof desc2.get !== "undefined" ) { + $ERROR('Expected typeof desc2.get === "undefined" , actually ' + typeof desc2.get ); +} + +if (typeof desc2.set !== "undefined" ) { + $ERROR('Expected typeof desc2.set === "undefined" , actually ' + typeof desc2.set ); +} + +verifyEqualTo(obj, "prop", 1001); + +verifyNotWritable(obj, "prop"); + +verifyEnumerable(obj, "prop"); + +verifyConfigurable(obj, "prop"); + + diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-538-3.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-538-3.js index 5f1078e3d6cae512ffaaa6abc3cbd28a091dbb7a..2f247104aa4d6aa0be59a4f798b4565132ef547e 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-538-3.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-538-3.js @@ -10,43 +10,59 @@ description: > ES5 Attributes - Updating a named accessor property 'P' whose [[Configurable]] attribute is true to a data property is successful, 'O' is the global object -includes: - - runTestCase.js - - fnGlobalObject.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js, fnGlobalObject.js] ---*/ -function testcase() { - var obj = fnGlobalObject(); - - obj.verifySetFunc = "data"; - var getFunc = function () { - return obj.verifySetFunc; - }; - - var setFunc = function (value) { - obj.verifySetFunc = value; - }; - try { - Object.defineProperty(obj, "prop", { - get: getFunc, - set: setFunc, - enumerable: true, - configurable: true - }); - var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); - - Object.defineProperty(obj, "prop", { - value: 1001 - }); - var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); - - return desc1.hasOwnProperty("get") && desc2.hasOwnProperty("value") && - typeof desc2.get === "undefined" && typeof desc2.get === "undefined" && - dataPropertyAttributesAreCorrect(obj, "prop", 1001, false, true, true); - } finally { - delete obj.prop; - delete obj.verifySetFunc; - } +var obj = fnGlobalObject(); + +obj.verifySetFunc = "data"; +var getFunc = function () { + return obj.verifySetFunc; +}; + +var setFunc = function (value) { + obj.verifySetFunc = value; +}; +try { + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + value: 1001 + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + if (!desc1.hasOwnProperty("get")) { + $ERROR('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get")); } -runTestCase(testcase); + + if (!desc2.hasOwnProperty("value")) { + $ERROR('Expected desc2.hasOwnProperty("value") to be true, actually ' + desc2.hasOwnProperty("value")); + } + + if (typeof desc2.get !== "undefined") { + $ERROR('Expected typeof desc2.get === "undefined", actually ' + typeof desc2.get); + } + + if (typeof desc2.set !== "undefined") { + $ERROR('Expected typeof desc2.set === "undefined", actually ' + typeof desc2.set); + } + + verifyEqualTo(obj, "prop", 1001); + + verifyNotWritable(obj, "prop"); + + verifyEnumerable(obj, "prop"); + + verifyConfigurable(obj, "prop"); + +} finally { + delete obj.prop; + delete obj.verifySetFunc; +} + diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-538-5.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-538-5.js index e6b8c1596a266a0047a10c44d78693497c60cdb2..4cf7c3c4e4fdbe5093247880fb9ebed282596731 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-538-5.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-538-5.js @@ -10,38 +10,56 @@ description: > ES5 Attributes - Updating a named accessor property 'P' whose [[Configurable]] attribute is true to a data property is successful, 'A' is an Array object (8.12.9 - step 9.c.i) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = []; - - obj.verifySetFunc = "data"; - var getFunc = function () { - return obj.verifySetFunc; - }; - - var setFunc = function (value) { - obj.verifySetFunc = value; - }; - - Object.defineProperty(obj, "prop", { - get: getFunc, - set: setFunc, - enumerable: true, - configurable: true - }); - var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); - - Object.defineProperty(obj, "prop", { - value: 1001 - }); - var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); - - return desc1.hasOwnProperty("get") && desc2.hasOwnProperty("value") && - typeof desc2.get === "undefined" && typeof desc2.get === "undefined" && - dataPropertyAttributesAreCorrect(obj, "prop", 1001, false, true, true); - } -runTestCase(testcase); +var obj = []; + +obj.verifySetFunc = "data"; +var getFunc = function () { + return obj.verifySetFunc; +}; + +var setFunc = function (value) { + obj.verifySetFunc = value; +}; + +Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true +}); +var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + +Object.defineProperty(obj, "prop", { + value: 1001 +}); +var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + +if (!desc1.hasOwnProperty("get") ) { + $ERROR('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get")); +} + +if (!desc2.hasOwnProperty("value") ) { + $ERROR('Expected desc2.hasOwnProperty("value") to be true, actually ' + desc2.hasOwnProperty("value")); +} + +if (typeof desc2.get !== "undefined" ) { + $ERROR('Expected typeof desc2.get === "undefined" , actually ' + typeof desc2.get); +} + +if (typeof desc2.set !== "undefined" ) { + $ERROR('Expected typeof desc2.set === "undefined" , actually ' + typeof desc2.set); +} + + +verifyEqualTo(obj, "prop", 1001); + +verifyNotWritable(obj, "prop"); + +verifyEnumerable(obj, "prop"); + +verifyConfigurable(obj, "prop"); + + diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-538-6.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-538-6.js index 40ce80c5f4e35289dbaf11097f29b1ae4ddfec4e..3d61bc301cbff12f37bbdb4a813783dd68b10991 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-538-6.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-538-6.js @@ -10,40 +10,55 @@ description: > ES5 Attributes - Updating an indexed accessor property 'P' whose [[Configurable]] attribute is true to a data property is successful, 'O' is an Arguments object -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = (function () { - return arguments; - }()); - - obj.verifySetFunc = "data"; - var getFunc = function () { - return obj.verifySetFunc; - }; - - var setFunc = function (value) { - obj.verifySetFunc = value; - }; - - Object.defineProperty(obj, "0", { - get: getFunc, - set: setFunc, - enumerable: true, - configurable: true - }); - var desc1 = Object.getOwnPropertyDescriptor(obj, "0"); - - Object.defineProperty(obj, "0", { - value: 1001 - }); - var desc2 = Object.getOwnPropertyDescriptor(obj, "0"); - - return desc1.hasOwnProperty("get") && desc2.hasOwnProperty("value") && - typeof desc2.get === "undefined" && typeof desc2.get === "undefined" && - dataPropertyAttributesAreCorrect(obj, "0", 1001, false, true, true); - } -runTestCase(testcase); +var obj = (function () { + return arguments; +}()); + +obj.verifySetFunc = "data"; +var getFunc = function () { + return obj.verifySetFunc; +}; + +var setFunc = function (value) { + obj.verifySetFunc = value; +}; + +Object.defineProperty(obj, "0", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true +}); +var desc1 = Object.getOwnPropertyDescriptor(obj, "0"); + +Object.defineProperty(obj, "0", { + value: 1001 +}); +var desc2 = Object.getOwnPropertyDescriptor(obj, "0"); + +if (!desc1.hasOwnProperty("get") ) { + $ERROR('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get")); +} + +if (!desc2.hasOwnProperty("value") ) { + $ERROR('Expected desc2.hasOwnProperty("value") to be true, actually ' + desc2.hasOwnProperty("value")); +} + +if (typeof desc2.get !== "undefined" ) { + $ERROR('Expected typeof desc2.get === "undefined" , actually ' + typeof desc2.get); +} + +if (typeof desc2.set !== "undefined" ) { + $ERROR('Expected typeof desc2.set === "undefined" , actually ' + typeof desc2.set); +} + +verifyEqualTo(obj, "0", 1001); + +verifyNotWritable(obj, "0"); + +verifyEnumerable(obj, "0"); + +verifyConfigurable(obj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-538-7.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-538-7.js index 1273fd5e39c79054322d4cb7b778c2e20befefb6..b7c43a7dec02bcd59de86048669f85a39cfe7518 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-538-7.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-538-7.js @@ -10,43 +10,58 @@ description: > ES5 Attributes - Updating an indexed accessor property 'P' whose [[Configurable]] attribute is true to a data property is successful, 'O' is the global object -includes: - - runTestCase.js - - fnGlobalObject.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js, fnGlobalObject.js] ---*/ -function testcase() { - var obj = fnGlobalObject(); - - obj.verifySetFunc = "data"; - var getFunc = function () { - return obj.verifySetFunc; - }; - - var setFunc = function (value) { - obj.verifySetFunc = value; - }; - try { - Object.defineProperty(obj, "0", { - get: getFunc, - set: setFunc, - enumerable: true, - configurable: true - }); - var desc1 = Object.getOwnPropertyDescriptor(obj, "0"); - - Object.defineProperty(obj, "0", { - value: 1001 - }); - var desc2 = Object.getOwnPropertyDescriptor(obj, "0"); - - return desc1.hasOwnProperty("get") && desc2.hasOwnProperty("value") && - typeof desc2.get === "undefined" && typeof desc2.get === "undefined" && - dataPropertyAttributesAreCorrect(obj, "0", 1001, false, true, true); - } finally { - delete obj[0]; - delete obj.verifySetFunc; - } +var obj = fnGlobalObject(); + +obj.verifySetFunc = "data"; +var getFunc = function () { + return obj.verifySetFunc; +}; + +var setFunc = function (value) { + obj.verifySetFunc = value; +}; +try { + Object.defineProperty(obj, "0", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "0"); + + Object.defineProperty(obj, "0", { + value: 1001 + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "0"); + + if (!desc1.hasOwnProperty("get")) { + $ERROR('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get")); + } + + if (!desc2.hasOwnProperty("value")) { + $ERROR('Expected desc2.hasOwnProperty("value") to be true, actually ' + desc2.hasOwnProperty("value")); + } + + if (typeof desc2.get !== "undefined") { + $ERROR('Expected typeof desc2.get === "undefined", actually ' + typeof desc2.get); } -runTestCase(testcase); + + if (typeof desc2.set !== "undefined") { + $ERROR('Expected typeof desc2.set === "undefined", actually ' + typeof desc2.get); + } + + verifyEqualTo(obj, "0", 1001); + + verifyNotWritable(obj, "0"); + + verifyEnumerable(obj, "0"); + + verifyConfigurable(obj, "0"); +} finally { + delete obj[0]; + delete obj.verifySetFunc; +} + diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-538.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-538.js index 753a63d816e76f9f143047a44fe9f9c6856db205..19eb123e4c1800e1dfdcdb9deb3f0deb0351547f 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-538.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-538.js @@ -10,38 +10,53 @@ description: > ES5 Attributes - success to update the accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is true) to a data property -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; - - var getFunc = function () { - return 1001; - }; - - var verifySetFunc = "data"; - var setFunc = function (value) { - verifySetFunc = value; - }; - - Object.defineProperty(obj, "prop", { - get: getFunc, - set: setFunc, - enumerable: true, - configurable: true - }); - var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); - - Object.defineProperty(obj, "prop", { - value: 1001 - }); - var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); - - return desc1.hasOwnProperty("get") && desc2.hasOwnProperty("value") && - typeof desc2.get === "undefined" && typeof desc2.get === "undefined" && - dataPropertyAttributesAreCorrect(obj, "prop", 1001, false, true, true); - } -runTestCase(testcase); +var obj = {}; + +var getFunc = function () { + return 1001; +}; + +var verifySetFunc = "data"; +var setFunc = function (value) { + verifySetFunc = value; +}; + +Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true +}); +var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + +Object.defineProperty(obj, "prop", { + value: 1001 +}); +var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + +if (!desc1.hasOwnProperty("get") ) { + $ERROR('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get")); +} + +if (!desc2.hasOwnProperty("value") ) { + $ERROR('Expected desc2.hasOwnProperty("value") to be true, actually ' + desc2.hasOwnProperty("value")); +} + +if (typeof desc2.get !== "undefined" ) { + $ERROR('Expected typeof desc2.get === "undefined" , actually ' + typeof desc2.get ); +} + + +verifyEqualTo(obj, "prop", 1001); + +verifyNotWritable(obj, "prop"); + +verifyEnumerable(obj, "prop"); + +verifyConfigurable(obj, "prop"); + + + diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-540-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-540-1.js index 8017d5d92b9372de6c3fd49962f33540ef129ea9..a94d61d7ff7915c9165fe85ee11b9c3ddea9c5af 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-540-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-540-1.js @@ -11,48 +11,63 @@ description: > attributes of a named accessor property 'P' whose [[Configurable]] attribute is false and throws TypeError exception, 'O' is an Object object (8.12.9 step 11.a) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; - - obj.verifySetFunction = "data"; - var getFunc = function () { - return obj.verifySetFunction; - }; - var setFunc = function (value) { - obj.verifySetFunction = value; - }; - Object.defineProperty(obj, "property", { - get: getFunc, - set: setFunc, - configurable: false - }); - - var result = false; - try { - Object.defineProperty(obj, "property", { - get: function () { - return 100; - } - }); - } catch (e) { - result = e instanceof TypeError && - accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "verifySetFunction", false, false); +var obj = {}; + +obj.verifySetFunction = "data"; +var getFunc = function () { + return obj.verifySetFunction; +}; +var setFunc = function (value) { + obj.verifySetFunction = value; +}; +Object.defineProperty(obj, "property", { + get: getFunc, + set: setFunc, + configurable: false +}); + +var result = false; +try { + Object.defineProperty(obj, "property", { + get: function () { + return 100; } + }); +} catch (e) { + result = e instanceof TypeError; + verifyEqualTo(obj, "property", getFunc()); + + verifyWritable(obj, "property", "verifySetFunction"); - try { - Object.defineProperty(obj, "property", { - set: function (value) { - obj.verifySetFunction1 = value; - } - }); - } catch (e1) { - return result && e1 instanceof TypeError && - accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "verifySetFunction", false, false); + verifyNotEnumerable(obj, "property"); + + verifyNotConfigurable(obj, "property"); +} + +try { + Object.defineProperty(obj, "property", { + set: function (value) { + obj.verifySetFunction1 = value; } + }); +} catch (e) { + if (!result) { + $ERROR('Expected result to be true, actually ' + result); } -runTestCase(testcase); + + verifyEqualTo(obj, "property", getFunc()); + + verifyWritable(obj, "property", "verifySetFunction"); + + verifyNotEnumerable(obj, "property"); + + verifyNotConfigurable(obj, "property"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-540-2.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-540-2.js index b02f2b210d7b732070c5cecbcdbf86b22da37257..a4bb927b8719118b11ee82ff4f7954cdc744f601 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-540-2.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-540-2.js @@ -11,48 +11,63 @@ description: > attributes of an indexed property 'P' whose [[Configurable]] attribute is false and throws TypeError exception, 'A' is an Array object (8.12.9 step 11.a) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = []; - - obj.verifySetFunction = "data"; - var getFunc = function () { - return obj.verifySetFunction; - }; - var setFunc = function (value) { - obj.verifySetFunction = value; - }; - Object.defineProperty(obj, "0", { - get: getFunc, - set: setFunc, - configurable: false - }); - - var result = false; - try { - Object.defineProperty(obj, "0", { - get: function () { - return 100; - } - }); - } catch (e) { - result = e instanceof TypeError && - accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction", false, false); +var obj = []; + +obj.verifySetFunction = "data"; +var getFunc = function () { + return obj.verifySetFunction; +}; +var setFunc = function (value) { + obj.verifySetFunction = value; +}; +Object.defineProperty(obj, "0", { + get: getFunc, + set: setFunc, + configurable: false +}); + +var result = false; +try { + Object.defineProperty(obj, "0", { + get: function () { + return 100; } + }); +} catch (e) { + result = e instanceof TypeError; + verifyEqualTo(obj, "0", getFunc()); + + verifyWritable(obj, "0", "verifySetFunction"); - try { - Object.defineProperty(obj, "0", { - set: function (value) { - obj.verifySetFunction1 = value; - } - }); - } catch (e1) { - return result && e1 instanceof TypeError && - accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction", false, false); + verifyNotEnumerable(obj, "0"); + + verifyNotConfigurable(obj, "0"); +} + +try { + Object.defineProperty(obj, "0", { + set: function (value) { + obj.verifySetFunction1 = value; } + }); +} catch (e) { + if (!result ) { + $ERROR('Expected result to be true, actually ' + result ); } -runTestCase(testcase); + + verifyEqualTo(obj, "0", getFunc()); + + verifyWritable(obj, "0", "verifySetFunction"); + + verifyNotEnumerable(obj, "0"); + + verifyNotConfigurable(obj, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-540-3.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-540-3.js index af693e64863a1343c4ae40bc24eea3b69acf2ced..53abf3c1c876294ee90ecd05770e6c7670194919 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-540-3.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-540-3.js @@ -10,50 +10,66 @@ description: > Object.defineProperty fails to update [[Get]] and [[Set]] attributes of a named accessor property 'P' whose [[Configurable]] attribute is false, 'O' is an Arguments object (8.12.9 step 11.a) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = (function () { - return arguments; - }()); - - obj.verifySetFunction = "data"; - var getFunc = function () { - return obj.verifySetFunction; - }; - var setFunc = function (value) { - obj.verifySetFunction = value; - }; - Object.defineProperty(obj, "property", { - get: getFunc, - set: setFunc, - configurable: false - }); - - var result = false; - try { - Object.defineProperty(obj, "property", { - get: function () { - return 100; - } - }); - } catch (e) { - result = e instanceof TypeError && - accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "verifySetFunction", false, false); +var obj = (function () { + return arguments; +}()); + +obj.verifySetFunction = "data"; +var getFunc = function () { + return obj.verifySetFunction; +}; +var setFunc = function (value) { + obj.verifySetFunction = value; +}; +Object.defineProperty(obj, "property", { + get: getFunc, + set: setFunc, + configurable: false +}); + +var result = false; +try { + Object.defineProperty(obj, "property", { + get: function () { + return 100; } + }); +} catch (e) { + result = e instanceof TypeError; + verifyEqualTo(obj, "property", getFunc()); + + verifyWritable(obj, "property", "verifySetFunction"); + + verifyNotEnumerable(obj, "property"); - try { - Object.defineProperty(obj, "property", { - set: function (value) { - obj.verifySetFunction1 = value; - } - }); - } catch (e1) { - return result && e1 instanceof TypeError && - accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "verifySetFunction", false, false); + verifyNotConfigurable(obj, "property"); +} + +try { + Object.defineProperty(obj, "property", { + set: function (value) { + obj.verifySetFunction1 = value; } + }); +} catch (e) { + + if (!result) { + $ERROR('Expected result to be true, actually ' + result); } -runTestCase(testcase); + + verifyEqualTo(obj, "property", getFunc()); + + verifyWritable(obj, "property", "verifySetFunction"); + + verifyNotEnumerable(obj, "property"); + + verifyNotConfigurable(obj, "property"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-540-6.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-540-6.js index b6cf00397c1c3c140e783cf45c353cee3194d5e3..86b70029cd5f8845bdc00ce6a7cdf6bd7755318a 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-540-6.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-540-6.js @@ -11,48 +11,65 @@ description: > attributes of an indexed accessor property 'P' whose [[Configurable]] attribute is false and throws TypeError exception, 'O' is an Object object (8.12.9 step 11.a) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; - - obj.verifySetFunction = "data"; - var getFunc = function () { - return obj.verifySetFunction; - }; - var setFunc = function (value) { - obj.verifySetFunction = value; - }; - Object.defineProperty(obj, "0", { - get: getFunc, - set: setFunc, - configurable: false - }); - - var result = false; - try { - Object.defineProperty(obj, "0", { - get: function () { - return 100; - } - }); - } catch (e) { - result = e instanceof TypeError && - accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction", false, false); +var obj = {}; + +obj.verifySetFunction = "data"; +var getFunc = function () { + return obj.verifySetFunction; +}; +var setFunc = function (value) { + obj.verifySetFunction = value; +}; +Object.defineProperty(obj, "0", { + get: getFunc, + set: setFunc, + configurable: false +}); + +var result = false; +try { + Object.defineProperty(obj, "0", { + get: function () { + return 100; } + }); +} catch (e) { + result = e instanceof TypeError; + + verifyEqualTo(obj, "0", getFunc()); + + verifyWritable(obj, "0", "verifySetFunction"); - try { - Object.defineProperty(obj, "0", { - set: function (value) { - obj.verifySetFunction1 = value; - } - }); - } catch (e1) { - return result && e1 instanceof TypeError && - accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction", false, false); + verifyNotEnumerable(obj, "0"); + + verifyNotConfigurable(obj, "0"); +} + +try { + Object.defineProperty(obj, "0", { + set: function (value) { + obj.verifySetFunction1 = value; } + }); +} catch (e) { + if (!result) { + $ERROR('Expected result to be true, actually ' + result); } -runTestCase(testcase); + + verifyEqualTo(obj, "0", getFunc()); + + verifyWritable(obj, "0", "verifySetFunction"); + + verifyNotEnumerable(obj, "0"); + + verifyNotConfigurable(obj, "0"); + + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-540-7.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-540-7.js index bbf262895e240b2ecbb3284d21a8f8bfe16f7e4e..930d477ca524388a4f85f40a9531a0262c48f5fd 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-540-7.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-540-7.js @@ -11,48 +11,65 @@ description: > attributes of a named property 'P' whose [[Configurable]] attribute is false and throws TypeError exception, 'A' is an Array object (8.12.9 step 11.a) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = []; - - obj.verifySetFunction = "data"; - var getFunc = function () { - return obj.verifySetFunction; - }; - var setFunc = function (value) { - obj.verifySetFunction = value; - }; - Object.defineProperty(obj, "prop", { - get: getFunc, - set: setFunc, - configurable: false - }); - - var result = false; - try { - Object.defineProperty(obj, "prop", { - get: function () { - return 100; - } - }); - } catch (e) { - result = e instanceof TypeError && - accessorPropertyAttributesAreCorrect(obj, "prop", getFunc, setFunc, "verifySetFunction", false, false); +var obj = []; + +obj.verifySetFunction = "data"; +var getFunc = function () { + return obj.verifySetFunction; +}; +var setFunc = function (value) { + obj.verifySetFunction = value; +}; +Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + configurable: false +}); + +var result = false; +try { + Object.defineProperty(obj, "prop", { + get: function () { + return 100; } + }); +} catch (e) { + result = e instanceof TypeError; + verifyEqualTo(obj, "prop", getFunc()); + + verifyWritable(obj, "prop", "verifySetFunction"); + + verifyNotEnumerable(obj, "prop"); - try { - Object.defineProperty(obj, "prop", { - set: function (value) { - obj.verifySetFunction1 = value; - } - }); - } catch (e1) { - return result && e1 instanceof TypeError && - accessorPropertyAttributesAreCorrect(obj, "prop", getFunc, setFunc, "verifySetFunction", false, false); + verifyNotConfigurable(obj, "prop"); +} + +try { + Object.defineProperty(obj, "prop", { + set: function (value) { + obj.verifySetFunction1 = value; } + }); +} catch (e1) { + if (!result) { + $ERROR('Expected result to be true, actually ' + result); } -runTestCase(testcase); + + + verifyEqualTo(obj, "prop", getFunc()); + + verifyWritable(obj, "prop", "verifySetFunction"); + + verifyNotEnumerable(obj, "prop"); + + verifyNotConfigurable(obj, "prop"); + + + if (!(e1 instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e1); + } + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-540-8.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-540-8.js index b1851c95046968901930cba4c66a644e0e997c74..5049fac765ec8776ebed39468feb27b301e7b7c5 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-540-8.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-540-8.js @@ -11,50 +11,65 @@ description: > attributes of an indexed accessor property 'P' whose [[Configurable]] attribute is false, 'O' is an Arguments object (8.12.9 step 11.a) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = (function () { - return arguments; - }()); - - obj.verifySetFunction = "data"; - var getFunc = function () { - return obj.verifySetFunction; - }; - var setFunc = function (value) { - obj.verifySetFunction = value; - }; - Object.defineProperty(obj, "0", { - get: getFunc, - set: setFunc, - configurable: false - }); - - var result = false; - try { - Object.defineProperty(obj, "0", { - get: function () { - return 100; - } - }); - } catch (e) { - result = e instanceof TypeError && - accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction", false, false); +var obj = (function () { + return arguments; +}()); + +obj.verifySetFunction = "data"; +var getFunc = function () { + return obj.verifySetFunction; +}; +var setFunc = function (value) { + obj.verifySetFunction = value; +}; +Object.defineProperty(obj, "0", { + get: getFunc, + set: setFunc, + configurable: false +}); + +var result = false; +try { + Object.defineProperty(obj, "0", { + get: function () { + return 100; } + }); +} catch (e) { + result = e instanceof TypeError; + verifyEqualTo(obj, "0", getFunc()); + + verifyWritable(obj, "0", "verifySetFunction"); - try { - Object.defineProperty(obj, "0", { - set: function (value) { - obj.verifySetFunction1 = value; - } - }); - } catch (e1) { - return result && e1 instanceof TypeError && - accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction", false, false); + verifyNotEnumerable(obj, "0"); + + verifyNotConfigurable(obj, "0"); +} + +try { + Object.defineProperty(obj, "0", { + set: function (value) { + obj.verifySetFunction1 = value; } + }); +} catch (e) { + if (!result ) { + $ERROR('Expected result to be true, actually ' + result ); } -runTestCase(testcase); + + verifyEqualTo(obj, "0", getFunc()); + + verifyWritable(obj, "0", "verifySetFunction"); + + verifyNotEnumerable(obj, "0"); + + verifyNotConfigurable(obj, "0"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-547-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-547-1.js index dd7ef5a0370932977575dee045ff1762a74af8f8..64f55d76ac1f5b16822b2e499daa0dabbaee4089 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-547-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-547-1.js @@ -10,42 +10,57 @@ description: > ES5 Attributes - Updating an indexed accessor property 'P' whose [[Configurable]] attribute is false to a data property does not succeed, 'A' is an Array object (8.12.9 step 9.a) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = []; - - obj.verifySetFunc = "data"; - var getFunc = function () { - return obj.verifySetFunc; - }; - - var setFunc = function (value) { - obj.verifySetFunc = value; - }; - - Object.defineProperty(obj, "0", { - get: getFunc, - set: setFunc, - enumerable: true, - configurable: false - }); - var desc1 = Object.getOwnPropertyDescriptor(obj, "0"); - - try { - Object.defineProperty(obj, "0", { - value: 1001 - }); - - return false; - } catch (e) { - var desc2 = Object.getOwnPropertyDescriptor(obj, "0"); - - return desc1.hasOwnProperty("get") && !desc2.hasOwnProperty("value") && e instanceof TypeError && - accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunc", true, false); +var obj = []; + +obj.verifySetFunc = "data"; +var getFunc = function () { + return obj.verifySetFunc; +}; + +var setFunc = function (value) { + obj.verifySetFunc = value; +}; + +Object.defineProperty(obj, "0", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: false +}); +var desc1 = Object.getOwnPropertyDescriptor(obj, "0"); + +try { + Object.defineProperty(obj, "0", { + value: 1001 + }); + + $ERROR("Expected an exception."); +} catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "0"); + + if (!desc1.hasOwnProperty("get")) { + $ERROR('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get")); + } + + if (desc2.hasOwnProperty("value")) { + $ERROR('Expected !desc2.hasOwnProperty("value") to be true, actually ' + !desc2.hasOwnProperty("value")); } + + + verifyEqualTo(obj, "0", getFunc()); + + verifyWritable(obj, "0", "verifySetFunc"); + + verifyEnumerable(obj, "0"); + + verifyNotConfigurable(obj, "0"); + + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-547-2.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-547-2.js index a3a5b8e366ea94c256c9fc75f844901f354a6fb7..6fac38d037179246d41fe7502060663183be6f1f 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-547-2.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-547-2.js @@ -10,44 +10,59 @@ description: > ES5 Attributes - Updating a named accessor property 'P' whose [[Configurable]] attribute is false to a data property does not succeed, 'A' is an Arguments object (8.12.9 step 9.a) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = (function () { - return arguments; - }()); - - obj.verifySetFunc = "data"; - var getFunc = function () { - return obj.verifySetFunc; - }; - - var setFunc = function (value) { - obj.verifySetFunc = value; - }; - - Object.defineProperty(obj, "prop", { - get: getFunc, - set: setFunc, - enumerable: true, - configurable: false - }); - var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); - - try { - Object.defineProperty(obj, "prop", { - value: 1001 - }); - - return false; - } catch (e) { - var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); - - return desc1.hasOwnProperty("get") && !desc2.hasOwnProperty("value") && e instanceof TypeError && - accessorPropertyAttributesAreCorrect(obj, "prop", getFunc, setFunc, "verifySetFunc", true, false); +var obj = (function () { + return arguments; +}()); + +obj.verifySetFunc = "data"; +var getFunc = function () { + return obj.verifySetFunc; +}; + +var setFunc = function (value) { + obj.verifySetFunc = value; +}; + +Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: false +}); +var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + +try { + Object.defineProperty(obj, "prop", { + value: 1001 + }); + + $ERROR("Expected an exception."); +} catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + if (!desc1.hasOwnProperty("get")) { + $ERROR('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get")); } + + if (desc2.hasOwnProperty("value")) { + $ERROR('Expected !desc2.hasOwnProperty("value") to be true, actually ' + !desc2.hasOwnProperty("value")); } -runTestCase(testcase); + + + verifyEqualTo(obj, "prop", getFunc()); + + verifyWritable(obj, "prop", "verifySetFunc"); + + verifyEnumerable(obj, "prop"); + + verifyNotConfigurable(obj, "prop"); + + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-547-3.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-547-3.js index f0723406d5bd0d9a7250ad581624a78e64b3ac14..621b573af8435777bc5bdbee92eff0064be53772 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-547-3.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-547-3.js @@ -10,42 +10,56 @@ description: > ES5 Attributes - Updating a named accessor property 'P' whose [[Configurable]] attribute is false to a data property does not succeed, 'A' is an Array object (8.12.9 step 9.a) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = []; - - obj.verifySetFunc = "data"; - var getFunc = function () { - return obj.verifySetFunc; - }; - - var setFunc = function (value) { - obj.verifySetFunc = value; - }; - - Object.defineProperty(obj, "prop", { - get: getFunc, - set: setFunc, - enumerable: true, - configurable: false - }); - var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); - - try { - Object.defineProperty(obj, "prop", { - value: 1001 - }); - - return false; - } catch (e) { - var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); - - return desc1.hasOwnProperty("get") && !desc2.hasOwnProperty("value") && e instanceof TypeError && - accessorPropertyAttributesAreCorrect(obj, "prop", getFunc, setFunc, "verifySetFunc", true, false); - } +var obj = []; + +obj.verifySetFunc = "data"; +var getFunc = function () { + return obj.verifySetFunc; +}; + +var setFunc = function (value) { + obj.verifySetFunc = value; +}; + +Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: false +}); +var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + +try { + Object.defineProperty(obj, "prop", { + value: 1001 + }); + + $ERROR("Expected an exception."); +} catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + if (!desc1.hasOwnProperty("get")) { + $ERROR('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get")); + } + + if (desc2.hasOwnProperty("value")) { + $ERROR('Expected !desc2.hasOwnProperty("value") to be true, actually ' + !desc2.hasOwnProperty("value")); } -runTestCase(testcase); + + + verifyEqualTo(obj, "prop", getFunc()); + + verifyWritable(obj, "prop", "verifySetFunc"); + + verifyEnumerable(obj, "prop"); + + verifyNotConfigurable(obj, "prop"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-547-4.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-547-4.js index 0c724fb553b484d7e24bc8e3e5c9868bfc5e3794..fa7f964d19f47a3b65f92b187d54302584ac37e3 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-547-4.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-547-4.js @@ -10,44 +10,57 @@ description: > ES5 Attributes - Updating an indexed accessor property 'P' whose [[Configurable]] attribute is false to a data property does not succeed, 'A' is an Arguments object (8.12.9 step 9.a) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = (function () { - return arguments; - }()); - - obj.verifySetFunc = "data"; - var getFunc = function () { - return obj.verifySetFunc; - }; - - var setFunc = function (value) { - obj.verifySetFunc = value; - }; - - Object.defineProperty(obj, "0", { - get: getFunc, - set: setFunc, - enumerable: true, - configurable: false - }); - var desc1 = Object.getOwnPropertyDescriptor(obj, "0"); - - try { - Object.defineProperty(obj, "0", { - value: 1001 - }); - - return false; - } catch (e) { - var desc2 = Object.getOwnPropertyDescriptor(obj, "0"); - - return desc1.hasOwnProperty("get") && !desc2.hasOwnProperty("value") && e instanceof TypeError && - accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunc", true, false); - } +var obj = (function () { + return arguments; +}()); + +obj.verifySetFunc = "data"; +var getFunc = function () { + return obj.verifySetFunc; +}; + +var setFunc = function (value) { + obj.verifySetFunc = value; +}; + +Object.defineProperty(obj, "0", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: false +}); +var desc1 = Object.getOwnPropertyDescriptor(obj, "0"); + +try { + Object.defineProperty(obj, "0", { + value: 1001 + }); + $ERROR("Expected an exception."); +} catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "0"); + + if (!desc1.hasOwnProperty("get")) { + $ERROR('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get")); + } + + if (desc2.hasOwnProperty("value")) { + $ERROR('Expected !desc2.hasOwnProperty("value") to be true, actually ' + !desc2.hasOwnProperty("value")); } -runTestCase(testcase); + + verifyEqualTo(obj, "0", getFunc()); + + verifyWritable(obj, "0", "verifySetFunc"); + + verifyEnumerable(obj, "0"); + + verifyNotConfigurable(obj, "0"); + + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); + } + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-55.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-55.js index 50bb396b9a57a1249a2e725c1eb2a0a5c3f31be0..d4afddacb3e9ca0d139b6774eb69dec5fdd167d1 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-55.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-55.js @@ -10,26 +10,27 @@ description: > Object.defineProperty - 'name' property doesn't exist in 'O', test [[Enumerable]] of 'name' property of 'Attributes' is set as false value if absent in accessor descriptor 'desc' (8.12.9 step 4.b.i) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - var setFunc = function (value) { - obj.setVerifyHelpProp = value; - }; - var getFunc = function () { - return 10; - }; +var setFunc = function (value) { + obj.setVerifyHelpProp = value; +}; +var getFunc = function () { + return 10; +}; - Object.defineProperty(obj, "property", { - set: setFunc, - get: getFunc, - configurable: true - }); - return accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "setVerifyHelpProp", false, true); - } -runTestCase(testcase); +Object.defineProperty(obj, "property", { + set: setFunc, + get: getFunc, + configurable: true +}); +verifyEqualTo(obj, "property", getFunc()); + +verifyWritable(obj, "property", "setVerifyHelpProp"); + +verifyNotEnumerable(obj, "property"); + +verifyConfigurable(obj, "property"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-56.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-56.js index 1b8116b424c4121b47d7c36ce66dfce3f9f55e93..c5cdd6a3879b751882a07397ecaa1a7d2863a608 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-56.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-56.js @@ -10,25 +10,26 @@ description: > Object.defineProperty - 'name' property doesn't exist in 'O', test [[Configurable]] of 'name' property is set as false if it is absent in accessor descriptor 'desc' (8.12.9 step 4.b.i) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; - var setFunc = function (value) { - obj.setVerifyHelpProp = value; - }; - var getFunc = function () { - return 10; - }; +var obj = {}; +var setFunc = function (value) { + obj.setVerifyHelpProp = value; +}; +var getFunc = function () { + return 10; +}; - Object.defineProperty(obj, "property", { - set: setFunc, - get: getFunc, - enumerable: true - }); - return accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "setVerifyHelpProp", true, false); - } -runTestCase(testcase); +Object.defineProperty(obj, "property", { + set: setFunc, + get: getFunc, + enumerable: true +}); +verifyEqualTo(obj, "property", getFunc()); + +verifyWritable(obj, "property", "setVerifyHelpProp"); + +verifyEnumerable(obj, "property"); + +verifyNotConfigurable(obj, "property"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-57.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-57.js index 31a52d5c958facb98bd6f213c4998a0b9d267f84..7c6dcbd630a8b677dd95f661a309a91e1564f52b 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-57.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-57.js @@ -9,36 +9,37 @@ es5id: 15.2.3.6-4-57 description: > Object.defineProperty - 'desc' is accessor descriptor, test updating all attribute values of 'name' (8.12.9 step 4.b.i) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; - var setFunc = function (value) { - obj.setVerifyHelpProp = value; - }; - var getFunc = function () { - return 14; - }; - - Object.defineProperty(obj, "property", { - get: function () { - return 11; - }, - set: function (value) { }, - configurable: true, - enumerable: true - }); - - Object.defineProperty(obj, "property", { - get: getFunc, - set: setFunc, - configurable: false, - enumerable: false - }); - - return accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "setVerifyHelpProp", false, false); - } -runTestCase(testcase); +var obj = {}; +var setFunc = function (value) { + obj.setVerifyHelpProp = value; +}; +var getFunc = function () { + return 14; +}; + +Object.defineProperty(obj, "property", { + get: function () { + return 11; + }, + set: function (value) { }, + configurable: true, + enumerable: true +}); + +Object.defineProperty(obj, "property", { + get: getFunc, + set: setFunc, + configurable: false, + enumerable: false +}); + +verifyEqualTo(obj, "property", getFunc()); + +verifyWritable(obj, "property", "setVerifyHelpProp"); + +verifyNotEnumerable(obj, "property"); + +verifyNotConfigurable(obj, "property"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-58.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-58.js index 2df6ccb9c2267222a328830c8cd66e3d67c52707..ceb2c87f1d0da9c1cba36245c55609a3266feb2f 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-58.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-58.js @@ -9,18 +9,20 @@ es5id: 15.2.3.6-4-58 description: > Object.defineProperty - 'name' is data descriptor and every fields in 'desc' is absent (8.12.9 step 5) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true +obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true + +Object.defineProperty(obj, "foo", {}); +verifyEqualTo(obj, "foo", 101); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); - Object.defineProperty(obj, "foo", {}); - return dataPropertyAttributesAreCorrect(obj, "foo", 101, true, true, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-59.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-59.js index 8dd4dde8f830a680ff4f6c875864b0f1c7ecb445..054f51fc19cc0e3ee747eeabc907dd1496314e45 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-59.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-59.js @@ -9,28 +9,29 @@ es5id: 15.2.3.6-4-59 description: > Object.defineProperty - 'name' is accessor descriptor and every fields in 'desc' is absent (8.12.9 step 5) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function getFunc() { - return 0; - } - function setFunc(value) { - obj.helpVerifySet = value; - } +function getFunc() { + return 0; +} +function setFunc(value) { + obj.helpVerifySet = value; +} - Object.defineProperty(obj, "foo", { - get: getFunc, - set: setFunc - }); +Object.defineProperty(obj, "foo", { + get: getFunc, + set: setFunc +}); - Object.defineProperty(obj, "foo", {}); - return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, setFunc, "helpVerifySet", false, false); - } -runTestCase(testcase); +Object.defineProperty(obj, "foo", {}); +verifyEqualTo(obj, "foo", getFunc()); + +verifyWritable(obj, "foo", "helpVerifySet"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-60.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-60.js index cffda3eb54e59032b35b0c01820cb7e4a3540480..404aeac3283ab00ef0573c91b0ea5d44bd27bf24 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-60.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-60.js @@ -9,18 +9,20 @@ es5id: 15.2.3.6-4-60 description: > Object.defineProperty - type of desc.value is different from type of name.value (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true +obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true + +Object.defineProperty(obj, "foo", { value: "abc" }); +verifyEqualTo(obj, "foo", "abc"); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); - Object.defineProperty(obj, "foo", { value: "abc" }); - return dataPropertyAttributesAreCorrect(obj, "foo", "abc", true, true, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-61.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-61.js index de032453e5516b249121711c8a8e47aba71af6ac..64ad1de97a6c00f4be3920b30d806d6bf1bef8fe 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-61.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-61.js @@ -9,18 +9,20 @@ es5id: 15.2.3.6-4-61 description: > Object.defineProperty - both desc.value and name.value are undefined (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { value: undefined }); +Object.defineProperty(obj, "foo", { value: undefined }); + +Object.defineProperty(obj, "foo", { value: undefined }); +verifyEqualTo(obj, "foo", undefined); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); - Object.defineProperty(obj, "foo", { value: undefined }); - return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-62.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-62.js index cba90524de8a6ebbe8c637717dbc7310c81a33f8..d698a3405b9f38990dbbeb123df8baf4f731f6f5 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-62.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-62.js @@ -9,18 +9,20 @@ es5id: 15.2.3.6-4-62 description: > Object.defineProperty - both desc.value and name.value are null (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { value: null }); +Object.defineProperty(obj, "foo", { value: null }); + +Object.defineProperty(obj, "foo", { value: null }); +verifyEqualTo(obj, "foo", null); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); - Object.defineProperty(obj, "foo", { value: null }); - return dataPropertyAttributesAreCorrect(obj, "foo", null, false, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-64.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-64.js index 999ea48c5235e3c68407a9c5afe1ac42e0a6aebc..678dceb8ee46e9312bd538ac44312c3a2ace8d03 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-64.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-64.js @@ -9,22 +9,29 @@ es5id: 15.2.3.6-4-64 description: > Object.defineProperty - desc.value = +0 and name.value = -0 (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { value: -0 }); +Object.defineProperty(obj, "foo", { value: -0 }); - try { - Object.defineProperty(obj, "foo", { value: +0 }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "foo", -0, false, false, false); - } +try { + Object.defineProperty(obj, "foo", { value: +0 }); + $ERROR("Expected an exception."); +} catch (e) { + + verifyEqualTo(obj, "foo", -0); + + verifyNotWritable(obj, "foo"); + + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-65.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-65.js index 3c814ee1b9232510f51b48833b1793116025c062..7db408da3d0186fa3ab74574343088dc245de3d7 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-65.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-65.js @@ -9,22 +9,28 @@ es5id: 15.2.3.6-4-65 description: > Object.defineProperty - desc.value = -0 and name.value = +0 (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { value: +0 }); +Object.defineProperty(obj, "foo", { value: +0 }); - try { - Object.defineProperty(obj, "foo", { value: -0 }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "foo", +0, false, false, false); - } +try { + Object.defineProperty(obj, "foo", { value: -0 }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "foo", +0); + + verifyNotWritable(obj, "foo"); + + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-66.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-66.js index 2faf1d5403b2d363677477fcc00bf379c7b32a9d..afec0349e9c654df59ecc70ec7bf65d77fa55985 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-66.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-66.js @@ -9,18 +9,20 @@ es5id: 15.2.3.6-4-66 description: > Object.defineProperty - desc.value and name.value are two numbers with different values (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true +obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true + +Object.defineProperty(obj, "foo", { value: 102 }); +verifyEqualTo(obj, "foo", 102); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); - Object.defineProperty(obj, "foo", { value: 102 }); - return dataPropertyAttributesAreCorrect(obj, "foo", 102, true, true, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-67.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-67.js index 8b859e1242250b4ae217525bdc08b7869accec4e..a63499e38a80165af23a6b07e471add56225dcc5 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-67.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-67.js @@ -10,18 +10,20 @@ description: > Object.defineProperty - both desc.value and name.value are two strings which have same length and same characters in corresponding positions (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { value: "abcd" }); +Object.defineProperty(obj, "foo", { value: "abcd" }); + +Object.defineProperty(obj, "foo", { value: "abcd" }); +verifyEqualTo(obj, "foo", "abcd"); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); - Object.defineProperty(obj, "foo", { value: "abcd" }); - return dataPropertyAttributesAreCorrect(obj, "foo", "abcd", false, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-68.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-68.js index 13ca0e7248a34090284cf2c3b0b5474096093335..ebccee0eef3888e68a0735a6ac1fff2afc97b47c 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-68.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-68.js @@ -9,18 +9,20 @@ es5id: 15.2.3.6-4-68 description: > Object.defineProperty - desc.value and name.value are two strings with different values (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - obj.foo = "abcd"; // default value of attributes: writable: true, configurable: true, enumerable: true +obj.foo = "abcd"; // default value of attributes: writable: true, configurable: true, enumerable: true + +Object.defineProperty(obj, "foo", { value: "fghj" }); +verifyEqualTo(obj, "foo", "fghj"); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); - Object.defineProperty(obj, "foo", { value: "fghj" }); - return dataPropertyAttributesAreCorrect(obj, "foo", "fghj", true, true, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-69.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-69.js index d7a79be7dad1bc4b700d5829aeea3c5950e87e4b..e5a0fa95b4cc61712f6bf5adb9de4c2e7c576c5d 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-69.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-69.js @@ -9,18 +9,20 @@ es5id: 15.2.3.6-4-69 description: > Object.defineProperty - both desc.value and name.value are boolean values with the same value (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { value: true }); +Object.defineProperty(obj, "foo", { value: true }); + +Object.defineProperty(obj, "foo", { value: true }); +verifyEqualTo(obj, "foo", true); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); - Object.defineProperty(obj, "foo", { value: true }); - return dataPropertyAttributesAreCorrect(obj, "foo", true, false, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-70.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-70.js index fc8b770fb2ead9dda6605e255e9b4f91bb508a97..d9ce9ebe518596b1da6258d8120674b3729ef1db 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-70.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-70.js @@ -9,18 +9,20 @@ es5id: 15.2.3.6-4-70 description: > Object.defineProperty - desc.value and name.value are two boolean values with different values (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - obj.foo = true; // default value of attributes: writable: true, configurable: true, enumerable: true +obj.foo = true; // default value of attributes: writable: true, configurable: true, enumerable: true + +Object.defineProperty(obj, "foo", { value: false }); +verifyEqualTo(obj, "foo", false); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); - Object.defineProperty(obj, "foo", { value: false }); - return dataPropertyAttributesAreCorrect(obj, "foo", false, true, true, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-71.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-71.js index 5d9ff11379febb165b8c4c5ca95779fa479593dd..afbff22e4b62e0b19025f7b970a249d733b8ca04 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-71.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-71.js @@ -9,20 +9,22 @@ es5id: 15.2.3.6-4-71 description: > Object.defineProperty - both desc.value and name.value are Ojbects which refer to the same Object (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - var obj1 = { length: 10 }; +var obj1 = { length: 10 }; - Object.defineProperty(obj, "foo", { value: obj1 }); +Object.defineProperty(obj, "foo", { value: obj1 }); + +Object.defineProperty(obj, "foo", { value: obj1 }); +verifyEqualTo(obj, "foo", obj1); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); - Object.defineProperty(obj, "foo", { value: obj1 }); - return dataPropertyAttributesAreCorrect(obj, "foo", obj1, false, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-72.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-72.js index 8100afcb5f0cf94415967079a0c9b1296e35984e..1ed53cee5e8bfa59543bd341b59417eeca26181e 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-72.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-72.js @@ -9,21 +9,23 @@ es5id: 15.2.3.6-4-72 description: > Object.defineProperty - desc.value and name.value are two Ojbects which refer to the different objects (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - var obj1 = { length: 10 }; - obj.foo = obj1; // default value of attributes: writable: true, configurable: true, enumerable: true +var obj1 = { length: 10 }; +obj.foo = obj1; // default value of attributes: writable: true, configurable: true, enumerable: true - var obj2 = { length: 20 }; +var obj2 = { length: 20 }; + +Object.defineProperty(obj, "foo", { value: obj2 }); +verifyEqualTo(obj, "foo", obj2); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); - Object.defineProperty(obj, "foo", { value: obj2 }); - return dataPropertyAttributesAreCorrect(obj, "foo", obj2, true, true, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-73.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-73.js index 9627ae96fbfd1227304344a9475ad9400d81934e..8a56f3c836673f2a85049fb0c21abc3767ca1433 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-73.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-73.js @@ -9,18 +9,20 @@ es5id: 15.2.3.6-4-73 description: > Object.defineProperty - both desc.writable and name.writable are boolean values with the same value (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { writable: false}); +Object.defineProperty(obj, "foo", { writable: false}); + +Object.defineProperty(obj, "foo", { writable: false }); +verifyEqualTo(obj, "foo", undefined); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); - Object.defineProperty(obj, "foo", { writable: false }); - return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-74.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-74.js index 39280eaedd68a45082ce3b8c6d4babc698056636..2cd82baa85a06af4687ddbe91b872ae3361601dc 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-74.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-74.js @@ -9,18 +9,20 @@ es5id: 15.2.3.6-4-74 description: > Object.defineProperty - desc.writable and name.writable are two boolean values with different values (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - Object.defineProperty(obj, "foo", { writable: false, configurable: true }); +var obj = {}; + +Object.defineProperty(obj, "foo", { writable: false, configurable: true }); + +Object.defineProperty(obj, "foo", { writable: true }); +verifyEqualTo(obj, "foo", undefined); + +verifyWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); - Object.defineProperty(obj, "foo", { writable: true }); - return dataPropertyAttributesAreCorrect(obj, "foo", undefined, true, false, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-75.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-75.js index 2cf4f21216bb7a31fd2b6cf02f82d34a614ad6d5..699f3e6db543cb13a56bb587d31a9e316e3e6a96 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-75.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-75.js @@ -9,28 +9,29 @@ es5id: 15.2.3.6-4-75 description: > Object.defineProperty - both desc.[[Get]] and name.[[Get]] are two objects which refer to the same object (8.12.9 step 6) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function getFunc() { - return 10; - } - function setFunc(value) { - obj.helpVerifySet = value; - } +function getFunc() { + return 10; +} +function setFunc(value) { + obj.helpVerifySet = value; +} - Object.defineProperty(obj, "foo", { - get: getFunc, - set: setFunc - }); +Object.defineProperty(obj, "foo", { + get: getFunc, + set: setFunc +}); - Object.defineProperty(obj, "foo", { get: getFunc }); - return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, setFunc, "helpVerifySet", false, false); - } -runTestCase(testcase); +Object.defineProperty(obj, "foo", { get: getFunc }); +verifyEqualTo(obj, "foo", getFunc()); + +verifyWritable(obj, "foo", "helpVerifySet"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-76.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-76.js index 943413aca1a12a6f8597af7a86af8bd4093946e5..3fed2a565b58001486f4d6b19f80201c376f8d22 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-76.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-76.js @@ -9,33 +9,34 @@ es5id: 15.2.3.6-4-76 description: > Object.defineProperty - desc.[[Get]] and name.[[Get]] are two objects which refer to the different objects (8.12.9 step 6) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function getFunc1() { - return 10; - } - function setFunc1(value) { - obj.helpVerifySet = value; - } +function getFunc1() { + return 10; +} +function setFunc1(value) { + obj.helpVerifySet = value; +} - Object.defineProperty(obj, "foo", { - get: getFunc1, - set: setFunc1, - configurable: true - }); +Object.defineProperty(obj, "foo", { + get: getFunc1, + set: setFunc1, + configurable: true +}); - function getFunc2() { - return 20; - } +function getFunc2() { + return 20; +} - Object.defineProperty(obj, "foo", { get: getFunc2 }); - return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc2, setFunc1, "helpVerifySet", false, true); - } -runTestCase(testcase); +Object.defineProperty(obj, "foo", { get: getFunc2 }); +verifyEqualTo(obj, "foo", getFunc2()); + +verifyWritable(obj, "foo", "helpVerifySet"); + +verifyNotEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-77.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-77.js index 7903793195880bcd75a4576a6d99c49351fa7928..6a9d4edaba7444c95495a1e96b3141f26494c6f9 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-77.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-77.js @@ -9,22 +9,21 @@ es5id: 15.2.3.6-4-77 description: > Object.defineProperty - both desc.[[Set]] and name.[[Set]] are two objects which refer to the same object (8.12.9 step 6) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function setFunc(value) { - obj.setVerifyHelpProp = value; - } +function setFunc(value) { + obj.setVerifyHelpProp = value; +} - Object.defineProperty(obj, "foo", { set: setFunc }); +Object.defineProperty(obj, "foo", { set: setFunc }); - Object.defineProperty(obj, "foo", { set: setFunc }); - return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, setFunc, "setVerifyHelpProp", false, false); - } -runTestCase(testcase); +Object.defineProperty(obj, "foo", { set: setFunc }); +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-78.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-78.js index df7d3b47a7d8796f465e03309e3a3db925cbdb52..5c354a07bab9d9b9831b54a8a3241817629780d6 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-78.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-78.js @@ -9,27 +9,26 @@ es5id: 15.2.3.6-4-78 description: > Object.defineProperty - desc.[[Set]] and name.[[Set]] are two objects which refer to the different objects (8.12.9 step 6) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function setFunc1() { } +function setFunc1() { } - Object.defineProperty(obj, "foo", { - set: setFunc1, - configurable: true - }); +Object.defineProperty(obj, "foo", { + set: setFunc1, + configurable: true +}); - function setFunc2(value) { - obj.setVerifyHelpProp = value; - } +function setFunc2(value) { + obj.setVerifyHelpProp = value; +} - Object.defineProperty(obj, "foo", { set: setFunc2 }); - return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, setFunc2, "setVerifyHelpProp", false, true); - } -runTestCase(testcase); +Object.defineProperty(obj, "foo", { set: setFunc2 }); +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyNotEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-79.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-79.js index 122ec046489126d1286a73f4d6bc24e0768e1caf..652528224a10f6581888a42bb33d0d21db8ee84f 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-79.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-79.js @@ -9,18 +9,20 @@ es5id: 15.2.3.6-4-79 description: > Object.defineProperty - both desc.enumerable and name.enumerable are boolean values with the same value (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { enumerable: false }); +Object.defineProperty(obj, "foo", { enumerable: false }); + +Object.defineProperty(obj, "foo", { enumerable: false }); +verifyEqualTo(obj, "foo", undefined); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); - Object.defineProperty(obj, "foo", { enumerable: false }); - return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-80.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-80.js index 2b4cb7dcde2278c0c50250884e63fb4c59ea5f88..8655a13c223aa345ac2f252c930d0ab1f07b0045 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-80.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-80.js @@ -9,18 +9,20 @@ es5id: 15.2.3.6-4-80 description: > Object.defineProperty - desc.enumerable and name.enumerable are boolean negation of each other (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { enumerable: false, configurable: true }); +Object.defineProperty(obj, "foo", { enumerable: false, configurable: true }); + +Object.defineProperty(obj, "foo", { enumerable: true }); +verifyEqualTo(obj, "foo", undefined); + +verifyNotWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); - Object.defineProperty(obj, "foo", { enumerable: true }); - return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, true, true); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-81.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-81.js index f32840dfdc09b0f001dffd0894cb897f564255de..2c49e9198da05616b1dd9566977ff3d3a9f40cab 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-81.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-81.js @@ -9,18 +9,19 @@ es5id: 15.2.3.6-4-81 description: > Object.defineProperty - both desc.configurable and name.configurable are booleans with the same value (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - Object.defineProperty(obj, "foo", { configurable: false }); +var obj = {}; - Object.defineProperty(obj, "foo", { configurable: false }); - return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false); - } -runTestCase(testcase); +Object.defineProperty(obj, "foo", { configurable: false }); + +Object.defineProperty(obj, "foo", { configurable: false }); +verifyEqualTo(obj, "foo", undefined); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-1.js index 769cd95b3264ee8344d6d49f5c00d79481827be5..d6ad349207ce2b60f5b9afae309e79dda85eb270 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-1.js @@ -13,26 +13,27 @@ description: > 'desc' is a generic descriptor which only contains [[Enumerable]] attribute as false, 'name' property is a data property (8.12.9 step 8) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - Object.defineProperty(obj, "foo", { - value: 1001, - writable: true, - enumerable: true, - configurable: true - }); - - Object.defineProperty(obj, "foo", { - enumerable: false - }); - - return dataPropertyAttributesAreCorrect(obj, "foo", 1001, true, false, true); - } -runTestCase(testcase); + +var obj = {}; + +Object.defineProperty(obj, "foo", { + value: 1001, + writable: true, + enumerable: true, + configurable: true +}); + +Object.defineProperty(obj, "foo", { + enumerable: false +}); + +verifyEqualTo(obj, "foo", 1001); + +verifyWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-10.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-10.js index a05dceb4e1133f99a7eec181b0e7772b8b278925..6da0583fe5465abdd3cf30485f9e6c21fd7120a6 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-10.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-10.js @@ -13,33 +13,34 @@ description: > 'desc' is a generic descriptor which contains [[Enumerable]] attribute as true and [[Configurable]] attribute is false, 'name' property is an accessor property (8.12.9 step 8) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - obj.verifySetFunction = "data"; - var get_func = function () { - return obj.verifySetFunction; - }; - var set_func = function (value) { - obj.verifySetFunction = value; - }; - Object.defineProperty(obj, "foo", { - get: get_func, - set: set_func, - enumerable: true, - configurable: true - }); - - Object.defineProperty(obj, "foo", { - enumerable: true, - configurable: false - }); - - return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "verifySetFunction", true, false); - } -runTestCase(testcase); + +var obj = {}; +obj.verifySetFunction = "data"; +var get_func = function () { + return obj.verifySetFunction; +}; +var set_func = function (value) { + obj.verifySetFunction = value; +}; +Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true +}); + +Object.defineProperty(obj, "foo", { + enumerable: true, + configurable: false +}); + +verifyEqualTo(obj, "foo", get_func()); + +verifyWritable(obj, "foo", "verifySetFunction"); + +verifyEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-11.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-11.js index 2fac9a50e3982d10485e481a4164606d157186bd..1174d879760667dc0733571994ffdaf787e201c3 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-11.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-11.js @@ -13,33 +13,34 @@ description: > are true, the 'desc' is a generic descriptor which contains [[Enumerable]] and [[Configurable]] attributes as false, 'name' property is an accessor property (8.12.9 step 8) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - obj.verifySetFunction = "data"; - var get_func = function () { - return obj.verifySetFunction; - }; - var set_func = function (value) { - obj.verifySetFunction = value; - }; - Object.defineProperty(obj, "foo", { - get: get_func, - set: set_func, - enumerable: true, - configurable: true - }); - - Object.defineProperty(obj, "foo", { - enumerable: false, - configurable: false - }); - - return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "verifySetFunction", false, false); - } -runTestCase(testcase); + +var obj = {}; +obj.verifySetFunction = "data"; +var get_func = function () { + return obj.verifySetFunction; +}; +var set_func = function (value) { + obj.verifySetFunction = value; +}; +Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true +}); + +Object.defineProperty(obj, "foo", { + enumerable: false, + configurable: false +}); + +verifyEqualTo(obj, "foo", get_func()); + +verifyWritable(obj, "foo", "verifySetFunction"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-12.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-12.js index 24cc41f2cf40dbe62e84c32fca74992f88a06893..873d8cbfe50dae901c997b36dde24492006e16ba 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-12.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-12.js @@ -13,32 +13,33 @@ description: > the 'desc' is a generic descriptor which only contains [[Enumerable]] attribute as true, 'name' property is an accessor property (8.12.9 step 8) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - obj.verifySetFunction = "data"; - var get_func = function () { - return obj.verifySetFunction; - }; - var set_func = function (value) { - obj.verifySetFunction = value; - }; - Object.defineProperty(obj, "foo", { - get: get_func, - set: set_func, - enumerable: false, - configurable: true - }); - - Object.defineProperty(obj, "foo", { - enumerable: true - }); - - return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "verifySetFunction", true, true); - } -runTestCase(testcase); + +var obj = {}; +obj.verifySetFunction = "data"; +var get_func = function () { + return obj.verifySetFunction; +}; +var set_func = function (value) { + obj.verifySetFunction = value; +}; +Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: false, + configurable: true +}); + +Object.defineProperty(obj, "foo", { + enumerable: true +}); + +verifyEqualTo(obj, "foo", get_func()); + +verifyWritable(obj, "foo", "verifySetFunction"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-13.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-13.js index ae0699c336f614f429144ab59ccedc6f56ade90c..f6915786b9bbf24de4ed6fe3824d3fe6a932b581 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-13.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-13.js @@ -13,26 +13,27 @@ description: > 'desc' is a generic descriptor which only contains [[Enumerable]] attribute as false, 'name' property is an index data property (8.12.9 step 8) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - Object.defineProperty(obj, "0", { - value: 1001, - writable: true, - enumerable: true, - configurable: true - }); - - Object.defineProperty(obj, "0", { - enumerable: false - }); - - return dataPropertyAttributesAreCorrect(obj, "0", 1001, true, false, true); - } -runTestCase(testcase); + +var obj = {}; + +Object.defineProperty(obj, "0", { + value: 1001, + writable: true, + enumerable: true, + configurable: true +}); + +Object.defineProperty(obj, "0", { + enumerable: false +}); + +verifyEqualTo(obj, "0", 1001); + +verifyWritable(obj, "0"); + +verifyNotEnumerable(obj, "0"); + +verifyConfigurable(obj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-14.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-14.js index ef0755d2459d4fa5868e509d08196692da145f76..5622180a1499dc4360bf4171a7393a4b2f735eec 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-14.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-14.js @@ -13,27 +13,28 @@ description: > 'desc' is a generic descriptor which contains [[Enumerable]] attribute as false and [[Configurable]] attribute as true, 'name' property is an index data property (8.12.9 step 8) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - Object.defineProperty(obj, "0", { - value: 1001, - writable: true, - enumerable: true, - configurable: true - }); - - Object.defineProperty(obj, "0", { - enumerable: false, - configurable: true - }); - - return dataPropertyAttributesAreCorrect(obj, "0", 1001, true, false, true); - } -runTestCase(testcase); + +var obj = {}; + +Object.defineProperty(obj, "0", { + value: 1001, + writable: true, + enumerable: true, + configurable: true +}); + +Object.defineProperty(obj, "0", { + enumerable: false, + configurable: true +}); + +verifyEqualTo(obj, "0", 1001); + +verifyWritable(obj, "0"); + +verifyNotEnumerable(obj, "0"); + +verifyConfigurable(obj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-15.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-15.js index b3189647c75abbaf0d8ed782858b4e8acaba5161..6129570988bf9660fbafe75fa04d36e633955f3b 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-15.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-15.js @@ -12,26 +12,27 @@ description: > attribute of 'name' property is true, the 'desc' is a generic descriptor which contains [[Configurable]] attribute as false, 'name' property is an index data property (8.12.9 step 8) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - Object.defineProperty(obj, "0", { - value: 1001, - writable: true, - enumerable: true, - configurable: true - }); +var obj = {}; - Object.defineProperty(obj, "0", { - configurable: false - }); +Object.defineProperty(obj, "0", { + value: 1001, + writable: true, + enumerable: true, + configurable: true +}); - return dataPropertyAttributesAreCorrect(obj, "0", 1001, true, true, false); - } -runTestCase(testcase); +Object.defineProperty(obj, "0", { + configurable: false +}); + +verifyEqualTo(obj, "0", 1001); + +verifyWritable(obj, "0"); + +verifyEnumerable(obj, "0"); + +verifyNotConfigurable(obj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-16.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-16.js index b4ed23d8cb2768739e7946cf77ede13190fc6b09..a76d1ad43f96509b01c11a44f3065c5748f683ab 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-16.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-16.js @@ -13,27 +13,28 @@ description: > 'desc' is a generic descriptor which contains [[Enumerable]] attribute as true and [[Configurable]] attribute as false, 'name' property is an index data property (8.12.9 step 8) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - Object.defineProperty(obj, "0", { - value: 1001, - writable: true, - enumerable: true, - configurable: true - }); - - Object.defineProperty(obj, "0", { - enumerable: true, - configurable: false - }); - - return dataPropertyAttributesAreCorrect(obj, "0", 1001, true, true, false); - } -runTestCase(testcase); + +var obj = {}; + +Object.defineProperty(obj, "0", { + value: 1001, + writable: true, + enumerable: true, + configurable: true +}); + +Object.defineProperty(obj, "0", { + enumerable: true, + configurable: false +}); + +verifyEqualTo(obj, "0", 1001); + +verifyWritable(obj, "0"); + +verifyEnumerable(obj, "0"); + +verifyNotConfigurable(obj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-17.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-17.js index 448d8c77519044c87f256ab6c5bbe0129013044a..dc78b88c0bcfd7f680743f48d5db3a7e9e10d472 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-17.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-17.js @@ -13,27 +13,28 @@ description: > are true, the 'desc' is a generic descriptor which contains [[Enumerable]] and [[Configurable]] attributes as false, 'name' property is an index data property (8.12.9 step 8) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - Object.defineProperty(obj, "0", { - value: 1001, - writable: true, - enumerable: true, - configurable: true - }); - - Object.defineProperty(obj, "0", { - enumerable: false, - configurable: false - }); - - return dataPropertyAttributesAreCorrect(obj, "0", 1001, true, false, false); - } -runTestCase(testcase); + +var obj = {}; + +Object.defineProperty(obj, "0", { + value: 1001, + writable: true, + enumerable: true, + configurable: true +}); + +Object.defineProperty(obj, "0", { + enumerable: false, + configurable: false +}); + +verifyEqualTo(obj, "0", 1001); + +verifyWritable(obj, "0"); + +verifyNotEnumerable(obj, "0"); + +verifyNotConfigurable(obj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-18.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-18.js index 614ad6039e77c6854052d010d893c3845141f72b..2cd3041a9f81c325fb1f18f3924f416b13749989 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-18.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-18.js @@ -13,26 +13,27 @@ description: > the 'desc' is a generic descriptor which only contains [[Enumerable]] attribute as true, 'name' property is an index data property (8.12.9 step 8) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - Object.defineProperty(obj, "0", { - value: 1001, - writable: true, - enumerable: false, - configurable: true - }); +var obj = {}; - Object.defineProperty(obj, "0", { - enumerable: true - }); +Object.defineProperty(obj, "0", { + value: 1001, + writable: true, + enumerable: false, + configurable: true +}); - return dataPropertyAttributesAreCorrect(obj, "0", 1001, true, true, true); - } -runTestCase(testcase); +Object.defineProperty(obj, "0", { + enumerable: true +}); + +verifyEqualTo(obj, "0", 1001); + +verifyWritable(obj, "0"); + +verifyEnumerable(obj, "0"); + +verifyConfigurable(obj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-19.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-19.js index 939fd49d187835b6d81c6faf95d185e7ba23aad5..f4322c4b0c5004b440a2dc7adbfeda8909db1600 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-19.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-19.js @@ -13,32 +13,33 @@ description: > 'desc' is a generic descriptor which only contains [Enumerable]] attribute as false and 'name' property is an index accessor property (8.12.9 step 8) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - obj.verifySetFunction = "data"; - var get_func = function () { - return obj.verifySetFunction; - }; - var set_func = function (value) { - obj.verifySetFunction = value; - }; - Object.defineProperty(obj, "0", { - get: get_func, - set: set_func, - enumerable: true, - configurable: true - }); - - Object.defineProperty(obj, "0", { - enumerable: false - }); - - return accessorPropertyAttributesAreCorrect(obj, "0", get_func, set_func, "verifySetFunction", false, true); - } -runTestCase(testcase); + +var obj = {}; +obj.verifySetFunction = "data"; +var get_func = function () { + return obj.verifySetFunction; +}; +var set_func = function (value) { + obj.verifySetFunction = value; +}; +Object.defineProperty(obj, "0", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true +}); + +Object.defineProperty(obj, "0", { + enumerable: false +}); + +verifyEqualTo(obj, "0", get_func()); + +verifyWritable(obj, "0", "verifySetFunction"); + +verifyNotEnumerable(obj, "0"); + +verifyConfigurable(obj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-2.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-2.js index 87966dcce47668023c0e0df9f794e244229aff79..7c7eec05bd1941c8f50b2ee5908ba4a281b09852 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-2.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-2.js @@ -13,27 +13,28 @@ description: > 'desc' is a generic descriptor which contains [[Enumerable]] attribute as false and [[Configurable]] attribute as true, 'name' property is a data property (8.12.9 step 8) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - Object.defineProperty(obj, "foo", { - value: 1001, - writable: true, - enumerable: true, - configurable: true - }); - - Object.defineProperty(obj, "foo", { - enumerable: false, - configurable: true - }); - - return dataPropertyAttributesAreCorrect(obj, "foo", 1001, true, false, true); - } -runTestCase(testcase); + +var obj = {}; + +Object.defineProperty(obj, "foo", { + value: 1001, + writable: true, + enumerable: true, + configurable: true +}); + +Object.defineProperty(obj, "foo", { + enumerable: false, + configurable: true +}); + +verifyEqualTo(obj, "foo", 1001); + +verifyWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-20.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-20.js index 386f5cf2bb58561217badff21462f771dd071016..dee406ff9182d6cd89c17a741d202d07dc97f70a 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-20.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-20.js @@ -13,33 +13,34 @@ description: > 'desc' is a generic descriptor which contains [Enumerable]] attribute as false and [[Configurable]] property is true, 'name' property is an index accessor property (8.12.9 step 8) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - obj.verifySetFunction = "data"; - var get_func = function () { - return obj.verifySetFunction; - }; - var set_func = function (value) { - obj.verifySetFunction = value; - }; - Object.defineProperty(obj, "0", { - get: get_func, - set: set_func, - enumerable: true, - configurable: true - }); - - Object.defineProperty(obj, "0", { - enumerable: false, - configurable: true - }); - - return accessorPropertyAttributesAreCorrect(obj, "0", get_func, set_func, "verifySetFunction", false, true); - } -runTestCase(testcase); + +var obj = {}; +obj.verifySetFunction = "data"; +var get_func = function () { + return obj.verifySetFunction; +}; +var set_func = function (value) { + obj.verifySetFunction = value; +}; +Object.defineProperty(obj, "0", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true +}); + +Object.defineProperty(obj, "0", { + enumerable: false, + configurable: true +}); + +verifyEqualTo(obj, "0", get_func()); + +verifyWritable(obj, "0", "verifySetFunction"); + +verifyNotEnumerable(obj, "0"); + +verifyConfigurable(obj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-21.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-21.js index 4a6e5e620c7afb7f44c7b66dfe120d20e2d3eb4f..95b1d148621a54794ef5c87e0c99be559a296638 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-21.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-21.js @@ -13,32 +13,33 @@ description: > 'desc' is a generic descriptor which only contains [[Configurable]] attribute as false, 'name' property is an index accessor property (8.12.9 step 8) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - obj.verifySetFunction = "data"; - var get_func = function () { - return obj.verifySetFunction; - }; - var set_func = function (value) { - obj.verifySetFunction = value; - }; - Object.defineProperty(obj, "0", { - get: get_func, - set: set_func, - enumerable: true, - configurable: true - }); - - Object.defineProperty(obj, "0", { - configurable: false - }); - - return accessorPropertyAttributesAreCorrect(obj, "0", get_func, set_func, "verifySetFunction", true, false); - } -runTestCase(testcase); + +var obj = {}; +obj.verifySetFunction = "data"; +var get_func = function () { + return obj.verifySetFunction; +}; +var set_func = function (value) { + obj.verifySetFunction = value; +}; +Object.defineProperty(obj, "0", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true +}); + +Object.defineProperty(obj, "0", { + configurable: false +}); + +verifyEqualTo(obj, "0", get_func()); + +verifyWritable(obj, "0", "verifySetFunction"); + +verifyEnumerable(obj, "0"); + +verifyNotConfigurable(obj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-22.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-22.js index fceaa5941a56a3ab0648b0127f66837a4829bb6c..531055dc447081d101c2a7cf7e35061460c25526 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-22.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-22.js @@ -13,33 +13,34 @@ description: > 'desc' is a generic descriptor which contains [[Enumerable]] attribute as true and [[Configurable]] attribute is false, 'name' property is an index accessor property (8.12.9 step 8) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - obj.verifySetFunction = "data"; - var get_func = function () { - return obj.verifySetFunction; - }; - var set_func = function (value) { - obj.verifySetFunction = value; - }; - Object.defineProperty(obj, "0", { - get: get_func, - set: set_func, - enumerable: true, - configurable: true - }); - - Object.defineProperty(obj, "0", { - enumerable: true, - configurable: false - }); - - return accessorPropertyAttributesAreCorrect(obj, "0", get_func, set_func, "verifySetFunction", true, false); - } -runTestCase(testcase); + +var obj = {}; +obj.verifySetFunction = "data"; +var get_func = function () { + return obj.verifySetFunction; +}; +var set_func = function (value) { + obj.verifySetFunction = value; +}; +Object.defineProperty(obj, "0", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true +}); + +Object.defineProperty(obj, "0", { + enumerable: true, + configurable: false +}); + +verifyEqualTo(obj, "0", get_func()); + +verifyWritable(obj, "0", "verifySetFunction"); + +verifyEnumerable(obj, "0"); + +verifyNotConfigurable(obj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-23.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-23.js index 29a637a453e5765784c191dc8954e3438db89102..276afbcf466e91988c0d6fdf438cdc1ad0e518b3 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-23.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-23.js @@ -13,33 +13,34 @@ description: > are true, the 'desc' is a generic descriptor which contains [[Enumerable]] and [[Configurable]] attributes as false, 'name' property is an index accessor property (8.12.9 step 8) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - obj.verifySetFunction = "data"; - var get_func = function () { - return obj.verifySetFunction; - }; - var set_func = function (value) { - obj.verifySetFunction = value; - }; - Object.defineProperty(obj, "0", { - get: get_func, - set: set_func, - enumerable: true, - configurable: true - }); - - Object.defineProperty(obj, "0", { - enumerable: false, - configurable: false - }); - - return accessorPropertyAttributesAreCorrect(obj, "0", get_func, set_func, "verifySetFunction", false, false); - } -runTestCase(testcase); + +var obj = {}; +obj.verifySetFunction = "data"; +var get_func = function () { + return obj.verifySetFunction; +}; +var set_func = function (value) { + obj.verifySetFunction = value; +}; +Object.defineProperty(obj, "0", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true +}); + +Object.defineProperty(obj, "0", { + enumerable: false, + configurable: false +}); + +verifyEqualTo(obj, "0", get_func()); + +verifyWritable(obj, "0", "verifySetFunction"); + +verifyNotEnumerable(obj, "0"); + +verifyNotConfigurable(obj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-24.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-24.js index ea8c8f96b1e705fbbf580f905145c88c0b3d146a..ffd239946a0f44a443a0a34625eebc340a37c2e7 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-24.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-24.js @@ -13,32 +13,33 @@ description: > the 'desc' is a generic descriptor which only contains [[Enumerable]] attribute as true, 'name' property is an index accessor property (8.12.9 step 8) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - obj.verifySetFunction = "data"; - var get_func = function () { - return obj.verifySetFunction; - }; - var set_func = function (value) { - obj.verifySetFunction = value; - }; - Object.defineProperty(obj, "0", { - get: get_func, - set: set_func, - enumerable: false, - configurable: true - }); - - Object.defineProperty(obj, "0", { - enumerable: true - }); - - return accessorPropertyAttributesAreCorrect(obj, "0", get_func, set_func, "verifySetFunction", true, true); - } -runTestCase(testcase); + +var obj = {}; +obj.verifySetFunction = "data"; +var get_func = function () { + return obj.verifySetFunction; +}; +var set_func = function (value) { + obj.verifySetFunction = value; +}; +Object.defineProperty(obj, "0", { + get: get_func, + set: set_func, + enumerable: false, + configurable: true +}); + +Object.defineProperty(obj, "0", { + enumerable: true +}); + +verifyEqualTo(obj, "0", get_func()); + +verifyWritable(obj, "0", "verifySetFunction"); + +verifyEnumerable(obj, "0"); + +verifyConfigurable(obj, "0"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-3.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-3.js index c7feb4307f4eb306b92d8d3041af91565291a5c2..218a93790f0b2de3e57acd57781c7f79bbe5fe06 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-3.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-3.js @@ -12,26 +12,27 @@ description: > attribute of 'name' property is true, the 'desc' is a generic descriptor which contains [[Configurable]] attribute as false, 'name' property is a data property (8.12.9 step 8) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - Object.defineProperty(obj, "foo", { - value: 1001, - writable: true, - enumerable: true, - configurable: true - }); +var obj = {}; - Object.defineProperty(obj, "foo", { - configurable: false - }); +Object.defineProperty(obj, "foo", { + value: 1001, + writable: true, + enumerable: true, + configurable: true +}); - return dataPropertyAttributesAreCorrect(obj, "foo", 1001, true, true, false); - } -runTestCase(testcase); +Object.defineProperty(obj, "foo", { + configurable: false +}); + +verifyEqualTo(obj, "foo", 1001); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-4.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-4.js index 9a0acc052dcf0535fcd5c8022f512850c73da3c5..5f298622310b59a2d09fdef49fe75e129b5a3a4a 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-4.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-4.js @@ -13,27 +13,28 @@ description: > 'desc' is a generic descriptor which contains [[Enumerable]] attribute as true and [[Configurable]] attribute as false, 'name' property is a data property (8.12.9 step 8) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - Object.defineProperty(obj, "foo", { - value: 1001, - writable: true, - enumerable: true, - configurable: true - }); - - Object.defineProperty(obj, "foo", { - enumerable: true, - configurable: false - }); - - return dataPropertyAttributesAreCorrect(obj, "foo", 1001, true, true, false); - } -runTestCase(testcase); + +var obj = {}; + +Object.defineProperty(obj, "foo", { + value: 1001, + writable: true, + enumerable: true, + configurable: true +}); + +Object.defineProperty(obj, "foo", { + enumerable: true, + configurable: false +}); + +verifyEqualTo(obj, "foo", 1001); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-5.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-5.js index 78a4d859494bd22fc3f92ccb610301cad6c564f0..e94a7a31995a41f06c5d2acaa268ec5bf82fcae3 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-5.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-5.js @@ -13,27 +13,28 @@ description: > are true, the 'desc' is a generic descriptor which contains [[Enumerable]] and [[Configurable]] attributes as false, 'name' property is a data property (8.12.9 step 8) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - Object.defineProperty(obj, "foo", { - value: 1001, - writable: true, - enumerable: true, - configurable: true - }); - - Object.defineProperty(obj, "foo", { - enumerable: false, - configurable: false - }); - - return dataPropertyAttributesAreCorrect(obj, "foo", 1001, true, false, false); - } -runTestCase(testcase); + +var obj = {}; + +Object.defineProperty(obj, "foo", { + value: 1001, + writable: true, + enumerable: true, + configurable: true +}); + +Object.defineProperty(obj, "foo", { + enumerable: false, + configurable: false +}); + +verifyEqualTo(obj, "foo", 1001); + +verifyWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-6.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-6.js index 1367232c37d58197a52e791cb83389bf609ef2b0..abf5c3424f0ad6ab7c0950287b563568b532c840 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-6.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-6.js @@ -13,26 +13,27 @@ description: > the 'desc' is a generic descriptor which only contains [[Enumerable]] attribute as true, 'name' property is a data property (8.12.9 step 8) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - Object.defineProperty(obj, "foo", { - value: 1001, - writable: true, - enumerable: false, - configurable: true - }); +var obj = {}; - Object.defineProperty(obj, "foo", { - enumerable: true - }); +Object.defineProperty(obj, "foo", { + value: 1001, + writable: true, + enumerable: false, + configurable: true +}); - return dataPropertyAttributesAreCorrect(obj, "foo", 1001, true, true, true); - } -runTestCase(testcase); +Object.defineProperty(obj, "foo", { + enumerable: true +}); + +verifyEqualTo(obj, "foo", 1001); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-7.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-7.js index d49a50b5e48c8908aaf2af2a280d8be9347d0f6e..feb76fbd3d0c6c074a7ee301bc338c084157836c 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-7.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-7.js @@ -13,32 +13,33 @@ description: > 'desc' is a generic descriptor which only contains [Enumerable]] attribute as false and 'name' property is an accessor property (8.12.9 step 8) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - obj.verifySetFunction = "data"; - var get_func = function () { - return obj.verifySetFunction; - }; - var set_func = function (value) { - obj.verifySetFunction = value; - }; - Object.defineProperty(obj, "foo", { - get: get_func, - set: set_func, - enumerable: true, - configurable: true - }); - - Object.defineProperty(obj, "foo", { - enumerable: false - }); - - return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "verifySetFunction", false, true); - } -runTestCase(testcase); + +var obj = {}; +obj.verifySetFunction = "data"; +var get_func = function () { + return obj.verifySetFunction; +}; +var set_func = function (value) { + obj.verifySetFunction = value; +}; +Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true +}); + +Object.defineProperty(obj, "foo", { + enumerable: false +}); + +verifyEqualTo(obj, "foo", get_func()); + +verifyWritable(obj, "foo", "verifySetFunction"); + +verifyNotEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-8.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-8.js index 3cad3541caea8b3ca864bb6b9213e4ee16de33d3..483f2cbd24d847dc033786cb0d1ea8b321447ea9 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-8.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-8.js @@ -13,33 +13,34 @@ description: > 'desc' is a generic descriptor which contains [Enumerable]] attribute as false and [[Configurable]] property is true, 'name' property is an accessor property (8.12.9 step 8) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - obj.verifySetFunction = "data"; - var get_func = function () { - return obj.verifySetFunction; - }; - var set_func = function (value) { - obj.verifySetFunction = value; - }; - Object.defineProperty(obj, "foo", { - get: get_func, - set: set_func, - enumerable: true, - configurable: true - }); - - Object.defineProperty(obj, "foo", { - enumerable: false, - configurable: true - }); - - return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "verifySetFunction", false, true); - } -runTestCase(testcase); + +var obj = {}; +obj.verifySetFunction = "data"; +var get_func = function () { + return obj.verifySetFunction; +}; +var set_func = function (value) { + obj.verifySetFunction = value; +}; +Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true +}); + +Object.defineProperty(obj, "foo", { + enumerable: false, + configurable: true +}); + +verifyEqualTo(obj, "foo", get_func()); + +verifyWritable(obj, "foo", "verifySetFunction"); + +verifyNotEnumerable(obj, "foo"); + +verifyConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-9.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-9.js index a8b2def02a9500487fb329ea2c67764feb36c4a5..fa40ce3520a81af6e59cc193bd0b644ae07aaef0 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-9.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-9.js @@ -13,32 +13,33 @@ description: > 'desc' is a generic descriptor which only contains [[Configurable]] attribute as false, 'name' property is an accessor property (8.12.9 step 8) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - obj.verifySetFunction = "data"; - var get_func = function () { - return obj.verifySetFunction; - }; - var set_func = function (value) { - obj.verifySetFunction = value; - }; - Object.defineProperty(obj, "foo", { - get: get_func, - set: set_func, - enumerable: true, - configurable: true - }); - - Object.defineProperty(obj, "foo", { - configurable: false - }); - - return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "verifySetFunction", true, false); - } -runTestCase(testcase); + +var obj = {}; +obj.verifySetFunction = "data"; +var get_func = function () { + return obj.verifySetFunction; +}; +var set_func = function (value) { + obj.verifySetFunction = value; +}; +Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true +}); + +Object.defineProperty(obj, "foo", { + configurable: false +}); + +verifyEqualTo(obj, "foo", get_func()); + +verifyWritable(obj, "foo", "verifySetFunction"); + +verifyEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82.js index 22f8911a75000c9b8ed85d24398c6791fc7a41cf..feafd69efaa9120a7a98ad93096ec27f695860c8 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82.js @@ -9,18 +9,19 @@ es5id: 15.2.3.6-4-82 description: > Object.defineProperty - desc.configurable and name.configurable are boolean negation of each other (8.12.9 step 6) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - Object.defineProperty(obj, "foo", { configurable: true }); +var obj = {}; - Object.defineProperty(obj, "foo", { configurable: false }); - return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false); - } -runTestCase(testcase); +Object.defineProperty(obj, "foo", { configurable: true }); + +Object.defineProperty(obj, "foo", { configurable: false }); +verifyEqualTo(obj, "foo", undefined); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-83.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-83.js index 0516f9521b5160e36494a1b78f4b8bdb867f7cf1..aaf98d3c6a63eb1423741f5f4b9eb2dd10b8b2ad 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-83.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-83.js @@ -10,26 +10,27 @@ description: > Object.defineProperty will not throw TypeError if name.configurable = false, name.writable = false, name.value = undefined and desc.value = undefined (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: undefined, - writable: false, - configurable: false - }); +Object.defineProperty(obj, "foo", { + value: undefined, + writable: false, + configurable: false +}); - Object.defineProperty(obj, "foo", { - value: undefined, - writable: false, - configurable: false - }); - return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false); - } -runTestCase(testcase); +Object.defineProperty(obj, "foo", { + value: undefined, + writable: false, + configurable: false +}); +verifyEqualTo(obj, "foo", undefined); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-84.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-84.js index 732f8f3d81f5e05c70361ff9d1996244859cda32..aeb9af2480670f9e668ce1794d659011903eec57 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-84.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-84.js @@ -10,26 +10,27 @@ description: > Object.defineProperty will not throw TypeError if name.configurable = false, name.writable = false, name.value = null and desc.value = null (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: null, - writable: false, - configurable: false - }); +Object.defineProperty(obj, "foo", { + value: null, + writable: false, + configurable: false +}); - Object.defineProperty(obj, "foo", { - value: null, - writable: false, - configurable: false - }); - return dataPropertyAttributesAreCorrect(obj, "foo", null, false, false, false); - } -runTestCase(testcase); +Object.defineProperty(obj, "foo", { + value: null, + writable: false, + configurable: false +}); +verifyEqualTo(obj, "foo", null); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-86.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-86.js index 70df96be68ab371a60aaa6528e8e2ec0a5413c01..ad4017d4feab4f4e74ab82af1408c12a54c8d1c8 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-86.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-86.js @@ -10,26 +10,32 @@ description: > Object.defineProperty will throw TypeError when name.configurable = false, name.writable = false, desc.value = +0 and name.value = -0 (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: -0, - writable: false, - configurable: false - }); +Object.defineProperty(obj, "foo", { + value: -0, + writable: false, + configurable: false +}); - try { - Object.defineProperty(obj, "foo", { value: +0 }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "foo", -0, false, false, false); - } +try { + Object.defineProperty(obj, "foo", { value: +0 }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "foo", -0); + + verifyNotWritable(obj, "foo"); + + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-87.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-87.js index 18c7b2fec3119f85f38e44ea15ccbf0d80965935..9bec40b886027cece0b1b74167d1d6b7f0131e51 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-87.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-87.js @@ -10,26 +10,32 @@ description: > Object.defineProperty will throw TypeError when name.configurable = false, name.writable = false, desc.value = -0 and name.value = +0 (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: +0, - writable: false, - configurable: false - }); +Object.defineProperty(obj, "foo", { + value: +0, + writable: false, + configurable: false +}); - try { - Object.defineProperty(obj, "foo", { value: -0 }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "foo", +0, false, false, false); - } +try { + Object.defineProperty(obj, "foo", { value: -0 }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "foo", +0); + + verifyNotWritable(obj, "foo"); + + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-88.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-88.js index de86c82c16b9ef051d9f95cec18a3cfcea9bba12..8e4b065a13017c0455021ded5f7c76496a9fd0c4 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-88.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-88.js @@ -11,26 +11,23 @@ description: > name.configurable = false, name.writable = false, desc.value and name.value are two numbers with the same value (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: 100, - writable: false, - configurable: false - }); +Object.defineProperty(obj, "foo", { + value: 100, + writable: false, + configurable: false +}); - try { - Object.defineProperty(obj, "foo", { value: 100 }); - return dataPropertyAttributesAreCorrect(obj, "foo", 100, false, false, false); - } catch (e) { - return false; - } - } -runTestCase(testcase); +Object.defineProperty(obj, "foo", { value: 100 }); +verifyEqualTo(obj, "foo", 100); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-89.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-89.js index 340f34baa8d41f9a2404d238005ba122fe79fcc5..34d7382d3a2ec465a1bbedf046febe0094231dce 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-89.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-89.js @@ -10,26 +10,32 @@ description: > Object.defineProperty will throw TypeError when name.configurable = false, name.writable = false, desc.value and name.value are two numbers with different values (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - Object.defineProperty(obj, "foo", { - value: 10, - writable: false, - configurable: false - }); - - try { - Object.defineProperty(obj, "foo", { value: 20 }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false); - } + +var obj = {}; + +Object.defineProperty(obj, "foo", { + value: 10, + writable: false, + configurable: false +}); + +try { + Object.defineProperty(obj, "foo", { value: 20 }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "foo", 10); + + verifyNotWritable(obj, "foo"); + + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-90.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-90.js index 3557a0de826e48e2f58d582d7242656d3322c7f1..28a8a31869d31a30697593e0ec713c51d4a65839 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-90.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-90.js @@ -11,26 +11,23 @@ description: > name.configurable = false, name.writable = false, desc.value and name.value are two strings with the same value (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: "abcd", - writable: false, - configurable: false - }); +Object.defineProperty(obj, "foo", { + value: "abcd", + writable: false, + configurable: false +}); - try { - Object.defineProperty(obj, "foo", { value: "abcd" }); - return dataPropertyAttributesAreCorrect(obj, "foo", "abcd", false, false, false); - } catch (e) { - return false; - } - } -runTestCase(testcase); +Object.defineProperty(obj, "foo", { value: "abcd" }); +verifyEqualTo(obj, "foo", "abcd"); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-91.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-91.js index eb7d259f317c0f39b97c508f98c14958112723b4..ac00eed1c406aee2c28b94014dd6603183b62362 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-91.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-91.js @@ -10,26 +10,32 @@ description: > Object.defineProperty will throw TypeError when name.configurable = false, name.writable = false, desc.value and name.value are two strings with different values (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: "abcd", - writable: false, - configurable: false - }); +Object.defineProperty(obj, "foo", { + value: "abcd", + writable: false, + configurable: false +}); - try { - Object.defineProperty(obj, "foo", { value: "fghj" }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "foo", "abcd", false, false, false); - } +try { + Object.defineProperty(obj, "foo", { value: "fghj" }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "foo", "abcd"); + + verifyNotWritable(obj, "foo"); + + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-92.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-92.js index fe298d2a64f268784e539434f53cd597656bd939..22b1ff168931353b5979afae7c21a498250ba1a9 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-92.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-92.js @@ -11,26 +11,23 @@ description: > name.configurable = false, name.writable = false, desc.value and name.value are two booleans with the same value (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: false, - writable: false, - configurable: false - }); +Object.defineProperty(obj, "foo", { + value: false, + writable: false, + configurable: false +}); - try { - Object.defineProperty(obj, "foo", { value: false }); - return dataPropertyAttributesAreCorrect(obj, "foo", false, false, false, false); - } catch (e) { - return false; - } - } -runTestCase(testcase); +Object.defineProperty(obj, "foo", { value: false }); +verifyEqualTo(obj, "foo", false); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-93.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-93.js index 4d58ee2ea23df35d20ce07d11389de893865faf2..b4a045220b2f3cb9de69c68c35d0133730397076 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-93.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-93.js @@ -10,26 +10,32 @@ description: > Object.defineProperty will throw TypeError when name.configurable = false, name.writable = false, desc.value and name.value are two booleans with different values (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: false, - writable: false, - configurable: false - }); +Object.defineProperty(obj, "foo", { + value: false, + writable: false, + configurable: false +}); - try { - Object.defineProperty(obj, "foo", { value: true }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "foo", false, false, false, false); - } +try { + Object.defineProperty(obj, "foo", { value: true }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "foo", false); + + verifyNotWritable(obj, "foo"); + + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-94.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-94.js index c12367ddb0afaffcb5583f8da57a402a7673eaa0..54fb888f5c5f9af6a1171fa60f7ca0e94160969b 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-94.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-94.js @@ -11,28 +11,26 @@ description: > name.configurable = false, name.writable = false, desc.value and name.value are two Objects refer to the same object (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - var obj1 = { length: 10 }; +var obj1 = { length: 10 }; - Object.defineProperty(obj, "foo", { - value: obj1, - writable: false, - configurable: false - }); +Object.defineProperty(obj, "foo", { + value: obj1, + writable: false, + configurable: false +}); + +Object.defineProperty(obj, "foo", { value: obj1 }); +verifyEqualTo(obj, "foo", obj1); + +verifyNotWritable(obj, "foo"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); - try { - Object.defineProperty(obj, "foo", { value: obj1 }); - return dataPropertyAttributesAreCorrect(obj, "foo", obj1, false, false, false); - } catch (e) { - return false; - } - } -runTestCase(testcase); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-95.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-95.js index a41f683145e4d9acedb992994bce389b74f90fa5..b715972438b8076cd5c840aa9ffc4ac0ec226117 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-95.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-95.js @@ -11,30 +11,36 @@ description: > = false, name.writable = false, desc.value and name.value are two objects which refer to the different objects (8.12.9 step 10.a.ii.1) -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - var obj1 = { length: 10 }; +var obj1 = { length: 10 }; - Object.defineProperty(obj, "foo", { - value: obj1, - writable: false, - configurable: false - }); +Object.defineProperty(obj, "foo", { + value: obj1, + writable: false, + configurable: false +}); - var obj2 = { length: 20 }; +var obj2 = { length: 20 }; - try { - Object.defineProperty(obj, "foo", { value: obj2 }); - return false; - } catch (e) { - return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "foo", obj1, false, false, false); - } +try { + Object.defineProperty(obj, "foo", { value: obj2 }); + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "foo", obj1); + + verifyNotWritable(obj, "foo"); + + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-96.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-96.js index ba8ab66ea8ecdaad726132a2a8c0904fa7be3b2e..fdfc645d6bd7e51d8c03ad3bbf14f08f325bc67f 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-96.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-96.js @@ -10,29 +10,24 @@ description: > Object.defineProperty will not throw TypeError when name.configurable = false, both desc.[[Set]] and name.[[Set]] are two objects which refer to the same object (8.12.9 step 11.a.i) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function setFunc(value) { - obj.setVerifyHelpProp = value; - } +function setFunc(value) { + obj.setVerifyHelpProp = value; +} - Object.defineProperty(obj, "foo", { - set: setFunc, - configurable: false - }); +Object.defineProperty(obj, "foo", { + set: setFunc, + configurable: false +}); - try { - Object.defineProperty(obj, "foo", { set: setFunc }); - return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, setFunc, "setVerifyHelpProp", false, false); - } catch (e) { - return false; - } - } -runTestCase(testcase); +Object.defineProperty(obj, "foo", { set: setFunc }); +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-97.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-97.js index 93ec84c6c187495efd7f3adb2547cb49b4902189..b9f32c469469d92fecae6bbfd3150e5c79f9f90c 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-97.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-97.js @@ -10,35 +10,38 @@ description: > Object.defineProperty will throw TypeError when name.configurable = false, name.[[Set]] is undefined, desc.[[Set]] refers to an object (8.12.9 step 11.a.i) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function getFunc() { - return "property"; - } +function getFunc() { + return "property"; +} - Object.defineProperty(obj, "property", { - get: getFunc, - configurable: false - }); +Object.defineProperty(obj, "property", { + get: getFunc, + configurable: false +}); - try { - Object.defineProperty(obj, "property", { - get: getFunc, - set: function () { }, - configurable: false - }); +try { + Object.defineProperty(obj, "property", { + get: getFunc, + set: function () { }, + configurable: false + }); - return false; - } catch (e) { - return e instanceof TypeError && - accessorPropertyAttributesAreCorrect(obj, "property", getFunc, undefined, undefined, false, false); - } + $ERROR("Expected an exception."); +} catch (e) { + verifyEqualTo(obj, "property", getFunc()); + + verifyNotEnumerable(obj, "property"); + + verifyNotConfigurable(obj, "property"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-98.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-98.js index 9b788e48194e96d90b91ae4c3f03b9af87b4e8b6..95e7080053e4733692df539cebd6950f3ac92e07 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-98.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-98.js @@ -10,33 +10,31 @@ description: > Object.defineProperty will not throw TypeError when name.configurable = false, both desc.[[Get]] and name.[[Get]] are two objects which refer to the same object (8.12.9 step 11.a.ii) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - - var obj = {}; - - function getFunc() { - return 10; - } - function setFunc(value) { - obj.verifyGetHelpMethod = value; - } - - Object.defineProperty(obj, "foo", { - get: getFunc, - set: setFunc, - configurable: false - }); - - try { - Object.defineProperty(obj, "foo", { get: getFunc }); - return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, setFunc, "verifyGetHelpMethod", false, false); - } catch (e) { - return false; - } - } -runTestCase(testcase); + +var obj = {}; + +function getFunc() { + return 10; +} +function setFunc(value) { + obj.verifyGetHelpMethod = value; +} + +Object.defineProperty(obj, "foo", { + get: getFunc, + set: setFunc, + configurable: false +}); + +Object.defineProperty(obj, "foo", { get: getFunc }); + +verifyEqualTo(obj, "foo", getFunc()); + +verifyWritable(obj, "foo", "verifyGetHelpMethod"); + +verifyNotEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-99.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-99.js index 5c62c6f912532921744cada2fff9c35cdd8f16b7..ddcec50625ee964d0227f5a66ab1063c18071eeb 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-99.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-99.js @@ -10,36 +10,40 @@ description: > Object.defineProperty will throw TypeError when name.configurable = false, name.[[Get]] is undefined, desc.[[Get]] refers to an object (8.12.9 step 11.a.ii) -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - function setFunc(value) { - obj.setVerifyHelpProp = value; - } +function setFunc(value) { + obj.setVerifyHelpProp = value; +} - Object.defineProperty(obj, "foo", { - set: setFunc, - configurable: false - }); +Object.defineProperty(obj, "foo", { + set: setFunc, + configurable: false +}); - function getFunc() { - return 10; - } +function getFunc() { + return 10; +} - try { - Object.defineProperty(obj, "foo", { - get: getFunc, - set: setFunc - }); - return false; - } catch (e) { - return e instanceof TypeError && accessorPropertyAttributesAreCorrect(obj, "foo", undefined, setFunc, "setVerifyHelpProp", false, false); - } +try { + Object.defineProperty(obj, "foo", { + get: getFunc, + set: setFunc + }); + $ERROR("Expected an exception."); +} catch (e) { + verifyWritable(obj, "foo", "setVerifyHelpProp"); + + verifyNotEnumerable(obj, "foo"); + + verifyNotConfigurable(obj, "foo"); + + if (!(e instanceof TypeError)) { + $ERROR("Expected TypeError, got " + e); } -runTestCase(testcase); + +} diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-b-i-1.js b/test/built-ins/Object/freeze/15.2.3.9-2-b-i-1.js index 10fc2968271c5f5da76f6dc4bad5e65a45ebe8e4..d921745ca7d228e6fc63c3f32e11d6a86a5c5537 100644 --- a/test/built-ins/Object/freeze/15.2.3.9-2-b-i-1.js +++ b/test/built-ins/Object/freeze/15.2.3.9-2-b-i-1.js @@ -9,25 +9,34 @@ es5id: 15.2.3.9-2-b-i-1 description: > Object.freeze - The [[Wrtiable]] attribute of own data property of 'O' is set to false while other attributes are unchanged -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: 10, - writable: true, - enumerable: true, - configurable: false - }); +Object.defineProperty(obj, "foo", { + value: 10, + writable: true, + enumerable: true, + configurable: false +}); - Object.freeze(obj); - var desc = Object.getOwnPropertyDescriptor(obj, "foo"); +Object.freeze(obj); +var desc = Object.getOwnPropertyDescriptor(obj, "foo"); + +verifyEqualTo(obj, "foo", 10); + +verifyNotWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); + +if (desc.writable !== false) { + $ERROR('Expected desc.writable === false, actually ' + desc.writable); +} + +if (desc.configurable !== false) { + $ERROR('Expected desc.configurable === false, actually ' + desc.configurable); +} - return dataPropertyAttributesAreCorrect(obj, "foo", 10, false, true, false) && - desc.writable === false && desc.configurable === false; - } -runTestCase(testcase); diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-b-i-2.js b/test/built-ins/Object/freeze/15.2.3.9-2-b-i-2.js index f985e57df5894ac5626437d2b3bfb407f9c2a690..561832fa2d1cac67655c2625a651d08281acc79c 100644 --- a/test/built-ins/Object/freeze/15.2.3.9-2-b-i-2.js +++ b/test/built-ins/Object/freeze/15.2.3.9-2-b-i-2.js @@ -10,36 +10,59 @@ description: > Object.freeze - The [[Wrtiable]] attribute of all own data property of 'O' is set to false while other attributes are unchanged -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; - - Object.defineProperty(obj, "foo1", { - value: 10, - writable: false, - enumerable: true, - configurable: false - }); - - Object.defineProperty(obj, "foo2", { - value: 20, - writable: true, - enumerable: false, - configurable: false - }); - - Object.freeze(obj); - - var desc1 = Object.getOwnPropertyDescriptor(obj, "foo1"); - var desc2 = Object.getOwnPropertyDescriptor(obj, "foo2"); - - return dataPropertyAttributesAreCorrect(obj, "foo1", 10, false, true, false) && - dataPropertyAttributesAreCorrect(obj, "foo2", 20, false, false, false) && - desc1.configurable === false && desc1.writable === false && - desc2.configurable === false && desc2.writable === false; - } -runTestCase(testcase); +var obj = {}; + +Object.defineProperty(obj, "foo1", { + value: 10, + writable: false, + enumerable: true, + configurable: false +}); + +Object.defineProperty(obj, "foo2", { + value: 20, + writable: true, + enumerable: false, + configurable: false +}); + +Object.freeze(obj); + +var desc1 = Object.getOwnPropertyDescriptor(obj, "foo1"); +var desc2 = Object.getOwnPropertyDescriptor(obj, "foo2"); + +verifyEqualTo(obj, "foo1", 10); + +verifyNotWritable(obj, "foo1"); + +verifyEnumerable(obj, "foo1"); + +verifyNotConfigurable(obj, "foo1"); + +verifyEqualTo(obj, "foo2", 20); + +verifyNotWritable(obj, "foo2"); + +verifyNotEnumerable(obj, "foo2"); + +verifyNotConfigurable(obj, "foo2"); + +if (desc1.configurable !== false) { + $ERROR('Expected desc1.configurable === false, actually ' + desc1.configurable); +} + +if (desc1.writable !== false) { + $ERROR('Expected desc1.writable === false, actually ' + desc1.writable); +} + +if (desc2.configurable !== false) { + $ERROR('Expected desc2.configurable === false, actually ' + desc2.configurable); +} + +if (desc2.writable !== false) { + $ERROR('Expected desc2.writable === false, actually ' + desc2.writable); +} + diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-c-1.js b/test/built-ins/Object/freeze/15.2.3.9-2-c-1.js index 9ef22a3d74a1411984de55d96404f0c31b202bc7..6a8a544c4fafd4ad2e3da36d9c1e2c3782ff9573 100644 --- a/test/built-ins/Object/freeze/15.2.3.9-2-c-1.js +++ b/test/built-ins/Object/freeze/15.2.3.9-2-c-1.js @@ -10,25 +10,34 @@ description: > Object.freeze - The [[Configurable]] attribute of own data property of 'O' is set to false while other attributes are unchanged -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; +var obj = {}; - Object.defineProperty(obj, "foo", { - value: 10, - writable: false, - enumerable: true, - configurable: true - }); +Object.defineProperty(obj, "foo", { + value: 10, + writable: false, + enumerable: true, + configurable: true +}); - Object.freeze(obj); - var desc = Object.getOwnPropertyDescriptor(obj, "foo"); +Object.freeze(obj); + +var desc = Object.getOwnPropertyDescriptor(obj, "foo"); + +if (desc.configurable !== false) { + $ERROR("Expected desc.configurable to be false, actually " + desc.configurable); +} +if (desc.writable !== false) { + $ERROR("Expected desc.writable to be false, actually " + desc.writable); +} + +verifyEqualTo(obj, "foo", 10); + +verifyNotWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); - return dataPropertyAttributesAreCorrect(obj, "foo", 10, false, true, false) && - desc.configurable === false && desc.writable === false; - } -runTestCase(testcase); diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-c-3.js b/test/built-ins/Object/freeze/15.2.3.9-2-c-3.js index 81ab9fe0374e12c2be619cb48b2f92c7c37355a5..69135e6c5e8942f3d3020017c7f700a24ce94be3 100644 --- a/test/built-ins/Object/freeze/15.2.3.9-2-c-3.js +++ b/test/built-ins/Object/freeze/15.2.3.9-2-c-3.js @@ -10,62 +10,63 @@ description: > Object.freeze - The [[Configurable]] attribute of all own data property of 'O' is set to false while other attributes are unchanged -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { +var obj = {}; +var resultSetFun = false; - var obj = {}; - var resultSetFun = false; +Object.defineProperty(obj, "foo1", { + value: 10, + writable: false, + enumerable: true, + configurable: true +}); - Object.defineProperty(obj, "foo1", { - value: 10, - writable: false, - enumerable: true, - configurable: true - }); +function get_func() { + return 10; +} - function get_func() { - return 10; - } +function set_func() { + resultSetFun = true; +} - function set_func() { - resultSetFun = true; - } +Object.defineProperty(obj, "foo2", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true +}); - Object.defineProperty(obj, "foo2", { - get: get_func, - set: set_func, - enumerable: true, - configurable: true - }); +Object.freeze(obj); - Object.freeze(obj); +verifyNotConfigurable(obj, "foo2"); +verifyEqualTo(obj, "foo2", 10); - var res1 = obj.hasOwnProperty("foo2"); - delete obj.foo2; - var res2 = obj.hasOwnProperty("foo2"); - var resultConfigurable = (res1 && res2); +obj.foo2 = 12; +if (!resultSetFun) { + $ERROR('Expected obj["foo2"] set() to be called, but was not.'); +} - var resultGetFun = (obj.foo2 === 10); - obj.foo2 = 12; +if (!isEnumerable(obj, "foo2")) { + $ERROR('Expected obj["foo2"] to be enumerable.'); +} - var resultEnumerable = false; - for (var prop in obj) { - if (prop === "foo2") { - resultEnumerable = true; - } - } +var desc1 = Object.getOwnPropertyDescriptor(obj, "foo1"); +if (desc1.configurable || desc1.writable) { + $ERROR('Expected obj["foo1"] to be non-writable, non-configurable; actually ' + JSON.stringify(desc1)); +} - var desc1 = Object.getOwnPropertyDescriptor(obj, "foo1"); - var desc2 = Object.getOwnPropertyDescriptor(obj, "foo2"); +var desc2 = Object.getOwnPropertyDescriptor(obj, "foo2"); +if (desc2.configurable || desc2.writable) { + $ERROR('Expected obj["foo2"] to be non-writable, non-configurable; actually ' + JSON.stringify(desc2)); +} - var result = resultConfigurable && resultEnumerable && resultGetFun && resultSetFun; +verifyEqualTo(obj, "foo1", 10); - return dataPropertyAttributesAreCorrect(obj, "foo1", 10, false, true, false) && result && - desc1.configurable === false && desc1.writable === false && desc2.configurable === false; +verifyNotWritable(obj, "foo1"); + +verifyEnumerable(obj, "foo1"); + +verifyNotConfigurable(obj, "foo1"); - } -runTestCase(testcase); diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-c-4.js b/test/built-ins/Object/freeze/15.2.3.9-2-c-4.js index b438bea8d4e51ae062affa7a5283fbe7cf975449..7e7a2c925e8d7e2a3d801f1cd03f96f1217ee3e6 100644 --- a/test/built-ins/Object/freeze/15.2.3.9-2-c-4.js +++ b/test/built-ins/Object/freeze/15.2.3.9-2-c-4.js @@ -9,60 +9,61 @@ es5id: 15.2.3.9-2-c-4 description: > Object.freeze - all own properties of 'O' are not writable and not configurable -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; - var resultSetFun = false; - - Object.defineProperty(obj, "foo1", { - value: 10, - writable: false, - enumerable: true, - configurable: false - }); - - function get_func() { - return 10; - } - - function set_func() { - resultSetFun = true; - } - - Object.defineProperty(obj, "foo2", { - get: get_func, - set: set_func, - enumerable: true, - configurable: true - }); - - Object.freeze(obj); - - var res1 = obj.hasOwnProperty("foo2"); - delete obj.foo2; - var res2 = obj.hasOwnProperty("foo2"); - var resultConfigurable = (res1 && res2); - - var resultGetFun = (obj.foo2 === 10); - obj.foo2 = 12; - - var resultEnumerable = false; - for (var prop in obj) { - if (prop === "foo2") { - resultEnumerable = true; - } - } - - var desc1 = Object.getOwnPropertyDescriptor(obj, "foo1"); - var desc2 = Object.getOwnPropertyDescriptor(obj, "foo2"); - - var result = resultConfigurable && resultEnumerable && resultGetFun && resultSetFun; - - return dataPropertyAttributesAreCorrect(obj, "foo1", 10, false, true, false) && - result && desc1.configurable === false && desc1.writable === false && desc2.configurable === false; - } -runTestCase(testcase); +var obj = {}; +var resultSetFun = false; + +Object.defineProperty(obj, "foo1", { + value: 10, + writable: false, + enumerable: true, + configurable: false +}); + +function get_func() { + return 10; +} + +function set_func() { + resultSetFun = true; +} + +Object.defineProperty(obj, "foo2", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true +}); + +Object.freeze(obj); + +verifyEqualTo(obj, "foo2", 10); + +verifyNotConfigurable(obj, "foo2"); + +obj.foo2 = 12; +if (!resultSetFun) { + $ERROR('Expected obj["foo2"] set() to be called, but was not.'); +} + +verifyEnumerable(obj, "foo2"); + +var desc1 = Object.getOwnPropertyDescriptor(obj, "foo1"); +if (desc1.configurable || desc1.writable) { + $ERROR('Expected obj["foo1"] to be non-writable, non-configurable; actually ' + JSON.stringify(desc1)); +} + +var desc2 = Object.getOwnPropertyDescriptor(obj, "foo2"); +if (desc2.configurable || desc2.writable) { + $ERROR('Expected obj["foo2"] to be non-writable, non-configurable; actually ' + JSON.stringify(desc2)); +} + +verifyEqualTo(obj, "foo1", 10); + +verifyNotWritable(obj, "foo1"); + +verifyEnumerable(obj, "foo1"); + +verifyNotConfigurable(obj, "foo1"); diff --git a/test/built-ins/Object/seal/15.2.3.8-2-b-1.js b/test/built-ins/Object/seal/15.2.3.8-2-b-1.js index 765f59418db9b816daf6aa31e1881f8b2cffd5a0..4232ebb5c2f1e76da5be7193dc5b0a0b9b5073e5 100644 --- a/test/built-ins/Object/seal/15.2.3.8-2-b-1.js +++ b/test/built-ins/Object/seal/15.2.3.8-2-b-1.js @@ -10,23 +10,28 @@ description: > Object.seal - the [[Configurable]] attribute of own data property of 'O' is set from true to false and other attributes of the property are unaltered -includes: - - runTestCase.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; - - Object.defineProperty(obj, "foo", { - value: 10, - writable: true, - enumerable: true, - configurable: true - }); - var preCheck = Object.isExtensible(obj); - Object.seal(obj); - - return preCheck && dataPropertyAttributesAreCorrect(obj, "foo", 10, true, true, false); - } -runTestCase(testcase); +var obj = {}; + +Object.defineProperty(obj, "foo", { + value: 10, + writable: true, + enumerable: true, + configurable: true +}); +var preCheck = Object.isExtensible(obj); +Object.seal(obj); + +if (!preCheck) { + $ERROR('Expected preCheck to be true, actually ' + preCheck); +} + +verifyEqualTo(obj, "foo", 10); + +verifyWritable(obj, "foo"); + +verifyEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/seal/15.2.3.8-2-b-2.js b/test/built-ins/Object/seal/15.2.3.8-2-b-2.js index 895622cf587f3d9cd7a9e2014c38a4b886ebe7d2..25acd60489e1c25696585806871c22ae86aaed64 100644 --- a/test/built-ins/Object/seal/15.2.3.8-2-b-2.js +++ b/test/built-ins/Object/seal/15.2.3.8-2-b-2.js @@ -10,30 +10,35 @@ description: > Object.seal - the [[Configurable]] attribute of own accessor property of 'O' is set from true to false and other attributes of the property are unaltered -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; - obj.variableForHelpVerify = "data"; - - function setFunc(value) { - obj.variableForHelpVerify = value; - } - function getFunc() { - return 10; - } - Object.defineProperty(obj, "foo", { - get: getFunc, - set: setFunc, - enumerable: true, - configurable: true - }); - var preCheck = Object.isExtensible(obj); - Object.seal(obj); - - return preCheck && accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, setFunc, "variableForHelpVerify", true, false); - } -runTestCase(testcase); +var obj = {}; +obj.variableForHelpVerify = "data"; + +function setFunc(value) { + obj.variableForHelpVerify = value; +} +function getFunc() { + return 10; +} +Object.defineProperty(obj, "foo", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true +}); +var preCheck = Object.isExtensible(obj); +Object.seal(obj); + +if (!preCheck) { + $ERROR('Expected preCheck to be true, actually ' + preCheck); +} + +verifyEqualTo(obj, "foo", getFunc()); + +verifyWritable(obj, "foo", "variableForHelpVerify"); + +verifyEnumerable(obj, "foo"); + +verifyNotConfigurable(obj, "foo"); diff --git a/test/built-ins/Object/seal/15.2.3.8-2-b-3.js b/test/built-ins/Object/seal/15.2.3.8-2-b-3.js index c6d1b9c0f58dd989a7f2a96cc1c752a8f235875f..7c18fe9bd604d3b9b270a2394dd006daac32c443 100644 --- a/test/built-ins/Object/seal/15.2.3.8-2-b-3.js +++ b/test/built-ins/Object/seal/15.2.3.8-2-b-3.js @@ -10,39 +10,51 @@ description: > Object.seal - the [[Configurable]] attribute of all own properties of 'O' are set from true to false and other attributes of the property are unaltered -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; - obj.variableForHelpVerify = "data"; - - Object.defineProperty(obj, "foo1", { - value: 10, - writable: true, - enumerable: true, - configurable: true - }); - - function set_func(value) { - obj.variableForHelpVerify = value; - } - function get_func() { - return 10; - } - Object.defineProperty(obj, "foo2", { - get: get_func, - set: set_func, - enumerable: true, - configurable: true - }); - var preCheck = Object.isExtensible(obj); - Object.seal(obj); - - return preCheck && dataPropertyAttributesAreCorrect(obj, "foo1", 10, true, true, false) && - accessorPropertyAttributesAreCorrect(obj, "foo2", get_func, set_func, "variableForHelpVerify", true, false); - } -runTestCase(testcase); +var obj = {}; +obj.variableForHelpVerify = "data"; + +Object.defineProperty(obj, "foo1", { + value: 10, + writable: true, + enumerable: true, + configurable: true +}); + +function set_func(value) { + obj.variableForHelpVerify = value; +} +function get_func() { + return 10; +} +Object.defineProperty(obj, "foo2", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true +}); +var preCheck = Object.isExtensible(obj); +Object.seal(obj); + +if (!preCheck) { + $ERROR('Expected preCheck to be true, actually ' + preCheck); +} + + +verifyEqualTo(obj, "foo1", 10); + +verifyWritable(obj, "foo1"); + +verifyEnumerable(obj, "foo1"); + +verifyNotConfigurable(obj, "foo1"); + +verifyEqualTo(obj, "foo2", get_func()); + +verifyWritable(obj, "foo2", "variableForHelpVerify"); + +verifyEnumerable(obj, "foo2"); + +verifyNotConfigurable(obj, "foo2"); diff --git a/test/built-ins/Object/seal/15.2.3.8-2-b-4.js b/test/built-ins/Object/seal/15.2.3.8-2-b-4.js index bec8f3a5a235959625d3f631008cb251e27a548d..885766b21abea305ca7d8808373ced021d773e6b 100644 --- a/test/built-ins/Object/seal/15.2.3.8-2-b-4.js +++ b/test/built-ins/Object/seal/15.2.3.8-2-b-4.js @@ -9,39 +9,53 @@ es5id: 15.2.3.8-2-b-4 description: > Object.seal - all own properties of 'O' are already non-configurable -includes: - - runTestCase.js - - accessorPropertyAttributesAreCorrect.js - - dataPropertyAttributesAreCorrect.js +includes: [propertyHelper.js] ---*/ -function testcase() { - var obj = {}; - obj.variableForHelpVerify = "data"; - - Object.defineProperty(obj, "foo1", { - value: 10, - writable: true, - enumerable: true, - configurable: false - }); - - function set_func(value) { - obj.variableForHelpVerify = value; - } - function get_func() { - return 10; - } - Object.defineProperty(obj, "foo2", { - get: get_func, - set: set_func, - enumerable: true, - configurable: false - }); - var preCheck = Object.isExtensible(obj); - Object.seal(obj); - - return preCheck && dataPropertyAttributesAreCorrect(obj, "foo1", 10, true, true, false) && - accessorPropertyAttributesAreCorrect(obj, "foo2", get_func, set_func, "variableForHelpVerify", true, false); - } -runTestCase(testcase); +var obj = {}; +obj.variableForHelpVerify = "data"; + +Object.defineProperty(obj, "foo1", { + value: 10, + writable: true, + enumerable: true, + configurable: false +}); + +function set_func(value) { + obj.variableForHelpVerify = value; +} +function get_func() { + return 10; +} +Object.defineProperty(obj, "foo2", { + get: get_func, + set: set_func, + enumerable: true, + configurable: false +}); + +if (!Object.isExtensible(obj)) { + $ERROR('Expected obj to be extensible, actually ' + Object.isExtensible(obj)); +} + +Object.seal(obj); + +if (Object.isExtensible(obj)) { + $ERROR('Expected obj NOT to be extensible, actually ' + Object.isExtensible(obj)); +} + +verifyEqualTo(obj, "foo1", 10); + +verifyWritable(obj, "foo1"); + +verifyEnumerable(obj, "foo1"); + +verifyNotConfigurable(obj, "foo1"); +verifyEqualTo(obj, "foo2", get_func()); + +verifyWritable(obj, "foo2", "variableForHelpVerify"); + +verifyEnumerable(obj, "foo2"); + +verifyNotConfigurable(obj, "foo2");