diff --git a/features.txt b/features.txt index 133f8fc3f3b..e120f60ac75 100644 --- a/features.txt +++ b/features.txt @@ -93,6 +93,10 @@ String.prototype.toWellFormed # https://github.com/tc39/proposal-json-parse-with-source json-parse-with-source +# Regular expression modifiers +# https://github.com/tc39/proposal-regexp-modifiers +regexp-modifiers + # Iterator Helpers # https://github.com/tc39/proposal-iterator-helpers iterator-helpers diff --git a/test/built-ins/Object/assign/assign-descriptor.js b/test/built-ins/Object/assign/assign-descriptor.js index 4446ac41f1e..0aea974146f 100644 --- a/test/built-ins/Object/assign/assign-descriptor.js +++ b/test/built-ins/Object/assign/assign-descriptor.js @@ -7,6 +7,8 @@ includes: [propertyHelper.js] es6id: 19.1.2.1 ---*/ -verifyWritable(Object, "assign"); -verifyNotEnumerable(Object, "assign"); -verifyConfigurable(Object, "assign"); +verifyProperty(Object, "assign", { + writable: true, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/assign/assign-length.js b/test/built-ins/Object/assign/assign-length.js index d7d86eb2d83..5af979c28d6 100644 --- a/test/built-ins/Object/assign/assign-length.js +++ b/test/built-ins/Object/assign/assign-length.js @@ -15,10 +15,9 @@ info: | includes: [propertyHelper.js] ---*/ -assert.sameValue( - Object.assign.length, 2, "The length property of the assign method should be 2." -); - -verifyNotEnumerable(Object.assign, 'length'); -verifyNotWritable(Object.assign, 'length'); -verifyConfigurable(Object.assign, 'length'); +verifyProperty(Object.assign, "length", { + value: 2, + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/assign/name.js b/test/built-ins/Object/assign/name.js index 6cb22e25c58..101335c1c8d 100644 --- a/test/built-ins/Object/assign/name.js +++ b/test/built-ins/Object/assign/name.js @@ -19,12 +19,9 @@ info: | includes: [propertyHelper.js] ---*/ -assert.sameValue( - Object.assign.name, - 'assign', - 'The value of `Object.assign.name` is `"assign"`' -); - -verifyNotEnumerable(Object.assign, 'name'); -verifyNotWritable(Object.assign, 'name'); -verifyConfigurable(Object.assign, 'name'); +verifyProperty(Object.assign, "name", { + value: "assign", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-100.js b/test/built-ins/Object/create/15.2.3.5-4-100.js index d219852c9fd..9df41abaa97 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-100.js +++ b/test/built-ins/Object/create/15.2.3.5-4-100.js @@ -15,5 +15,6 @@ var newObj = Object.create({}, { } }); -assert(newObj.hasOwnProperty("prop"), "expected newObj to have 'prop'"); -verifyNotConfigurable(newObj, "prop"); +verifyProperty(newObj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-101.js b/test/built-ins/Object/create/15.2.3.5-4-101.js index 84bcf29eb5b..d4bd1ad67a8 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-101.js +++ b/test/built-ins/Object/create/15.2.3.5-4-101.js @@ -15,5 +15,6 @@ var newObj = Object.create({}, { } }); -assert(newObj.hasOwnProperty("prop")); -verifyNotConfigurable(newObj, "prop"); +verifyProperty(newObj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-103.js b/test/built-ins/Object/create/15.2.3.5-4-103.js index cd95c4308e6..c49aa2cd20a 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-103.js +++ b/test/built-ins/Object/create/15.2.3.5-4-103.js @@ -26,5 +26,6 @@ var newObj = Object.create({}, { prop: descObj }); -assert(newObj.hasOwnProperty("prop")); -verifyNotConfigurable(newObj, "prop"); +verifyProperty(newObj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-104.js b/test/built-ins/Object/create/15.2.3.5-4-104.js index 1d9346fd8ea..48542bca4d4 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-104.js +++ b/test/built-ins/Object/create/15.2.3.5-4-104.js @@ -29,5 +29,6 @@ var newObj = Object.create({}, { prop: descObj }); -assert(newObj.hasOwnProperty("prop")); -verifyNotConfigurable(newObj, "prop"); +verifyProperty(newObj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-107.js b/test/built-ins/Object/create/15.2.3.5-4-107.js index 0f1b7c64657..6317a1dc8f2 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-107.js +++ b/test/built-ins/Object/create/15.2.3.5-4-107.js @@ -28,5 +28,6 @@ var newObj = Object.create({}, { prop: descObj }); -assert(newObj.hasOwnProperty("prop")); -verifyNotConfigurable(newObj, "prop"); +verifyProperty(newObj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-108.js b/test/built-ins/Object/create/15.2.3.5-4-108.js index bd69f790efc..7169d8a440b 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-108.js +++ b/test/built-ins/Object/create/15.2.3.5-4-108.js @@ -31,5 +31,6 @@ var newObj = Object.create({}, { prop: descObj }); -assert(newObj.hasOwnProperty("prop")); -verifyNotConfigurable(newObj, "prop"); +verifyProperty(newObj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-109.js b/test/built-ins/Object/create/15.2.3.5-4-109.js index c8e9df1d839..136d2bb065e 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-109.js +++ b/test/built-ins/Object/create/15.2.3.5-4-109.js @@ -19,5 +19,6 @@ var newObj = Object.create({}, { prop: descObj }); -assert(newObj.hasOwnProperty("prop")); -verifyNotConfigurable(newObj, "prop"); +verifyProperty(newObj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-110.js b/test/built-ins/Object/create/15.2.3.5-4-110.js index 0f45922d8a6..7056799067d 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-110.js +++ b/test/built-ins/Object/create/15.2.3.5-4-110.js @@ -29,5 +29,6 @@ var newObj = Object.create({}, { prop: descObj }); -assert(newObj.hasOwnProperty("prop")); -verifyNotConfigurable(newObj, "prop"); +verifyProperty(newObj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-111.js b/test/built-ins/Object/create/15.2.3.5-4-111.js index 523c329b87e..4e682e6cdda 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-111.js +++ b/test/built-ins/Object/create/15.2.3.5-4-111.js @@ -24,5 +24,6 @@ var newObj = Object.create({}, { prop: descObj }); -assert(newObj.hasOwnProperty("prop")); -verifyNotConfigurable(newObj, "prop"); +verifyProperty(newObj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-125.js b/test/built-ins/Object/create/15.2.3.5-4-125.js index 1ea05541e9a..530f6ddcf59 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-125.js +++ b/test/built-ins/Object/create/15.2.3.5-4-125.js @@ -15,6 +15,6 @@ var newObj = Object.create({}, { } }); - -assert(newObj.hasOwnProperty("prop")); -verifyNotConfigurable(newObj, "prop"); +verifyProperty(newObj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-126.js b/test/built-ins/Object/create/15.2.3.5-4-126.js index 4e100ce3819..e5de2419671 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-126.js +++ b/test/built-ins/Object/create/15.2.3.5-4-126.js @@ -15,5 +15,6 @@ var newObj = Object.create({}, { } }); -assert(newObj.hasOwnProperty("prop")); -verifyNotConfigurable(newObj, "prop"); +verifyProperty(newObj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-128.js b/test/built-ins/Object/create/15.2.3.5-4-128.js index c8a10125c53..7ecc2637da2 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-128.js +++ b/test/built-ins/Object/create/15.2.3.5-4-128.js @@ -15,5 +15,6 @@ var newObj = Object.create({}, { } }); -assert(newObj.hasOwnProperty("prop")); -verifyNotConfigurable(newObj, "prop"); +verifyProperty(newObj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-129.js b/test/built-ins/Object/create/15.2.3.5-4-129.js index 14c74b0473d..0f21154c1e0 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-129.js +++ b/test/built-ins/Object/create/15.2.3.5-4-129.js @@ -15,5 +15,6 @@ var newObj = Object.create({}, { } }); -assert(newObj.hasOwnProperty("prop")); -verifyNotConfigurable(newObj, "prop"); +verifyProperty(newObj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-130.js b/test/built-ins/Object/create/15.2.3.5-4-130.js index 83769b6caac..cb80a338140 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-130.js +++ b/test/built-ins/Object/create/15.2.3.5-4-130.js @@ -15,6 +15,6 @@ var newObj = Object.create({}, { } }); - -assert(newObj.hasOwnProperty("prop")); -verifyNotConfigurable(newObj, "prop"); +verifyProperty(newObj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-131.js b/test/built-ins/Object/create/15.2.3.5-4-131.js index e855085d7c5..9ecd0d5eb61 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-131.js +++ b/test/built-ins/Object/create/15.2.3.5-4-131.js @@ -15,5 +15,6 @@ var newObj = Object.create({}, { } }); -assert(newObj.hasOwnProperty("prop")); -verifyNotConfigurable(newObj, "prop"); +verifyProperty(newObj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-132.js b/test/built-ins/Object/create/15.2.3.5-4-132.js index 15f84879742..214af762e06 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-132.js +++ b/test/built-ins/Object/create/15.2.3.5-4-132.js @@ -15,5 +15,6 @@ var newObj = Object.create({}, { } }); -assert(newObj.hasOwnProperty("prop")); -verifyNotConfigurable(newObj, "prop"); +verifyProperty(newObj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-135.js b/test/built-ins/Object/create/15.2.3.5-4-135.js index d675ebc245a..4c0729ec858 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-135.js +++ b/test/built-ins/Object/create/15.2.3.5-4-135.js @@ -15,5 +15,6 @@ var newObj = Object.create({}, { } }); -assert(newObj.hasOwnProperty("prop")); -verifyNotConfigurable(newObj, "prop"); +verifyProperty(newObj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-179.js b/test/built-ins/Object/create/15.2.3.5-4-179.js index 1c71b6ebc8b..c5d71576d41 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-179.js +++ b/test/built-ins/Object/create/15.2.3.5-4-179.js @@ -15,5 +15,7 @@ var newObj = Object.create({}, { } }); -assert.sameValue(newObj.prop, 100); -verifyNotWritable(newObj, "prop"); +verifyProperty(newObj, "prop", { + value: 100, + writable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-188.js b/test/built-ins/Object/create/15.2.3.5-4-188.js index 25ae2dfc302..e446e871759 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-188.js +++ b/test/built-ins/Object/create/15.2.3.5-4-188.js @@ -22,5 +22,7 @@ var newObj = Object.create({}, { prop: descObj }); -assert.sameValue(newObj.prop, 100); -verifyNotWritable(newObj, "prop"); +verifyProperty(newObj, "prop", { + value: 100, + writable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-189.js b/test/built-ins/Object/create/15.2.3.5-4-189.js index 1f4ef0c7879..6159bb0d287 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-189.js +++ b/test/built-ins/Object/create/15.2.3.5-4-189.js @@ -31,6 +31,7 @@ var newObj = Object.create({}, { prop: descObj }); -assert(newObj.hasOwnProperty("prop")) -assert.sameValue(typeof(newObj.prop), "undefined"); -verifyNotWritable(newObj, "prop"); +verifyProperty(newObj, "prop", { + value: undefined, + writable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-190.js b/test/built-ins/Object/create/15.2.3.5-4-190.js index a2d96068e9b..90295605ea1 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-190.js +++ b/test/built-ins/Object/create/15.2.3.5-4-190.js @@ -27,5 +27,7 @@ var newObj = Object.create({}, { prop: descObj }); -assert.sameValue(newObj.prop, 100); -verifyNotWritable(newObj, "prop"); +verifyProperty(newObj, "prop", { + value: 100, + writable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-204.js b/test/built-ins/Object/create/15.2.3.5-4-204.js index 26bd33b2fc8..554b982d982 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-204.js +++ b/test/built-ins/Object/create/15.2.3.5-4-204.js @@ -15,6 +15,7 @@ var newObj = Object.create({}, { } }); -assert(newObj.hasOwnProperty("prop")); -assert.sameValue(typeof newObj.prop, "undefined"); -verifyNotWritable(newObj, "prop"); +verifyProperty(newObj, "prop", { + value: undefined, + writable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-205.js b/test/built-ins/Object/create/15.2.3.5-4-205.js index 62ef9311583..a6faaf9cab1 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-205.js +++ b/test/built-ins/Object/create/15.2.3.5-4-205.js @@ -15,6 +15,7 @@ var newObj = Object.create({}, { } }); -assert(newObj.hasOwnProperty("prop")); -assert.sameValue(typeof newObj.prop, "undefined"); -verifyNotWritable(newObj, "prop"); +verifyProperty(newObj, "prop", { + value: undefined, + writable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-207.js b/test/built-ins/Object/create/15.2.3.5-4-207.js index e7b26dcb0c9..5ed581bf3ba 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-207.js +++ b/test/built-ins/Object/create/15.2.3.5-4-207.js @@ -15,6 +15,7 @@ var newObj = Object.create({}, { } }); -assert(newObj.hasOwnProperty("prop")); -assert.sameValue(typeof newObj.prop, "undefined"); -verifyNotWritable(newObj, "prop"); +verifyProperty(newObj, "prop", { + value: undefined, + writable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-208.js b/test/built-ins/Object/create/15.2.3.5-4-208.js index 3934339394d..7cfd558203e 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-208.js +++ b/test/built-ins/Object/create/15.2.3.5-4-208.js @@ -15,6 +15,7 @@ var newObj = Object.create({}, { } }); -assert(newObj.hasOwnProperty("prop")); -assert.sameValue(typeof newObj.prop, "undefined"); -verifyNotWritable(newObj, "prop"); +verifyProperty(newObj, "prop", { + value: undefined, + writable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-209.js b/test/built-ins/Object/create/15.2.3.5-4-209.js index c7f0534cccc..29496e527ce 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-209.js +++ b/test/built-ins/Object/create/15.2.3.5-4-209.js @@ -15,6 +15,7 @@ var newObj = Object.create({}, { } }); -assert(newObj.hasOwnProperty("prop")); -assert.sameValue(typeof newObj.prop, "undefined"); -verifyNotWritable(newObj, "prop"); +verifyProperty(newObj, "prop", { + value: undefined, + writable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-210.js b/test/built-ins/Object/create/15.2.3.5-4-210.js index dd792fb5069..61c75df0ba5 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-210.js +++ b/test/built-ins/Object/create/15.2.3.5-4-210.js @@ -15,6 +15,7 @@ var newObj = Object.create({}, { } }); -assert(newObj.hasOwnProperty("prop")) -assert.sameValue(typeof newObj.prop, "undefined"); -verifyNotWritable(newObj, "prop"); +verifyProperty(newObj, "prop", { + value: undefined, + writable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-211.js b/test/built-ins/Object/create/15.2.3.5-4-211.js index 859704cac29..851ccaa4732 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-211.js +++ b/test/built-ins/Object/create/15.2.3.5-4-211.js @@ -15,6 +15,7 @@ var newObj = Object.create({}, { } }); -assert(newObj.hasOwnProperty("prop")); -assert.sameValue(typeof newObj.prop, "undefined") -verifyNotWritable(newObj, "prop"); +verifyProperty(newObj, "prop", { + value: undefined, + writable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-214.js b/test/built-ins/Object/create/15.2.3.5-4-214.js index 1e18925d27c..8226fe588ff 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-214.js +++ b/test/built-ins/Object/create/15.2.3.5-4-214.js @@ -17,6 +17,7 @@ var newObj = Object.create({}, { prop: descObj }); -assert(newObj.hasOwnProperty("prop")) -assert.sameValue(typeof newObj.prop, "undefined"); -verifyNotWritable(newObj, "prop"); +verifyProperty(newObj, "prop", { + value: undefined, + writable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-307.js b/test/built-ins/Object/create/15.2.3.5-4-307.js index fd79b1d4ada..52bcfe9b91e 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-307.js +++ b/test/built-ins/Object/create/15.2.3.5-4-307.js @@ -17,5 +17,6 @@ var newObj = Object.create({}, { } }); -assert(newObj.hasOwnProperty("prop")); -verifyNotWritable(newObj, "prop"); +verifyProperty(newObj, "prop", { + writable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-309.js b/test/built-ins/Object/create/15.2.3.5-4-309.js index a9143455b04..f226172d64b 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-309.js +++ b/test/built-ins/Object/create/15.2.3.5-4-309.js @@ -18,5 +18,6 @@ var newObj = Object.create({}, { } }); -assert(newObj.hasOwnProperty("prop")); -verifyNotConfigurable(newObj, "prop"); +verifyProperty(newObj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-311.js b/test/built-ins/Object/create/15.2.3.5-4-311.js index fa6f42a1ed8..bce659433d3 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-311.js +++ b/test/built-ins/Object/create/15.2.3.5-4-311.js @@ -7,6 +7,7 @@ description: > Object.create - [[Set]] is set as undefined if it is absent in accessor descriptor of one property in 'Properties' (8.12.9 step 4.b) +includes: [propertyHelper.js] ---*/ var newObj = Object.create({}, { @@ -27,19 +28,10 @@ if (newObj.prop === "verifyCreate") { verifyGet = true; } -var verifyEnumerable = false; -for (var p in newObj) { - if (p === "prop") { - verifyEnumerable = true; - } -} - -var verifyConfigurable = false; -var hasProperty = newObj.hasOwnProperty("prop"); -delete newObj.prop; -verifyConfigurable = !newObj.hasOwnProperty("prop") && hasProperty; - assert(verifySet, 'verifySet !== true'); assert(verifyGet, 'verifyGet !== true'); -assert(verifyEnumerable, 'verifyEnumerable !== true'); -assert(verifyConfigurable, 'verifyConfigurable !== true'); + +verifyProperty(newObj, "prop", { + enumerable: true, + configurable: true, +}); diff --git a/test/built-ins/Object/create/15.2.3.5-4-313.js b/test/built-ins/Object/create/15.2.3.5-4-313.js index 9ab55313b87..00c97033d32 100644 --- a/test/built-ins/Object/create/15.2.3.5-4-313.js +++ b/test/built-ins/Object/create/15.2.3.5-4-313.js @@ -18,5 +18,6 @@ var newObj = Object.create({}, { } }); -assert(newObj.hasOwnProperty("prop")); -verifyNotConfigurable(newObj, "prop"); +verifyProperty(newObj, "prop", { + configurable: false, +}); 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 d4bfc58cf34..19d3ed023cd 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 @@ -34,18 +34,18 @@ newObj = Object.create({}, { } }); -verifyEqualTo(newObj, "foo1", 200); - -verifyWritable(newObj, "foo1"); - -verifyEnumerable(newObj, "foo1"); - -verifyConfigurable(newObj, "foo1"); +verifyProperty(newObj, "foo1", { + value: 200, + writable: true, + enumerable: true, + configurable: true, +}); verifyEqualTo(newObj, "foo2", getFunc()); verifyWritable(newObj, "foo2", "setVerifyHelpProp"); -verifyEnumerable(newObj, "foo2"); - -verifyConfigurable(newObj, "foo2"); +verifyProperty(newObj, "foo2", { + enumerable: true, + configurable: true, +}); diff --git a/test/built-ins/Object/create/name.js b/test/built-ins/Object/create/name.js index 0e144913b72..39d370fad38 100644 --- a/test/built-ins/Object/create/name.js +++ b/test/built-ins/Object/create/name.js @@ -19,8 +19,9 @@ info: | includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.create.name, "create"); - -verifyNotEnumerable(Object.create, "name"); -verifyNotWritable(Object.create, "name"); -verifyConfigurable(Object.create, "name"); +verifyProperty(Object.create, "name", { + value: "create", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-138.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-138.js index 38655acf6e1..9482b07e475 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-138.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-138.js @@ -17,5 +17,6 @@ Object.defineProperties(obj, { } }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-139.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-139.js index f7f18762163..f1a1f1630dc 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-139.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-139.js @@ -17,4 +17,6 @@ Object.defineProperties(obj, { } }); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-140.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-140.js index 73ef83af8d3..e7b41761245 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-140.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-140.js @@ -17,5 +17,6 @@ Object.defineProperties(obj, { } }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-141.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-141.js index 203fa255125..bc3ca81c189 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-141.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-141.js @@ -24,5 +24,6 @@ Object.defineProperties(obj, { property: descObj }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-142.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-142.js index 43065040e48..142cf9dfa7e 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-142.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-142.js @@ -27,5 +27,6 @@ Object.defineProperties(obj, { property: descObj }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-143.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-143.js index 7c4bd1ade8c..7c24de69c36 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-143.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-143.js @@ -35,5 +35,6 @@ Object.defineProperties(obj, { property: descObj }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-144.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-144.js index 7342ee90c31..3ab473f955a 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-144.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-144.js @@ -23,5 +23,6 @@ Object.defineProperties(obj, { property: descObj }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-146.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-146.js index a3cf7d943bc..8d54aaec0c5 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-146.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-146.js @@ -31,5 +31,6 @@ Object.defineProperties(obj, { property: descObj }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-147.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-147.js index 3e314213606..312165f7a67 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-147.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-147.js @@ -35,5 +35,6 @@ Object.defineProperties(obj, { property: descObj }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-148.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-148.js index 5dcb1f2641a..5d4b788543e 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-148.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-148.js @@ -21,5 +21,6 @@ Object.defineProperties(obj, { property: descObj }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-149.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-149.js index c8726395258..02a0f1c6309 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-149.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-149.js @@ -33,5 +33,6 @@ Object.defineProperties(obj, { property: descObj }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-150.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-150.js index 63ca7a0365a..c10ca518385 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-150.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-150.js @@ -27,5 +27,6 @@ Object.defineProperties(obj, { property: descObj }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-151.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-151.js index 1a3d1598e1e..e52cdb91da7 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-151.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-151.js @@ -22,5 +22,6 @@ Object.defineProperties(obj, { property: func }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-152.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-152.js index bf2af05394b..4a61a9a7b68 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-152.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-152.js @@ -20,5 +20,6 @@ Object.defineProperties(obj, { property: arr }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-153.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-153.js index 950abea9999..d755a8ba656 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-153.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-153.js @@ -20,5 +20,6 @@ Object.defineProperties(obj, { property: str }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-154.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-154.js index 028fcbee14b..668a1f0cb7b 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-154.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-154.js @@ -20,5 +20,6 @@ Object.defineProperties(obj, { property: descObj }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-155.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-155.js index a51c6f1f45f..50a1cfc2bdd 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-155.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-155.js @@ -20,5 +20,6 @@ Object.defineProperties(obj, { property: descObj }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-156.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-156.js index deceb19f883..6353457b499 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-156.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-156.js @@ -19,5 +19,6 @@ Object.defineProperties(obj, { property: Math }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-157.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-157.js index 7e4ab1f8fa1..74413b7de62 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-157.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-157.js @@ -20,5 +20,6 @@ Object.defineProperties(obj, { property: descObj }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-158.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-158.js index c586bddf261..497c6d79953 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-158.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-158.js @@ -20,5 +20,6 @@ Object.defineProperties(obj, { property: descObj }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-159.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-159.js index d13ecf6fbb8..684be038e30 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-159.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-159.js @@ -18,5 +18,6 @@ Object.defineProperties(obj, { property: JSON }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-160.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-160.js index 517ad0fbe8e..159eed3ed7c 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-160.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-160.js @@ -20,5 +20,6 @@ Object.defineProperties(obj, { property: descObj }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-161.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-161.js index a3048ac305e..97c71db2d16 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-161.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-161.js @@ -19,8 +19,9 @@ var func = function(a, b) { property: arguments }); - assert(obj.hasOwnProperty("property")); - verifyNotWritable(obj, "property"); + verifyProperty(obj, "property", { + writable: false, + }); }; func(); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-163.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-163.js index c029c8c73f3..b0267ad27e7 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-163.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-163.js @@ -19,5 +19,6 @@ Object.defineProperties(obj, { property: this }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-164.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-164.js index 8d99816a04b..cbfb8a7db31 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-164.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-164.js @@ -17,5 +17,6 @@ Object.defineProperties(obj, { } }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-165.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-165.js index 84d38c86634..7af602a76c1 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-165.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-165.js @@ -17,5 +17,6 @@ Object.defineProperties(obj, { } }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-167.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-167.js index e3361c08045..af9f18c7d55 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-167.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-167.js @@ -17,5 +17,6 @@ Object.defineProperties(obj, { } }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-168.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-168.js index f1fb979e821..feca10a64d9 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-168.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-168.js @@ -17,5 +17,6 @@ Object.defineProperties(obj, { } }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-169.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-169.js index 9d1e031ab5a..67095ca6c2a 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-169.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-169.js @@ -17,5 +17,6 @@ Object.defineProperties(obj, { } }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-170.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-170.js index 0f0e05fe22e..8c98271e1b9 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-170.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-170.js @@ -17,5 +17,6 @@ Object.defineProperties(obj, { } }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-171.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-171.js index a61ec4f20f9..2679ef0ada1 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-171.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-171.js @@ -17,5 +17,6 @@ Object.defineProperties(obj, { } }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-174.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-174.js index a67609ccaa6..8d058b893e9 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-174.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-174.js @@ -17,5 +17,6 @@ Object.defineProperties(obj, { } }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-60.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-60.js index f8bba39187c..5c860392e41 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-60.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-60.js @@ -16,5 +16,6 @@ Object.defineProperties(obj, { prop: {} }); -assert(obj.hasOwnProperty("prop")); -verifyNotConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-63.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-63.js index a369fcef1d1..2a60eac7661 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-63.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-63.js @@ -28,5 +28,6 @@ Object.defineProperties(obj, { prop: descObj }); -assert(obj.hasOwnProperty("prop")); -verifyNotConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-64.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-64.js index f7c555bbac4..f843ebaef9d 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-64.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-64.js @@ -31,5 +31,6 @@ Object.defineProperties(obj, { prop: descObj }); -assert(obj.hasOwnProperty("prop")); -verifyNotConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-67.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-67.js index 2b6557a0aa5..a84e148ed57 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-67.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-67.js @@ -30,5 +30,6 @@ Object.defineProperties(obj, { prop: descObj }); -assert(obj.hasOwnProperty("prop")); -verifyNotConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-68.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-68.js index 45739752caa..8ff56001965 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-68.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-68.js @@ -33,6 +33,6 @@ Object.defineProperties(obj, { prop: descObj }); -assert(obj.hasOwnProperty("prop")); -verifyNotConfigurable(obj, "prop"); -assert(obj.hasOwnProperty("prop")); +verifyProperty(obj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-69.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-69.js index 3b5a9ec0315..19faa749e12 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-69.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-69.js @@ -20,5 +20,6 @@ Object.defineProperties(obj, { prop: descObj }); -assert(obj.hasOwnProperty("prop")); -verifyNotConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-70.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-70.js index 2d12bf1c49b..9670ff61712 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-70.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-70.js @@ -31,5 +31,6 @@ Object.defineProperties(obj, { prop: descObj }); -assert(obj.hasOwnProperty("prop")); -verifyNotConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-71.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-71.js index 58905fa9ee1..1d1e0b9174c 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-71.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-71.js @@ -25,5 +25,6 @@ Object.defineProperties(obj, { prop: descObj }); -assert(obj.hasOwnProperty("prop")); -verifyNotConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-85.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-85.js index 7a474b608e3..794117882b6 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-85.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-85.js @@ -17,5 +17,6 @@ Object.defineProperties(obj, { } }); -assert(obj.hasOwnProperty("property")); -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-86.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-86.js index 29ba52b31a8..136de38db09 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-86.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-86.js @@ -17,5 +17,6 @@ Object.defineProperties(obj, { } }); -assert(obj.hasOwnProperty("property")); -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-88.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-88.js index e6517a31e13..6fedc3c7faa 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-88.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-88.js @@ -17,5 +17,6 @@ Object.defineProperties(obj, { } }); -assert(obj.hasOwnProperty("property")); -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-89.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-89.js index e4641b79f05..c7fa4e257b5 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-89.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-89.js @@ -17,5 +17,6 @@ Object.defineProperties(obj, { } }); -assert(obj.hasOwnProperty("property")); -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-90.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-90.js index 0a79e78704b..3bca17bedb4 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-90.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-90.js @@ -17,5 +17,6 @@ Object.defineProperties(obj, { } }); -assert(obj.hasOwnProperty("property")); -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-91.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-91.js index d7eedac45b2..3b5ebd0b20b 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-91.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-91.js @@ -17,5 +17,6 @@ Object.defineProperties(obj, { } }); -assert(obj.hasOwnProperty("property")); -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-92.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-92.js index bba7b70651e..c340e01ddf0 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-92.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-92.js @@ -17,5 +17,6 @@ Object.defineProperties(obj, { } }); -assert(obj.hasOwnProperty("property")); -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-95.js b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-95.js index 1afd1a5985d..c97fb00ab5d 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-5-b-95.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-5-b-95.js @@ -17,5 +17,6 @@ Object.defineProperties(obj, { } }); -assert(obj.hasOwnProperty("property")); -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + configurable: false, +}); 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 55096623862..890aabeca95 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 @@ -25,10 +25,10 @@ Object.defineProperties(obj, { configurable: false } }); -verifyEqualTo(obj, "foo", 200); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 200, + writable: false, + enumerable: false, + configurable: false, +}); 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 78710b6c153..d22ea3c0ac3 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 @@ -41,6 +41,7 @@ verifyEqualTo(obj, "foo", get_func2()); verifyWritable(obj, "foo", "setVerifyHelpProp"); -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: true, + configurable: true, +}); 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 b1a52361c53..477018e252f 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 @@ -34,6 +34,7 @@ Object.defineProperties(obj, { }); verifyWritable(obj, "foo", "setVerifyHelpProp"); -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: true, + configurable: true, +}); 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 7636e1ed31a..522af46b9b1 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 @@ -36,6 +36,7 @@ verifyEqualTo(obj, "foo", get_func()); verifyWritable(obj, "foo", "setVerifyHelpProp"); -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: true, + configurable: true, +}); 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 ee6c4afaf85..38c01b5a2a8 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 @@ -41,6 +41,7 @@ verifyEqualTo(obj, "foo", get_func()); verifyWritable(obj, "foo", "setVerifyHelpProp"); -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: true, + configurable: true, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-105.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-105.js index 334206b66e5..ccef0b6d866 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-105.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-105.js @@ -6,6 +6,7 @@ es5id: 15.2.3.7-6-a-105 description: > Object.defineProperties - 'P' is accessor property, P.[[Set]] is present and properties.[[Set]] is undefined (8.12.9 step 12) +includes: [propertyHelper.js] ---*/ var obj = {}; @@ -31,7 +32,6 @@ Object.defineProperties(obj, { } }); -var hasProperty = obj.hasOwnProperty("property"); var verifyGet = false; verifyGet = (obj.property === 10); @@ -39,19 +39,11 @@ var verifySet = false; var desc = Object.getOwnPropertyDescriptor(obj, "property"); verifySet = (typeof desc.set === 'undefined'); -var verifyEnumerable = false; -for (var p in obj) { - if (p === "property") { - verifyEnumerable = true; - } -} - -var verifyConfigurable = false; -delete obj.property; -verifyConfigurable = obj.hasOwnProperty("property"); +verifyProperty(obj, "property", { + enumerable: true, + configurable: true, +}); -assert(hasProperty, 'hasProperty !== true'); assert(verifyGet, 'verifyGet !== true'); assert(verifySet, 'verifySet !== true'); -assert(verifyEnumerable, 'verifyEnumerable !== true'); -assert.sameValue(verifyConfigurable, false, 'verifyConfigurable'); + 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 7f7efb05afb..ec209a8d677 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 @@ -36,6 +36,7 @@ verifyEqualTo(obj, "foo", get_func()); verifyWritable(obj, "foo", "setVerifyHelpProp"); -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: true, + configurable: true, +}); 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 36387ff35d7..a93563c41dc 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 @@ -36,6 +36,7 @@ verifyEqualTo(obj, "foo", get_func()); verifyWritable(obj, "foo", "setVerifyHelpProp"); -verifyNotEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: false, + configurable: true, +}); 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 5f19489b079..df6a8ddc721 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 @@ -36,6 +36,7 @@ verifyEqualTo(obj, "foo", get_func()); verifyWritable(obj, "foo", "setVerifyHelpProp"); -verifyEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: true, + configurable: false, +}); 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 1eb1ff3420f..70481d005d0 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 @@ -44,6 +44,7 @@ verifyEqualTo(obj, "foo", get_func2()); verifyWritable(obj, "foo", "setVerifyHelpProp"); -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: false, + configurable: false, +}); 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 70616a1a9c7..8a17cb48239 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 @@ -36,17 +36,19 @@ var properties = { }; Object.defineProperties(obj, properties); -verifyEqualTo(obj, "foo1", 200); -verifyWritable(obj, "foo1"); +verifyProperty(obj, "foo1", { + value: 200, + writable: true, + enumerable: true, + configurable: true, +}); -verifyEnumerable(obj, "foo1"); - -verifyConfigurable(obj, "foo1"); verifyEqualTo(obj, "foo2", get_func()); verifyWritable(obj, "foo2", "setVerifyHelpProp"); -verifyEnumerable(obj, "foo2"); - -verifyConfigurable(obj, "foo2"); +verifyProperty(obj, "foo2", { + enumerable: true, + configurable: true, +}); 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 index 1b69a370d5e..d8cf0b6b19c 100644 --- 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 @@ -24,6 +24,7 @@ verifyEqualTo(arr, "length", 0); verifyWritable(arr, "length", "length", 1); -verifyNotEnumerable(arr, "length"); - -verifyNotConfigurable(arr, "length"); +verifyProperty(arr, "length", { + enumerable: false, + configurable: false, +}); 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 5e203a7b6ab..62c9534a108 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 @@ -26,6 +26,7 @@ verifyEqualTo(arr, "length", 2); verifyWritable(arr, "length", "length", 5); -verifyNotEnumerable(arr, "length"); - -verifyNotConfigurable(arr, "length"); +verifyProperty(arr, "length", { + enumerable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-115.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-115.js index e5b53672725..0d78958e539 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-115.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-115.js @@ -24,8 +24,9 @@ Object.defineProperties(arr, { assert.sameValue(arr.length, 0); arr.length = 2; -assert.sameValue(arr.length, 2); -verifyNotEnumerable(arr, "length"); - -verifyNotConfigurable(arr, "length"); +verifyProperty(arr, "length", { + value: 2, + enumerable: false, + configurable: false, +}); 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 1528a8698e6..b954d830cbc 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 @@ -26,16 +26,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(fun, "prop", 11); - - verifyNotWritable(fun, "prop"); - - verifyNotEnumerable(fun, "prop"); - - verifyNotConfigurable(fun, "prop"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(fun, "prop", { + value: 11, + writable: false, + enumerable: false, + configurable: false, +}); 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 6c5edbb4096..c08068d1f90 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 @@ -19,10 +19,9 @@ Object.defineProperties(arr, { } }); -verifyEqualTo(arr, "length", 0); - -verifyNotWritable(arr, "length"); - -verifyNotEnumerable(arr, "length"); - -verifyNotConfigurable(arr, "length"); +verifyProperty(arr, "length", { + value: 0, + writable: false, + enumerable: false, + configurable: false, +}); 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 f0fcc73b507..385e96ffc3e 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 @@ -25,16 +25,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arr, "prop", 11); - - verifyNotWritable(arr, "prop"); - - verifyNotEnumerable(arr, "prop"); - - verifyNotConfigurable(arr, "prop"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "prop", { + value: 11, + writable: false, + enumerable: false, + configurable: false, +}); 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 624ae865350..8489edad9af 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 @@ -25,16 +25,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(str, "prop", 11); - - verifyNotWritable(str, "prop"); - - verifyNotEnumerable(str, "prop"); - - verifyNotConfigurable(str, "prop"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(str, "prop", { + value: 11, + writable: false, + enumerable: false, + configurable: false, +}); 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 be64d29528a..49661f89b1d 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 @@ -26,16 +26,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "prop", 11); - - verifyNotWritable(obj, "prop"); - - verifyNotEnumerable(obj, "prop"); - - verifyNotConfigurable(obj, "prop"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "prop", { + value: 11, + writable: false, + enumerable: false, + configurable: false, +}); 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 085080bf975..863e951f6b6 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 @@ -26,16 +26,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "prop", 11); - - verifyNotWritable(obj, "prop"); - - verifyNotEnumerable(obj, "prop"); - - verifyNotConfigurable(obj, "prop"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "prop", { + value: 11, + writable: false, + enumerable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-163.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-163.js index c84659c6193..92f115ce35e 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-163.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-163.js @@ -24,8 +24,10 @@ Object.defineProperties(arr, { }); //try to overwrite length value of arr -verifyNotWritable(arr, "length") +verifyProperty(arr, "length", { + value: 1, + writable: false, +}); assert(!arr.hasOwnProperty("1")); -assert.sameValue(arr.length, 1); assert.sameValue(arr[0], 0); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-164.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-164.js index eb4f1f84c30..71daa62a447 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-164.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-164.js @@ -31,6 +31,9 @@ try { throw new Test262Error("expected to throw TypeError") } catch (e) { assert(e instanceof TypeError); - assert.sameValue(arr.length, 2); - verifyNotWritable(arr, "length"); } + +verifyProperty(arr, "length", { + value: 2, + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-176.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-176.js index 007c3758f5f..4433fcb7f49 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-176.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-176.js @@ -31,9 +31,14 @@ try { throw new Test262Error("Expected to throw TypeError"); } catch (e) { assert(e instanceof TypeError); - assert(arr.hasOwnProperty("1")); - verifyNotWritable(arr, "length"); - assert.sameValue(arr[0], 0); - assert.sameValue(arr[1], 1); - assert.sameValue(arr.length, 2) } + +assert(arr.hasOwnProperty("1")); + +verifyProperty(arr, "length", { + value: 2, + writable: false, +}); + +assert.sameValue(arr[0], 0); +assert.sameValue(arr[1], 1); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-177.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-177.js index 6af47443214..22b4a6a0fe9 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-177.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-177.js @@ -24,6 +24,9 @@ Object.defineProperties(arr, { }); assert(!arr.hasOwnProperty("1")); -assert.sameValue(arr.length, 0); assert(!arr.hasOwnProperty("0")); -verifyNotWritable(arr, "length"); + +verifyProperty(arr, "length", { + value: 0, + writable: false, +}); 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 6211c048052..74e15667952 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 @@ -26,16 +26,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "prop", 11); - - verifyNotWritable(obj, "prop"); - - verifyNotEnumerable(obj, "prop"); - - verifyNotConfigurable(obj, "prop"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "prop", { + value: 11, + writable: false, + enumerable: false, + configurable: false, +}); 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 262c39b4266..4ac7e8e1c5a 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 @@ -26,16 +26,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "prop", 11); - - verifyNotWritable(obj, "prop"); - - verifyNotEnumerable(obj, "prop"); - - verifyNotConfigurable(obj, "prop"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "prop", { + value: 11, + writable: false, + enumerable: false, + configurable: false, +}); 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 13ef4b2a952..cc98343f6f8 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 @@ -19,10 +19,9 @@ Object.defineProperties(arr, { } }); -verifyEqualTo(arr, "0", undefined); - -verifyNotWritable(arr, "0"); - -verifyEnumerable(arr, "0"); - -verifyNotConfigurable(arr, "0"); +verifyProperty(arr, "0", { + value: undefined, + writable: false, + enumerable: true, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-197.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-197.js index d2a90405abe..ede3e81c303 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-197.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-197.js @@ -24,6 +24,7 @@ Object.defineProperties(arr, { } }); -assert(arr.hasOwnProperty("0")); -verifyNotWritable(arr, "0"); -assert.sameValue(arr[0], 1001); +verifyProperty(arr, "0", { + value: 1001, + writable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-199.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-199.js index 2800e7da78b..0dcef13f778 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-199.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-199.js @@ -24,6 +24,6 @@ Object.defineProperties(arr, { } }); -assert(arr.hasOwnProperty("0")); -verifyNotConfigurable(arr, "0"); -assert(arr.hasOwnProperty("0")); +verifyProperty(arr, "0", { + configurable: false, +}); 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 037a2eba390..3e0ed0a32da 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 @@ -26,10 +26,9 @@ Object.defineProperties(obj, { } }); -verifyEqualTo(obj, "prop", 12); - -verifyNotWritable(obj, "prop"); - -verifyNotEnumerable(obj, "prop"); - -verifyConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + value: 12, + writable: false, + enumerable: false, + configurable: true, +}); 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 5a26d73f9cc..58c71359bed 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 @@ -21,10 +21,9 @@ Object.defineProperties(arr, { } }); -verifyEqualTo(arr, "0", 1001); - -verifyNotWritable(arr, "0"); - -verifyNotEnumerable(arr, "0"); - -verifyNotConfigurable(arr, "0"); +verifyProperty(arr, "0", { + value: 1001, + writable: false, + enumerable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-202.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-202.js index febd6c62a30..b15292b2e68 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-202.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-202.js @@ -8,6 +8,7 @@ description: > named property, 'P' property doesn't exist in 'O', test [[Set]] of 'P' property in 'Attributes' is set as undefined value if [[Set]] is absent in accessor descriptor 'desc' (15.4.5.1 step 4.c) +includes: [propertyHelper.js] ---*/ var arr = []; @@ -23,22 +24,12 @@ Object.defineProperties(arr, { } }); -var verifyEnumerable = false; -for (var i in arr) { - if (i === "0" && arr.hasOwnProperty("0")) { - verifyEnumerable = true; - } -} - var desc = Object.getOwnPropertyDescriptor(arr, "0"); -var propertyDefineCorrect = arr.hasOwnProperty("0"); -var verifyConfigurable = false; -delete arr[0]; -verifyConfigurable = arr.hasOwnProperty("0"); +verifyProperty(arr, "0", { + enumerable: true, + configurable: true, +}); assert.sameValue(typeof desc.set, "undefined", 'typeof desc.set'); -assert(propertyDefineCorrect, 'propertyDefineCorrect !== true'); assert.sameValue(desc.get, getFunc, 'desc.get'); -assert.sameValue(verifyConfigurable, false, 'verifyConfigurable'); -assert(verifyEnumerable, 'verifyEnumerable !== true'); 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 4a00ccd71b9..3629bd391cc 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 @@ -39,4 +39,6 @@ if (arr.verifySetter !== 101) { throw new Test262Error('Expected arr.verifySetter === 101, actually ' + arr.verifySetter); } -verifyNotConfigurable(arr, 0); +verifyProperty(arr, "0", { + configurable: false, +}); 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 e1ebc8eac20..30408223984 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 @@ -42,6 +42,7 @@ verifyEqualTo(arr, "0", getFun()); verifyWritable(arr, "0", "setVerifyHelpProp"); -verifyNotEnumerable(arr, "0"); - -verifyNotConfigurable(arr, "0"); +verifyProperty(arr, "0", { + enumerable: false, + configurable: false, +}); 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 510fbad6e94..65cd19fd245 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 @@ -18,10 +18,10 @@ arr[0] = 101; // default value of attributes: writable: true, configurable: true Object.defineProperties(arr, { "0": {} }); -verifyEqualTo(arr, "0", 101); -verifyWritable(arr, "0"); - -verifyEnumerable(arr, "0"); - -verifyConfigurable(arr, "0"); +verifyProperty(arr, "0", { + value: 101, + writable: true, + enumerable: true, + configurable: true, +}); 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 9aefa195cf7..22b82e63309 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 @@ -34,6 +34,7 @@ verifyEqualTo(arr, "0", get_func()); verifyWritable(arr, "0", "setVerifyHelpProp"); -verifyEnumerable(arr, "0"); - -verifyConfigurable(arr, "0"); +verifyProperty(arr, "0", { + enumerable: true, + configurable: true, +}); 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 79607b34a43..27190ac105d 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 @@ -24,10 +24,10 @@ Object.defineProperties(arr, { } }); -verifyEqualTo(arr, "0", 100); - -verifyWritable(arr, "0"); - -verifyEnumerable(arr, "0"); - -verifyConfigurable(arr, "0"); +verifyProperty(arr, "0", { + value: 100, + writable: true, + enumerable: true, + configurable: true, +}); + 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 2620f9b4f72..7ab154c0870 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 @@ -38,6 +38,7 @@ verifyEqualTo(arr, "0", get_func()); verifyWritable(arr, "0", "setVerifyHelpProp"); -verifyEnumerable(arr, "0"); - -verifyConfigurable(arr, "0"); +verifyProperty(arr, "0", { + enumerable: true, + configurable: true, +}); 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 56cf493bb85..44f4be6fa22 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 @@ -26,16 +26,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "prop", 11); - - verifyNotWritable(obj, "prop"); - - verifyNotEnumerable(obj, "prop"); - - verifyNotConfigurable(obj, "prop"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "prop", { + value: 11, + writable: false, + enumerable: false, + configurable: false, +}); 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 8eb9e5d4128..7010c59d15d 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 @@ -22,10 +22,10 @@ Object.defineProperties(arr, { value: undefined } }); -verifyEqualTo(arr, "0", undefined); -verifyNotWritable(arr, "0"); - -verifyNotEnumerable(arr, "0"); - -verifyNotConfigurable(arr, "0"); +verifyProperty(arr, "0", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, +}); 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 f282f7cb3b0..c7b9b56ac81 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 @@ -21,10 +21,10 @@ Object.defineProperties(arr, { value: null } }); -verifyEqualTo(arr, "0", null); -verifyNotWritable(arr, "0"); - -verifyNotEnumerable(arr, "0"); - -verifyNotConfigurable(arr, "0"); +verifyProperty(arr, "0", { + value: null, + writable: false, + enumerable: false, + configurable: false, +}); 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 6414e5e35a3..0736ad79ff7 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 @@ -22,10 +22,9 @@ Object.defineProperties(arr, { } }); -verifyEqualTo(arr, "0", NaN); - -verifyNotWritable(arr, "0"); - -verifyNotEnumerable(arr, "0"); - -verifyNotConfigurable(arr, "0"); +verifyProperty(arr, "0", { + value: NaN, + writable: false, + enumerable: false, + configurable: false, +}); 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 a925936e721..f91fb7c46c3 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 @@ -24,16 +24,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arr, "0", -0); - - verifyNotWritable(arr, "0"); - - verifyNotEnumerable(arr, "0"); - - verifyNotConfigurable(arr, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "0", { + value: -0, + writable: false, + enumerable: false, + configurable: false, +}); 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 b44d5b8ed33..fce477b9259 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 @@ -24,16 +24,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arr, "0", +0); - - verifyNotWritable(arr, "0"); - - verifyNotEnumerable(arr, "0"); - - verifyNotConfigurable(arr, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "0", { + value: +0, + writable: false, + enumerable: false, + configurable: false, +}); 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 98155875e40..6d6f2d788ce 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 @@ -22,10 +22,10 @@ Object.defineProperties(arr, { value: 101 } }); -verifyEqualTo(arr, "0", 101); -verifyNotWritable(arr, "0"); - -verifyNotEnumerable(arr, "0"); - -verifyNotConfigurable(arr, "0"); +verifyProperty(arr, "0", { + value: 101, + writable: false, + enumerable: false, + configurable: false, +}); 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 543f09d2330..7dd60ff2183 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 @@ -22,10 +22,10 @@ Object.defineProperties(arr, { value: "abcd" } }); -verifyEqualTo(arr, "0", "abcd"); -verifyNotWritable(arr, "0"); - -verifyNotEnumerable(arr, "0"); - -verifyNotConfigurable(arr, "0"); +verifyProperty(arr, "0", { + value: "abcd", + writable: false, + enumerable: false, + configurable: false, +}); 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 a518691b624..721323a49fd 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 @@ -22,10 +22,10 @@ Object.defineProperties(arr, { value: true } }); -verifyEqualTo(arr, "0", true); -verifyNotWritable(arr, "0"); - -verifyNotEnumerable(arr, "0"); - -verifyNotConfigurable(arr, "0"); +verifyProperty(arr, "0", { + value: true, + writable: false, + enumerable: false, + configurable: false, +}); 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 5d44c383418..5f6984aa5d1 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 @@ -27,10 +27,10 @@ var properties = { }; Object.defineProperties(arr, properties); -verifyEqualTo(arr, "0", obj1); -verifyNotWritable(arr, "0"); - -verifyNotEnumerable(arr, "0"); - -verifyNotConfigurable(arr, "0"); +verifyProperty(arr, "0", { + value: obj1, + writable: false, + enumerable: false, + configurable: false, +}); 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 35ac3a739fd..986efa9697e 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 @@ -21,10 +21,10 @@ Object.defineProperties(arr, { writable: true } }); -verifyEqualTo(arr, "0", undefined); -verifyWritable(arr, "0"); - -verifyNotEnumerable(arr, "0"); - -verifyNotConfigurable(arr, "0"); +verifyProperty(arr, "0", { + value: undefined, + writable: true, + enumerable: false, + configurable: false, +}); 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 4f86b5e1372..79dcf7500b6 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 @@ -22,10 +22,10 @@ Object.defineProperties(arr, { writable: false } }); -verifyEqualTo(arr, "0", undefined); -verifyNotWritable(arr, "0"); - -verifyNotEnumerable(arr, "0"); - -verifyConfigurable(arr, "0"); +verifyProperty(arr, "0", { + value: undefined, + writable: false, + enumerable: false, + configurable: true, +}); 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 7644225b81f..0d943c1d165 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 @@ -28,6 +28,7 @@ Object.defineProperties(arr, { }); verifyEqualTo(arr, "0", get_func()); -verifyNotEnumerable(arr, "0"); - -verifyNotConfigurable(arr, "0"); +verifyProperty(arr, "0", { + enumerable: false, + configurable: false, +}); 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 6e26cc00418..1c0d91f73e3 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 @@ -28,6 +28,7 @@ Object.defineProperties(arr, { }); verifyWritable(arr, "0", "setVerifyHelpProp"); -verifyNotEnumerable(arr, "0"); - -verifyNotConfigurable(arr, "0"); +verifyProperty(arr, "0", { + enumerable: false, + configurable: false, +}); 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 6bcd5d2b8e3..f77cdf6a812 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 @@ -21,10 +21,10 @@ Object.defineProperties(arr, { enumerable: true } }); -verifyEqualTo(arr, "0", undefined); -verifyNotWritable(arr, "0"); - -verifyEnumerable(arr, "0"); - -verifyNotConfigurable(arr, "0"); +verifyProperty(arr, "0", { + value: undefined, + writable: false, + enumerable: true, + configurable: false, +}); 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 1392677bcbc..5fec4b0ee9a 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 @@ -22,10 +22,10 @@ Object.defineProperties(arr, { enumerable: false } }); -verifyEqualTo(arr, "0", undefined); -verifyNotWritable(arr, "0"); - -verifyNotEnumerable(arr, "0"); - -verifyConfigurable(arr, "0"); +verifyProperty(arr, "0", { + value: undefined, + writable: false, + enumerable: false, + configurable: true, +}); 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 05a09c6c6ca..89f60bfe7b1 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 @@ -21,10 +21,10 @@ Object.defineProperties(arr, { configurable: true } }); -verifyEqualTo(arr, "0", undefined); -verifyNotWritable(arr, "0"); - -verifyNotEnumerable(arr, "0"); - -verifyConfigurable(arr, "0"); +verifyProperty(arr, "0", { + value: undefined, + writable: false, + enumerable: false, + configurable: true, +}); 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 dae3f933e69..30e6c563696 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 @@ -21,10 +21,10 @@ Object.defineProperties(arr, { configurable: false } }); -verifyEqualTo(arr, "0", undefined); -verifyNotWritable(arr, "0"); - -verifyNotEnumerable(arr, "0"); - -verifyNotConfigurable(arr, "0"); +verifyProperty(arr, "0", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, +}); 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 4ba4881d5d9..031423ce321 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 @@ -27,16 +27,14 @@ try { } }); } catch (e) { - verifyEqualTo(arr, "1", 3); - - verifyNotWritable(arr, "1"); - - verifyNotEnumerable(arr, "1"); - - verifyNotConfigurable(arr, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "1", { + value: 3, + writable: false, + enumerable: false, + configurable: false, +}); 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 792f72d878a..4ee594a6091 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 @@ -31,16 +31,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arr, "1", 3); - - verifyNotWritable(arr, "1"); - - verifyNotEnumerable(arr, "1"); - - verifyNotConfigurable(arr, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "1", { + value: 3, + writable: false, + enumerable: false, + configurable: false, +}); 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 1269a27715e..c7ab40e36c8 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 @@ -35,12 +35,12 @@ try { } catch (e) { verifyWritable(arr, "1", "setVerifyHelpProp"); - verifyNotEnumerable(arr, "1"); - - verifyNotConfigurable(arr, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "1", { + enumerable: false, + configurable: false, +}); 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 ad7611baffa..c7faeb60e2d 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 @@ -27,16 +27,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arr, "1", 3); - - verifyNotWritable(arr, "1"); - - verifyNotEnumerable(arr, "1"); - - verifyNotConfigurable(arr, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "1", { + value: 3, + writable: false, + enumerable: false, + configurable: false, +}); 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 65eab1859c1..5dad8838335 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 @@ -27,6 +27,7 @@ Object.defineProperties(arr, { verifyWritable(arr, "1", "setVerifyHelpProp"); -verifyEnumerable(arr, "1"); - -verifyConfigurable(arr, "1"); +verifyProperty(arr, "1", { + enumerable: true, + configurable: true, +}); 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 03d8e1cfd46..3f51a3c74be 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 @@ -28,10 +28,9 @@ Object.defineProperties(arr, { } }); -verifyEqualTo(arr, "1", 12); - -verifyNotWritable(arr, "1"); - -verifyNotEnumerable(arr, "1"); - -verifyConfigurable(arr, "1"); +verifyProperty(arr, "1", { + value: 12, + writable: false, + enumerable: false, + configurable: true, +}); 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 32191889e11..6c172f41a17 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 @@ -30,16 +30,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arr, "1", undefined); - - verifyNotWritable(arr, "1"); - - verifyNotEnumerable(arr, "1"); - - verifyNotConfigurable(arr, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "1", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, +}); 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 ceb01672277..07f7991d3b8 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 @@ -32,16 +32,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arr, "1", 3); - - verifyNotWritable(arr, "1"); - - verifyNotEnumerable(arr, "1"); - - verifyNotConfigurable(arr, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "1", { + value: 3, + writable: false, + enumerable: false, + configurable: false, +}); 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 61e29220e90..0ef8a7bcd5a 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 @@ -26,16 +26,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arr, "1", +0); - - verifyNotWritable(arr, "1"); - - verifyNotEnumerable(arr, "1"); - - verifyNotConfigurable(arr, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "1", { + value: +0, + writable: false, + enumerable: false, + configurable: false, +}); 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 66139db54bc..874979ac0e4 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 @@ -27,16 +27,14 @@ try { throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arr, "1", -0); - - verifyNotWritable(arr, "1"); - - verifyNotEnumerable(arr, "1"); - - verifyNotConfigurable(arr, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "1", { + value: -0, + writable: false, + enumerable: false, + configurable: false, +}); 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 23ab2ffb3b3..d08a50c5cad 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 @@ -28,16 +28,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arr, "1", 12); - - verifyNotWritable(arr, "1"); - - verifyNotEnumerable(arr, "1"); - - verifyNotConfigurable(arr, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "1", { + value: 12, + writable: false, + enumerable: false, + configurable: false, +}); 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 4a16a4df461..b1efb78f990 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 @@ -27,16 +27,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arr, "1", "abcd"); - - verifyNotWritable(arr, "1"); - - verifyNotEnumerable(arr, "1"); - - verifyNotConfigurable(arr, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "1", { + value: "abcd", + writable: false, + enumerable: false, + configurable: false, +}); 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 698cea70dd1..fe5a7ee4808 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 @@ -28,16 +28,14 @@ try { throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arr, "1", true); - - verifyNotWritable(arr, "1"); - - verifyNotEnumerable(arr, "1"); - - verifyNotConfigurable(arr, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "1", { + value: true, + writable: false, + enumerable: false, + configurable: false, +}); 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 47298404e79..ff1c0a7d4ac 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 @@ -24,12 +24,11 @@ Object.defineProperties(this, { } }); -verifyEqualTo(this, "prop", 12); - -verifyWritable(this, "prop"); - -verifyEnumerable(this, "prop"); - -verifyConfigurable(this, "prop"); +verifyProperty(this, "prop", { + value: 12, + writable: true, + enumerable: true, + configurable: true, +}); delete this.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 c10e41ba8b3..f12d48c721d 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 @@ -34,16 +34,14 @@ try { throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arr, "1", obj1); - - verifyNotWritable(arr, "1"); - - verifyNotEnumerable(arr, "1"); - - verifyNotConfigurable(arr, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "1", { + value: obj1, + writable: false, + enumerable: false, + configurable: false, +}); 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 f2cde48b8b8..6b0d7f779ce 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 @@ -34,12 +34,12 @@ try { } catch (e) { verifyWritable(arr, "1", "setVerifyHelpProp"); - verifyNotEnumerable(arr, "1"); - - verifyNotConfigurable(arr, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "1", { + enumerable: false, + configurable: false, +}); 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 1fe4e44ae7b..7bebac27aa5 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 @@ -33,12 +33,12 @@ try { } catch (e) { verifyWritable(arr, "1", "setVerifyHelpProp"); - verifyNotEnumerable(arr, "1"); - - verifyNotConfigurable(arr, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "1", { + enumerable: false, + configurable: false, +}); 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 e9e5140eb41..92f4812ede0 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 @@ -25,6 +25,7 @@ Object.defineProperties(arr, { } }); -verifyNotEnumerable(arr, "1"); - -verifyNotConfigurable(arr, "1"); +verifyProperty(arr, "1", { + enumerable: false, + configurable: false, +}); 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 90fff2b203b..69c2fa84a2b 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 @@ -36,12 +36,12 @@ try { } catch (e) { verifyEqualTo(arr, "1", get_fun()); - verifyNotEnumerable(arr, "1"); - - verifyNotConfigurable(arr, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "1", { + enumerable: false, + configurable: false, +}); 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 fbc583fa37c..b053b5cf3e7 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 @@ -32,12 +32,12 @@ try { } catch (e) { verifyEqualTo(arr, "1", get_fun()); - verifyNotEnumerable(arr, "1"); - - verifyNotConfigurable(arr, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "1", { + enumerable: false, + configurable: false, +}); 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 a4f6b477ded..343a00690e1 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 @@ -26,6 +26,7 @@ Object.defineProperties(arr, { } }); -verifyNotEnumerable(arr, "1"); - -verifyNotConfigurable(arr, "1"); +verifyProperty(arr, "1", { + enumerable: false, + configurable: false, +}); 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 e80d3aae019..9d4895f1f0a 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 @@ -19,10 +19,10 @@ Object.defineProperties(arr, { value: 36 } }); -verifyEqualTo(arr, "0", 36); -verifyWritable(arr, "0"); - -verifyEnumerable(arr, "0"); - -verifyConfigurable(arr, "0"); +verifyProperty(arr, "0", { + value: 36, + writable: true, + enumerable: true, + configurable: true, +}); 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 5d0431684c2..b632325b352 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 @@ -19,10 +19,10 @@ Object.defineProperties(arr, { value: undefined } }); -verifyEqualTo(arr, "0", undefined); -verifyWritable(arr, "0"); - -verifyEnumerable(arr, "0"); - -verifyConfigurable(arr, "0"); +verifyProperty(arr, "0", { + value: undefined, + writable: true, + enumerable: true, + configurable: true, +}); 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 25b2ca47fcb..dc6b05716ef 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 @@ -19,10 +19,10 @@ Object.defineProperties(arr, { value: 12 } }); -verifyEqualTo(arr, "0", 12); -verifyWritable(arr, "0"); - -verifyEnumerable(arr, "0"); - -verifyConfigurable(arr, "0"); +verifyProperty(arr, "0", { + value: 12, + writable: true, + enumerable: true, + configurable: true, +}); 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 0cfd563b553..6db4b0b1987 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 @@ -19,10 +19,10 @@ Object.defineProperties(arr, { writable: false } }); -verifyEqualTo(arr, "0", 100); -verifyNotWritable(arr, "0"); - -verifyEnumerable(arr, "0"); - -verifyConfigurable(arr, "0"); +verifyProperty(arr, "0", { + value: 100, + writable: false, + enumerable: true, + configurable: true, +}); 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 bc07d4e5259..48d26007578 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 @@ -19,10 +19,10 @@ Object.defineProperties(arr, { enumerable: false } }); -verifyEqualTo(arr, "0", 12); -verifyWritable(arr, "0"); - -verifyNotEnumerable(arr, "0"); - -verifyConfigurable(arr, "0"); +verifyProperty(arr, "0", { + value: 12, + writable: true, + enumerable: false, + configurable: true, +}); 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 5d462269c3a..2123ca898f3 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 @@ -19,10 +19,10 @@ Object.defineProperties(arr, { configurable: false } }); -verifyEqualTo(arr, "0", 12); -verifyWritable(arr, "0"); - -verifyEnumerable(arr, "0"); - -verifyNotConfigurable(arr, "0"); +verifyProperty(arr, "0", { + value: 12, + writable: true, + enumerable: true, + configurable: false, +}); 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 34fafda67f7..f0c37aca5c9 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 @@ -21,10 +21,10 @@ Object.defineProperties(arr, { configurable: false } }); -verifyEqualTo(arr, "0", 36); -verifyNotWritable(arr, "0"); - -verifyEnumerable(arr, "0"); - -verifyNotConfigurable(arr, "0"); +verifyProperty(arr, "0", { + value: 36, + writable: false, + enumerable: true, + configurable: false, +}); 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 930ca2baaf7..1a042c3f450 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 @@ -32,6 +32,7 @@ Object.defineProperties(arr, { }); verifyEqualTo(arr, "0", get_fun()); -verifyNotEnumerable(arr, "0"); - -verifyConfigurable(arr, "0"); +verifyProperty(arr, "0", { + enumerable: false, + configurable: true, +}); 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 10d56858528..2f70e406e32 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 @@ -26,6 +26,8 @@ Object.defineProperties(arr, { get: undefined } }); -verifyNotEnumerable(arr, "0"); -verifyConfigurable(arr, "0"); +verifyProperty(arr, "0", { + enumerable: false, + configurable: true, +}); 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 c71b8b28c30..863edc518fa 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 @@ -30,6 +30,7 @@ Object.defineProperties(arr, { }); verifyEqualTo(arr, "0", get_fun()); -verifyNotEnumerable(arr, "0"); - -verifyConfigurable(arr, "0"); +verifyProperty(arr, "0", { + enumerable: false, + configurable: true, +}); 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 7ef40227699..4caf1bdbb14 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 @@ -30,6 +30,7 @@ Object.defineProperties(arr, { }); verifyWritable(arr, "0", "setVerifyHelpProp"); -verifyNotEnumerable(arr, "0"); - -verifyConfigurable(arr, "0"); +verifyProperty(arr, "0", { + enumerable: false, + configurable: true, +}); 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 ebe68bdd9f7..126f6f2b520 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 @@ -24,6 +24,8 @@ Object.defineProperties(arr, { set: undefined } }); -verifyNotEnumerable(arr, "0"); -verifyConfigurable(arr, "0"); +verifyProperty(arr, "0", { + enumerable: false, + configurable: true, +}); 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 bfc6e92ee1e..4d56a5ef23b 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 @@ -29,6 +29,7 @@ Object.defineProperties(arr, { }); verifyWritable(arr, "0", "setVerifyHelpProp"); -verifyNotEnumerable(arr, "0"); - -verifyConfigurable(arr, "0"); +verifyProperty(arr, "0", { + enumerable: false, + configurable: true, +}); 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 cef2a2c89b9..6cf536a586c 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 @@ -30,6 +30,7 @@ Object.defineProperties(arr, { }); verifyWritable(arr, "0", "setVerifyHelpProp"); -verifyNotEnumerable(arr, "0"); - -verifyConfigurable(arr, "0"); +verifyProperty(arr, "0", { + enumerable: false, + configurable: true, +}); 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 95d0592bf2f..d74f8e19e71 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 @@ -29,6 +29,7 @@ Object.defineProperties(arr, { }); verifyWritable(arr, "0", "setVerifyHelpProp"); -verifyNotEnumerable(arr, "0"); - -verifyNotConfigurable(arr, "0"); +verifyProperty(arr, "0", { + enumerable: false, + configurable: false, +}); 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 89c37c33c27..9679511943c 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 @@ -41,6 +41,7 @@ verifyEqualTo(arr, "0", get_fun()); verifyWritable(arr, "0", "setVerifyHelpProp"); -verifyNotEnumerable(arr, "0"); - -verifyNotConfigurable(arr, "0"); +verifyProperty(arr, "0", { + enumerable: false, + configurable: false, +}); 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 cbce8d5bf7b..32ae083c991 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 @@ -22,13 +22,13 @@ Object.defineProperties(arr, { configurable: true } }); -verifyEqualTo(arr, "property", 12); -verifyWritable(arr, "property"); - -verifyEnumerable(arr, "property"); - -verifyConfigurable(arr, "property"); +verifyProperty(arr, "property", { + value: 12, + writable: true, + enumerable: true, + configurable: true, +}); if (arr.length !== 0) { throw new Test262Error('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 f94f5f1a644..687eea3d242 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 @@ -33,9 +33,10 @@ verifyEqualTo(arr, "property", get_fun()); verifyWritable(arr, "property", "setVerifyHelpProp"); -verifyEnumerable(arr, "property"); - -verifyConfigurable(arr, "property"); +verifyProperty(arr, "property", { + enumerable: true, + configurable: true, +}); if (arr.length !== 0) { throw new Test262Error('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 7c9b38e2a8d..bdcc4b608aa 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 @@ -38,6 +38,7 @@ verifyEqualTo(arr, "property", get_fun()); verifyWritable(arr, "property", "verifySetFun"); -verifyNotEnumerable(arr, "property"); - -verifyConfigurable(arr, "property"); +verifyProperty(arr, "property", { + enumerable: false, + configurable: true, +}); 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 d30054d9b32..806bf6a0a84 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 @@ -21,13 +21,13 @@ Object.defineProperties(arr, { configurable: false } }); -verifyEqualTo(arr, "property", 12); -verifyNotWritable(arr, "property"); - -verifyNotEnumerable(arr, "property"); - -verifyNotConfigurable(arr, "property"); +verifyProperty(arr, "property", { + value: 12, + writable: false, + enumerable: false, + configurable: false, +}); if (arr.length !== 0) { throw new Test262Error('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 f2f485c7825..1df98886928 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 @@ -26,16 +26,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arr, "property", 12); - - verifyNotWritable(arr, "property"); - - verifyNotEnumerable(arr, "property"); - - verifyNotConfigurable(arr, "property"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "property", { + value: 12, + writable: false, + enumerable: false, + configurable: false, +}); 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 c741cfb05bb..c5276c90f2a 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 @@ -26,16 +26,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arr, "property", undefined); - - verifyNotWritable(arr, "property"); - - verifyNotEnumerable(arr, "property"); - - verifyNotConfigurable(arr, "property"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "property", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, +}); 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 ac120887891..7e74a6a3cd0 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 @@ -27,16 +27,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arr, "property", 12); - - verifyNotWritable(arr, "property"); - - verifyNotEnumerable(arr, "property"); - - verifyNotConfigurable(arr, "property"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "property", { + value: 12, + writable: false, + enumerable: false, + configurable: false, +}); 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 bbca771f61d..7c8ab35cff0 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 @@ -26,16 +26,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arr, "property", 12); - - verifyNotWritable(arr, "property"); - - verifyNotEnumerable(arr, "property"); - - verifyNotConfigurable(arr, "property"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "property", { + value: 12, + writable: false, + enumerable: false, + configurable: false, +}); 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 f107fe0f7ee..48f1737735b 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 @@ -39,12 +39,12 @@ try { verifyWritable(arr, "property", "verifySetFun"); - verifyNotEnumerable(arr, "property"); - - verifyNotConfigurable(arr, "property"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "property", { + enumerable: false, + configurable: false, +}); 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 666ad88998a..48f29b88ed9 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 @@ -30,12 +30,12 @@ try { } catch (e) { verifyWritable(arr, "property", "setVerifyHelpProp"); - verifyNotEnumerable(arr, "property"); - - verifyNotConfigurable(arr, "property"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "property", { + enumerable: false, + configurable: false, +}); 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 52a568c7407..4e3a7453539 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 @@ -32,12 +32,12 @@ try { } catch (e) { verifyWritable(arr, "property", "setVerifyHelpProp"); - verifyNotEnumerable(arr, "property"); - - verifyNotConfigurable(arr, "property"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "property", { + enumerable: false, + configurable: false, +}); 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 0f6ea497235..b5bc97034d3 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 @@ -32,12 +32,12 @@ try { } catch (e) { verifyWritable(arr, "property", "setVerifyHelpProp"); - verifyNotEnumerable(arr, "property"); - - verifyNotConfigurable(arr, "property"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arr, "property", { + enumerable: false, + configurable: false, +}); 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 b8bcd8b2e9c..f2029c5e3f4 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 @@ -30,10 +30,9 @@ Object.defineProperties(arg, { } }); -verifyEqualTo(arg, "0", 10); - -verifyWritable(arg, "0"); - -verifyEnumerable(arg, "0"); - -verifyConfigurable(arg, "0"); +verifyProperty(arg, "0", { + value: 10, + writable: true, + enumerable: true, + configurable: true, +}); 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 17f8a4a9aaa..dd13474a4d0 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 @@ -42,6 +42,7 @@ verifyEqualTo(arg, "0", get_func()); verifyWritable(arg, "0", "setVerifyHelpProp"); -verifyEnumerable(arg, "0"); - -verifyConfigurable(arg, "0"); +verifyProperty(arg, "0", { + enumerable: true, + configurable: true, +}); 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 cd9e4cab816..f25711e67c7 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 @@ -18,12 +18,7 @@ Object.defineProperties(obj, { } }); -verifyNotWritable(obj, "prop"); - -if (!obj.hasOwnProperty("prop")) { - throw new Test262Error('Expected obj.hasOwnProperty("prop") to be true, actually ' + obj.hasOwnProperty("prop")); -} - -if (obj.prop !== 1001) { - throw new Test262Error('Expected obj.prop === 1001, actually ' + obj.prop); -} +verifyProperty(obj, "prop", { + value: 1001, + writable: false, +}); 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 9254d3da3ea..00b4f32b7d3 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 @@ -27,10 +27,9 @@ Object.defineProperties(arg, { } }); -verifyEqualTo(arg, "0", 20); - -verifyNotWritable(arg, "0"); - -verifyNotEnumerable(arg, "0"); - -verifyNotConfigurable(arg, "0"); +verifyProperty(arg, "0", { + value: 20, + writable: false, + enumerable: false, + configurable: false, +}); 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 60fcebb7f08..d9ca03cbe48 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 @@ -34,16 +34,14 @@ try { throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arg, "0", 0); - - verifyNotWritable(arg, "0"); - - verifyEnumerable(arg, "0"); - - verifyNotConfigurable(arg, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arg, "0", { + value: 0, + writable: false, + enumerable: true, + configurable: false, +}); 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 1d732bd165f..dcc6506c17a 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 @@ -35,16 +35,14 @@ try { throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arg, "0", 0); - - verifyNotWritable(arg, "0"); - - verifyNotEnumerable(arg, "0"); - - verifyNotConfigurable(arg, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arg, "0", { + value: 0, + writable: false, + enumerable: false, + configurable: false, +}); 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 09dc8321c85..28c064c94de 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 @@ -35,16 +35,14 @@ try { throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arg, "0", 0); - - verifyNotWritable(arg, "0"); - - verifyEnumerable(arg, "0"); - - verifyNotConfigurable(arg, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arg, "0", { + value: 0, + writable: false, + enumerable: true, + configurable: false, +}); 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 9745ad05c24..f243930074a 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 @@ -35,16 +35,14 @@ try { throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arg, "0", 0); - - verifyNotWritable(arg, "0"); - - verifyNotEnumerable(arg, "0"); - - verifyNotConfigurable(arg, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arg, "0", { + value: 0, + writable: false, + enumerable: false, + configurable: false, +}); 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 8e927ac411d..42000aea567 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 @@ -40,12 +40,12 @@ try { } catch (e) { verifyEqualTo(arg, "0", get_func()); - verifyEnumerable(arg, "0"); - - verifyNotConfigurable(arg, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arg, "0", { + enumerable: true, + configurable: false, +}); 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 acff19c589a..15b6f84de12 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 @@ -40,12 +40,12 @@ try { } catch (e) { verifyEqualTo(arg, "0", get_func()); - verifyEnumerable(arg, "0"); - - verifyNotConfigurable(arg, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arg, "0", { + enumerable: true, + configurable: false, +}); 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 8fb59187a6c..641e71e640e 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 @@ -30,10 +30,9 @@ Object.defineProperties(arg, { } }); -verifyEqualTo(arg, "0", 10); - -verifyNotWritable(arg, "0"); - -verifyNotEnumerable(arg, "0"); - -verifyNotConfigurable(arg, "0"); +verifyProperty(arg, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false, +}); 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 c885c76ceeb..fe0a3bef312 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 @@ -42,6 +42,7 @@ verifyEqualTo(arg, "0", get_func()); verifyWritable(arg, "0", "setVerifyHelpProp"); -verifyNotEnumerable(arg, "0"); - -verifyNotConfigurable(arg, "0"); +verifyProperty(arg, "0", { + enumerable: false, + configurable: false, +}); 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 da3cc57d180..581ff61a5fc 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 @@ -43,6 +43,7 @@ Object.defineProperties(arg, { verifyEqualTo(arg, "0", get_func2()); -verifyNotEnumerable(arg, "0"); - -verifyNotConfigurable(arg, "0"); +verifyProperty(arg, "0", { + enumerable: false, + configurable: false, +}); 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 6a9c048528f..58cd5eb0f5d 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 @@ -28,10 +28,9 @@ Object.defineProperties(arg, { } }); -verifyEqualTo(arg, "0", 20); - -verifyNotWritable(arg, "0"); - -verifyNotEnumerable(arg, "0"); - -verifyNotConfigurable(arg, "0"); +verifyProperty(arg, "0", { + value: 20, + writable: false, + enumerable: false, + configurable: false, +}); 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 6303b8d2687..18c906964e8 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 @@ -34,16 +34,14 @@ try { throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arg, "0", 0); - - verifyNotWritable(arg, "0"); - - verifyNotEnumerable(arg, "0"); - - verifyNotConfigurable(arg, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arg, "0", { + value: 0, + writable: false, + enumerable: false, + configurable: false, +}); 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 cb23c9ca143..5ec7e16bb27 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 @@ -35,16 +35,14 @@ try { throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arg, "0", 0); - - verifyNotWritable(arg, "0"); - - verifyNotEnumerable(arg, "0"); - - verifyNotConfigurable(arg, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arg, "0", { + value: 0, + writable: false, + enumerable: false, + configurable: false, +}); 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 315f1d04b8a..89545378389 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 @@ -35,16 +35,14 @@ try { throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arg, "0", 0); - - verifyNotWritable(arg, "0"); - - verifyEnumerable(arg, "0"); - - verifyNotConfigurable(arg, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arg, "0", { + value: 0, + writable: false, + enumerable: true, + configurable: false, +}); 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 c457452922e..1c686130cc5 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 @@ -35,16 +35,14 @@ try { throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arg, "0", 0); - - verifyNotWritable(arg, "0"); - - verifyNotEnumerable(arg, "0"); - - verifyNotConfigurable(arg, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arg, "0", { + value: 0, + writable: false, + enumerable: false, + configurable: false, +}); 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 e22e4d2d8d8..701eb8c8c7b 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 @@ -42,12 +42,12 @@ try { } catch (e) { verifyEqualTo(arg, "0", get_func1()); - verifyNotEnumerable(arg, "0"); - - verifyNotConfigurable(arg, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arg, "0", { + enumerable: false, + configurable: false, +}); 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 92269ed3242..72a1acdae15 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 @@ -43,12 +43,12 @@ try { } catch (e) { verifyEqualTo(arg, "0", get_func()); - verifyNotEnumerable(arg, "0"); - - verifyNotConfigurable(arg, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arg, "0", { + enumerable: false, + configurable: false, +}); 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 7684d352e24..dbcbdf8b516 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 @@ -19,12 +19,7 @@ Object.defineProperties(obj, { } }); -verifyNotConfigurable(obj, "prop"); - -if (!obj.hasOwnProperty("prop")) { - throw new Test262Error('Expected obj.hasOwnProperty("prop") to be true, actually ' + obj.hasOwnProperty("prop")); -} - -if (obj.prop !== 1001) { - throw new Test262Error('Expected obj.prop === 1001, actually ' + obj.prop); -} +verifyProperty(obj, "prop", { + value: 1001, + configurable: false, +}); 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 236d48c3afb..587df9b2bc7 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 @@ -39,12 +39,12 @@ try { } catch (e) { verifyEqualTo(arg, "0", get_func()); - verifyEnumerable(arg, "0"); - - verifyNotConfigurable(arg, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arg, "0", { + enumerable: true, + configurable: false, +}); 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 14a7e849663..89f31d5a75d 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 @@ -39,12 +39,12 @@ try { } catch (e) { verifyEqualTo(arg, "0", get_func()); - verifyEnumerable(arg, "0"); - - verifyNotConfigurable(arg, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arg, "0", { + enumerable: true, + configurable: false, +}); 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 616737e3fb1..1d8df862289 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 @@ -24,10 +24,9 @@ Object.defineProperties(arg, { } }); -verifyEqualTo(arg, "genericProperty", 1001); - -verifyWritable(arg, "genericProperty"); - -verifyEnumerable(arg, "genericProperty"); - -verifyConfigurable(arg, "genericProperty"); +verifyProperty(arg, "genericProperty", { + value: 1001, + writable: true, + enumerable: true, + configurable: true, +}); 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 f9fa042ffe0..74bcb28c6e9 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 @@ -35,6 +35,7 @@ verifyEqualTo(arg, "genericProperty", getFun()); verifyWritable(arg, "genericProperty", "testGetFunction"); -verifyEnumerable(arg, "genericProperty"); - -verifyConfigurable(arg, "genericProperty"); +verifyProperty(arg, "genericProperty", { + enumerable: true, + configurable: true, +}); 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 8c3d0a57f8e..b83a1e5243e 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 @@ -46,6 +46,7 @@ verifyEqualTo(arg, "genericProperty", getFun()); verifyWritable(arg, "genericProperty", "testGetFunction"); -verifyNotEnumerable(arg, "genericProperty"); - -verifyNotConfigurable(arg, "genericProperty"); +verifyProperty(arg, "genericProperty", { + enumerable: false, + configurable: false, +}); 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 111feb5bc1f..86aca2c613b 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 @@ -30,10 +30,9 @@ Object.defineProperties(arg, { } }); -verifyEqualTo(arg, "genericProperty", 1002); - -verifyWritable(arg, "genericProperty"); - -verifyNotEnumerable(arg, "genericProperty"); - -verifyNotConfigurable(arg, "genericProperty"); +verifyProperty(arg, "genericProperty", { + value: 1002, + writable: true, + enumerable: false, + configurable: false, +}); 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 bf7b3bd55c2..e89f7e23dd8 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 @@ -30,16 +30,14 @@ try { throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arg, "genericProperty", 1001); - - verifyNotWritable(arg, "genericProperty"); - - verifyNotEnumerable(arg, "genericProperty"); - - verifyNotConfigurable(arg, "genericProperty"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arg, "genericProperty", { + value: 1001, + writable: false, + enumerable: false, + configurable: false, +}); 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 0a484a6122a..49ef2cd793d 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 @@ -29,16 +29,14 @@ try { throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arg, "genericProperty", undefined); - - verifyNotWritable(arg, "genericProperty"); - - verifyNotEnumerable(arg, "genericProperty"); - - verifyNotConfigurable(arg, "genericProperty"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arg, "genericProperty", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, +}); 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 ea3ac1cd987..bf9aa01a396 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 @@ -29,16 +29,14 @@ try { throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arg, "genericProperty", undefined); - - verifyNotWritable(arg, "genericProperty"); - - verifyEnumerable(arg, "genericProperty"); - - verifyNotConfigurable(arg, "genericProperty"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arg, "genericProperty", { + value: undefined, + writable: false, + enumerable: true, + configurable: false, +}); 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 d53d9cccf8a..c7840904461 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 @@ -28,16 +28,14 @@ try { throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arg, "genericProperty", undefined); - - verifyNotWritable(arg, "genericProperty"); - - verifyNotEnumerable(arg, "genericProperty"); - - verifyNotConfigurable(arg, "genericProperty"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arg, "genericProperty", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, +}); 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 034c2820bc5..aed01714feb 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 @@ -19,10 +19,10 @@ Object.defineProperties(obj, { configurable: false } }); -verifyEqualTo(obj, "prop", 1002); -verifyNotWritable(obj, "prop"); - -verifyNotEnumerable(obj, "prop"); - -verifyNotConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + value: 1002, + writable: false, + enumerable: false, + configurable: false, +}); 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 27a6b2a1578..4b26f1104bf 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 @@ -43,12 +43,12 @@ try { verifyWritable(arg, "genericProperty", "verifySetFun"); - verifyNotEnumerable(arg, "genericProperty"); - - verifyNotConfigurable(arg, "genericProperty"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arg, "genericProperty", { + enumerable: false, + configurable: false, +}); 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 cdc89b77479..b7d8e8079a0 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 @@ -36,12 +36,12 @@ try { } catch (e) { verifyWritable(arg, "genericProperty", "genericPropertyString"); - verifyNotEnumerable(arg, "genericProperty"); - - verifyNotConfigurable(arg, "genericProperty"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arg, "genericProperty", { + enumerable: false, + configurable: false, +}); 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 9f9ed9ba94c..09a9b9b58e0 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 @@ -35,12 +35,12 @@ try { } catch (e) { verifyWritable(arg, "genericProperty", "genericPropertyString"); - verifyEnumerable(arg, "genericProperty"); - - verifyNotConfigurable(arg, "genericProperty"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arg, "genericProperty", { + enumerable: true, + configurable: false, +}); 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 d305aff7afc..ca28c14f3f8 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 @@ -34,12 +34,12 @@ try { } catch (e) { verifyWritable(arg, "genericProperty", "genericPropertyString"); - verifyNotEnumerable(arg, "genericProperty"); - - verifyNotConfigurable(arg, "genericProperty"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arg, "genericProperty", { + enumerable: false, + configurable: false, +}); 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 8df808343e9..d0ae3e53508 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 @@ -24,6 +24,7 @@ Object.defineProperties(obj, { }); verifyWritable(obj, "prop", "setVerifyHelpProp"); -verifyEnumerable(obj, "prop"); - -verifyConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + enumerable: true, + configurable: true, +}); 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 9f6e931c1f0..e2f41d42ff0 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 @@ -29,6 +29,7 @@ verifyEqualTo(obj, "prop", getFun()); verifyWritable(obj, "prop", "setVerifyHelpProp"); -verifyNotEnumerable(obj, "prop"); - -verifyConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + enumerable: false, + configurable: true, +}); 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 567453a66d2..8dd36baf1f2 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 @@ -30,6 +30,7 @@ verifyEqualTo(obj, "prop", 10); verifyWritable(obj, "prop", "setVerifyHelpProp"); -verifyEnumerable(obj, "prop"); - -verifyNotConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + enumerable: true, + configurable: false, +}); 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 3ec607f8100..a6886595c50 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 @@ -29,6 +29,7 @@ verifyEqualTo(obj, "prop", getFun()); verifyWritable(obj, "prop", "setVerifyHelpProp"); -verifyNotEnumerable(obj, "prop"); - -verifyNotConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + enumerable: false, + configurable: false, +}); 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 1f8a5519696..43fa79c8542 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 @@ -29,6 +29,7 @@ Object.defineProperties(obj, { verifyEqualTo(obj, "foo", getFunc()); -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: true, + configurable: true, +}); 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 b984b2fb139..fcb6198dc32 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 @@ -17,10 +17,10 @@ obj.foo = 100; // default value of attributes: writable: true, configurable: tru Object.defineProperties(obj, { foo: {} }); -verifyEqualTo(obj, "foo", 100); -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 100, + writable: true, + enumerable: true, + configurable: true, +}); 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 a1532cb67f6..7896d5a6624 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 @@ -22,10 +22,10 @@ Object.defineProperties(obj, { configurable: true } }); -verifyEqualTo(obj, "foo", 101); -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 101, + writable: true, + enumerable: true, + configurable: true, +}); 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 cde59dc5e2e..df2928e206f 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 @@ -40,6 +40,7 @@ verifyEqualTo(obj, "foo", get_func()); verifyWritable(obj, "foo", "setVerifyHelpProp"); -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: true, + configurable: true, +}); 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 4151bdaaffb..a28dcee1af7 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 @@ -19,10 +19,10 @@ Object.defineProperties(obj, { value: "102" } }); -verifyEqualTo(obj, "foo", "102"); -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: "102", + writable: true, + enumerable: true, + configurable: true, +}); 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 a61da8f00bd..08052eaa5df 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 @@ -22,10 +22,10 @@ Object.defineProperties(obj, { value: undefined } }); -verifyEqualTo(obj, "foo", undefined); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, +}); 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 39f1d83f8f9..32dfa0682c7 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 @@ -22,10 +22,10 @@ Object.defineProperties(obj, { value: null } }); -verifyEqualTo(obj, "foo", null); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: null, + writable: false, + enumerable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-44.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-44.js index 3eff2913379..e80e0ad4d33 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-44.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-44.js @@ -23,6 +23,8 @@ Object.defineProperties(obj, { } }); -verifyNotEnumerable(obj, "foo"); -verifyNotWritable(obj, "foo"); -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + writable: false, + enumerable: false, + configurable: false, +}); 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 f39be696be6..8ea976fda37 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 @@ -25,16 +25,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "foo", -0); - - verifyNotWritable(obj, "foo"); - - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + value: -0, + writable: false, + enumerable: false, + configurable: false, +}); 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 e262de7bada..b31b67b801a 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 @@ -25,16 +25,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "foo", +0); - - verifyNotWritable(obj, "foo"); - - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + value: +0, + writable: false, + enumerable: false, + configurable: false, +}); 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 63859320061..346be3379eb 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 @@ -22,10 +22,10 @@ Object.defineProperties(obj, { value: 101 } }); -verifyEqualTo(obj, "foo", 101); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 101, + writable: false, + enumerable: false, + configurable: false, +}); 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 910dbf79d52..51f8072fbab 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 @@ -19,10 +19,10 @@ Object.defineProperties(obj, { value: 102 } }); -verifyEqualTo(obj, "foo", 102); -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 102, + writable: true, + enumerable: true, + configurable: true, +}); 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 381073f3135..6f50fd258d6 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 @@ -23,10 +23,10 @@ Object.defineProperties(obj, { value: "abcd" } }); -verifyEqualTo(obj, "foo", "abcd"); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: "abcd", + writable: false, + enumerable: false, + configurable: false, +}); 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 9953e89c6b0..51bfeb9a63a 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 @@ -29,14 +29,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "prop", getFunc()); - - verifyNotEnumerable(obj, "prop"); - - verifyNotConfigurable(obj, "prop"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyEqualTo(obj, "prop", getFunc()); + +verifyProperty(obj, "prop", { + enumerable: false, + configurable: false, +}); 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 ca3ebff2ea1..0a9f1b95d5d 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 @@ -19,10 +19,10 @@ Object.defineProperties(obj, { value: "fghj" } }); -verifyEqualTo(obj, "foo", "fghj"); -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: "fghj", + writable: true, + enumerable: true, + configurable: true, +}); 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 2184bd1ef7a..5288ffa333f 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 @@ -22,10 +22,10 @@ Object.defineProperties(obj, { value: true } }); -verifyEqualTo(obj, "foo", true); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: true, + writable: false, + enumerable: false, + configurable: false, +}); 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 ec6ec8925b2..1ed1afbaadc 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 @@ -19,10 +19,10 @@ Object.defineProperties(obj, { value: false } }); -verifyEqualTo(obj, "foo", false); -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: false, + writable: true, + enumerable: true, + configurable: true, +}); 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 7b1f7f63773..a018b9b4bce 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 @@ -25,10 +25,10 @@ Object.defineProperties(obj, { value: obj1 } }); -verifyEqualTo(obj, "foo", obj1); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: obj1, + writable: false, + enumerable: false, + configurable: false, +}); 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 19e37a70460..8084395ad1d 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 @@ -26,10 +26,10 @@ Object.defineProperties(obj, { value: obj2 } }); -verifyEqualTo(obj, "foo", obj2); -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: obj2, + writable: true, + enumerable: true, + configurable: true, +}); 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 56ae78800d1..acba5f1af42 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 @@ -22,10 +22,10 @@ Object.defineProperties(obj, { writable: false } }); -verifyEqualTo(obj, "foo", undefined); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, +}); 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 3d6000d30a6..65898ea5cf2 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 @@ -24,10 +24,10 @@ Object.defineProperties(obj, { configurable: true } }); -verifyEqualTo(obj, "foo", undefined); -verifyWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: undefined, + writable: true, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-57.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-57.js index 67c6bc26707..62eff197b90 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-57.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-57.js @@ -26,7 +26,9 @@ Object.defineProperties(obj, { } }); -verifyNotEnumerable(obj, "foo"); assert.sameValue(obj.foo, 10); -verifyNotConfigurable(obj, "foo") +verifyProperty(obj, "foo", { + enumerable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-58.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-58.js index c7a9d7c872c..152152f6ab5 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-58.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-58.js @@ -6,6 +6,7 @@ es5id: 15.2.3.7-6-a-58 description: > Object.defineProperties - desc.[[Get]] and P.[[Get]] are two objects which refer to the different objects (8.12.9 step 6) +includes: [propertyHelper.js] ---*/ var obj = {}; @@ -29,24 +30,14 @@ Object.defineProperties(obj, { } }); -var verifyEnumerable = false; -for (var p in obj) { - if (p === "foo") { - verifyEnumerable = true; - } -} - -var verifyValue = false; -verifyValue = (obj.foo === 20); +assert.sameValue(obj.foo, 20); var desc = Object.getOwnPropertyDescriptor(obj, "foo"); -var verifyConfigurable = false; -delete obj.foo; -verifyConfigurable = obj.hasOwnProperty("foo"); +verifyProperty(obj, "foo", { + enumerable: false, + configurable: true, +}); -assert.sameValue(verifyConfigurable, false, 'verifyConfigurable'); -assert.sameValue(verifyEnumerable, false, 'verifyEnumerable'); -assert(verifyValue, 'verifyValue !== true'); assert.sameValue(typeof(desc.set), "undefined", 'typeof (desc.set)'); assert.sameValue(desc.get, get_Func2, 'desc.get'); 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 f74d2a2fd79..c87b460bc14 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 @@ -27,6 +27,7 @@ Object.defineProperties(obj, { }); verifyWritable(obj, "foo", "setVerifyHelpProp"); -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: false, + configurable: false, +}); 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 4c619fd073a..533bc793e1a 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 @@ -30,6 +30,7 @@ Object.defineProperties(obj, { }); verifyWritable(obj, "foo", "setVerifyHelpProp"); -verifyNotEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: false, + configurable: true, +}); 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 14b726244c1..ff26223223c 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 @@ -22,10 +22,10 @@ Object.defineProperties(obj, { enumerable: false } }); -verifyEqualTo(obj, "foo", 10); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 10, + writable: false, + enumerable: false, + configurable: false, +}); 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 7f7511776d3..f4348cdc690 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 @@ -23,10 +23,10 @@ Object.defineProperties(obj, { enumerable: true } }); -verifyEqualTo(obj, "foo", 10); -verifyNotWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 10, + writable: false, + enumerable: true, + configurable: true, +}); 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 b7c53b94ed3..802cb507fd4 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 @@ -23,10 +23,10 @@ Object.defineProperties(obj, { configurable: false } }); -verifyEqualTo(obj, "foo", 10); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 10, + writable: false, + enumerable: false, + configurable: false, +}); 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 1fcaaa89005..e1a097f58a9 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 @@ -22,10 +22,10 @@ Object.defineProperties(obj, { configurable: false } }); -verifyEqualTo(obj, "foo", 10); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 10, + writable: false, + enumerable: false, + configurable: false, +}); 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 fa9eb711986..76c5f8762f0 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 @@ -25,16 +25,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "foo", 10); - - verifyNotWritable(obj, "foo"); - - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + value: 10, + writable: false, + enumerable: false, + configurable: false, +}); 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 a26b0fd5735..385c00dfb16 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 @@ -27,16 +27,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "foo", 10); - - verifyNotWritable(obj, "foo"); - - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + value: 10, + writable: false, + enumerable: false, + configurable: false, +}); 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 35b451e5e12..fa3ec06234a 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 @@ -27,16 +27,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "foo", 10); - - verifyNotWritable(obj, "foo"); - - verifyEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + value: 10, + writable: false, + enumerable: true, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-67.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-67.js index 9acb0e6a9e2..68dfa958b2b 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-67.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-67.js @@ -31,11 +31,13 @@ try { throw new Test262Error("Expected TypeError"); } catch (e) { assert(e instanceof TypeError); - verifyNotEnumerable(obj, "foo"); assert.sameValue(obj.foo, 10); - verifyNotConfigurable(obj, "foo"); + verifyProperty(obj, "foo", { + enumerable: false, + configurable: false, + }); var desc = Object.getOwnPropertyDescriptor(obj, "foo"); 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 e6be1b6ed4a..77b731922ee 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 @@ -30,16 +30,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "foo", 10); - - verifyNotWritable(obj, "foo"); - - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + value: 10, + writable: false, + enumerable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-69.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-69.js index 8df10277067..4db82adda66 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-69.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-69.js @@ -6,6 +6,7 @@ es5id: 15.2.3.7-6-a-69 description: > Object.defineProperties - 'P' is data property and P.configurable is true, desc is accessor property (8.12.9 step 9.b.i) +includes: [propertyHelper.js] ---*/ var obj = {}; @@ -25,24 +26,14 @@ Object.defineProperties(obj, { } }); -var verifyEnumerable = false; -for (var p in obj) { - if (p === "foo") { - verifyEnumerable = true; - } -} - -var verifyValue = false; -verifyValue = (obj.foo === 20); +assert.sameValue(obj.foo, 20); var desc = Object.getOwnPropertyDescriptor(obj, "foo"); -var verifyConfigurable = true; -delete obj.foo; -verifyConfigurable = obj.hasOwnProperty("foo"); +verifyProperty(obj, "foo", { + enumerable: false, + configurable: true, +}); -assert.sameValue(verifyConfigurable, false, 'verifyConfigurable'); -assert.sameValue(verifyEnumerable, false, 'verifyEnumerable'); -assert(verifyValue, 'verifyValue !== true'); assert.sameValue(typeof desc.set, "undefined", 'typeof desc.set'); assert.sameValue(desc.get, get_Func, 'desc.get'); 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 da3efb8d341..9d82f2caf5a 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 @@ -27,10 +27,10 @@ Object.defineProperties(obj, { value: 12 } }); -verifyEqualTo(obj, "foo", 12); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 12, + writable: false, + enumerable: false, + configurable: true, +}); 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 e08154b335a..ae2c885b463 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 @@ -27,16 +27,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "foo", 10); - - verifyNotWritable(obj, "foo"); - - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + value: 10, + writable: false, + enumerable: false, + configurable: false, +}); 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 215e5ac51e0..44809fe4d35 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 @@ -28,16 +28,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "foo", 10); - - verifyNotWritable(obj, "foo"); - - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + value: 10, + writable: false, + enumerable: false, + configurable: false, +}); 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 65dbed0c119..f7478c4c65e 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 @@ -24,10 +24,10 @@ Object.defineProperties(obj, { value: undefined } }); -verifyEqualTo(obj, "foo", undefined); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, +}); 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 0554f87c12a..d662c808d1f 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 @@ -24,10 +24,10 @@ Object.defineProperties(obj, { value: null } }); -verifyEqualTo(obj, "foo", null); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: null, + writable: false, + enumerable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-75.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-75.js index 7d66ee61aa5..451ca6a25d8 100644 --- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-75.js +++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-75.js @@ -26,6 +26,8 @@ Object.defineProperties(obj, { } }); -verifyNotEnumerable(obj, "foo"); -verifyNotWritable(obj, "foo"); -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + writable: false, + enumerable: false, + configurable: false, +}); 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 985c00c0d2f..a5626ed8641 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 @@ -27,16 +27,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "foo", -0); - - verifyNotWritable(obj, "foo"); - - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + value: -0, + writable: false, + enumerable: false, + configurable: false, +}); 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 99b179f5570..413c360bf90 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 @@ -27,16 +27,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "foo", +0); - - verifyNotWritable(obj, "foo"); - - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + value: +0, + writable: false, + enumerable: false, + configurable: false, +}); 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 ac98a36dc10..bd6049d8142 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 @@ -24,10 +24,10 @@ Object.defineProperties(obj, { value: 100 } }); -verifyEqualTo(obj, "foo", 100); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 100, + writable: false, + enumerable: false, + configurable: false, +}); 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 31a2cc9a090..73b40c8f298 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 @@ -27,16 +27,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "foo", 10); - - verifyNotWritable(obj, "foo"); - - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + value: 10, + writable: false, + enumerable: false, + configurable: false, +}); 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 ba37ac598ee..a4761ec6166 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 @@ -24,10 +24,10 @@ Object.defineProperties(obj, { value: "abcd" } }); -verifyEqualTo(obj, "foo", "abcd"); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: "abcd", + writable: false, + enumerable: false, + configurable: false, +}); 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 e1a84a03e79..533e50e998a 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 @@ -27,16 +27,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "foo", "abcd"); - - verifyNotWritable(obj, "foo"); - - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + value: "abcd", + writable: false, + enumerable: false, + configurable: false, +}); 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 10eff312d83..1455f922354 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 @@ -25,10 +25,10 @@ Object.defineProperties(obj, { value: false } }); -verifyEqualTo(obj, "foo", false); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: false, + writable: false, + enumerable: false, + configurable: false, +}); 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 3f063fccbd9..bf5ce49b86c 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 @@ -27,16 +27,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "foo", false); - - verifyNotWritable(obj, "foo"); - - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + value: false, + writable: false, + enumerable: false, + configurable: false, +}); 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 f78066f0c88..bae38ddff01 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 @@ -32,10 +32,10 @@ Object.defineProperties(obj, { value: obj2 } }); -verifyEqualTo(obj, "foo", obj1); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: obj1, + writable: false, + enumerable: false, + configurable: false, +}); 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 35932acd673..00ee06decb9 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 @@ -29,10 +29,10 @@ Object.defineProperties(obj, { value: obj1 } }); -verifyEqualTo(obj, "foo", obj1); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: obj1, + writable: false, + enumerable: false, + configurable: false, +}); 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 2d3149c7891..4799295a622 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 @@ -35,16 +35,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "foo", obj1); - - verifyNotWritable(obj, "foo"); - - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + value: obj1, + writable: false, + enumerable: false, + configurable: false, +}); 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 2a29e46e447..925e4c86ce5 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 @@ -34,14 +34,14 @@ try { } }); } catch (e) { - verifyWritable(obj, "foo", "setVerifyHelpProp"); - - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyProperty(obj, "foo", { + enumerable: false, + configurable: false, +}); 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 762302ec82c..65eb755511f 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 @@ -29,6 +29,8 @@ Object.defineProperties(obj, { }); verifyWritable(obj, "foo", "setVerifyHelpProp"); -verifyNotEnumerable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: false, + configurable: false, +}); -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 fca6320e52e..6a579085700 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 @@ -32,14 +32,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyWritable(obj, "foo", "setVerifyHelpProp"); - - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyWritable(obj, "foo", "setVerifyHelpProp"); + +verifyProperty(obj, "foo", { + enumerable: false, + configurable: false, +}); 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 1844e92d615..7c74a39fb99 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 @@ -34,18 +34,18 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - var desc = Object.getOwnPropertyDescriptor(obj, "foo"); - - if (typeof(desc.set) !== "undefined") { - throw new Test262Error('Expected typeof (desc.set) === "undefined", actually ' + typeof(desc.set)); - } - - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } +} + +verifyProperty(obj, "foo", { + enumerable: false, + configurable: false, +}); + +var desc = Object.getOwnPropertyDescriptor(obj, "foo"); +if (typeof(desc.set) !== "undefined") { + throw new Test262Error('Expected typeof (desc.set) === "undefined", actually ' + typeof(desc.set)); } 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 4610c88e661..8d307ecca8b 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 @@ -30,9 +30,10 @@ Object.defineProperties(obj, { } }); -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: false, + configurable: false, +}); var desc = Object.getOwnPropertyDescriptor(obj, "foo"); 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 c8407d1e8ef..2bd4eeb6c4f 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 @@ -37,6 +37,7 @@ verifyEqualTo(obj, "foo", get_func()); verifyWritable(obj, "foo", "setVerifyHelpProp"); -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: false, + configurable: false, +}); 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 a7d84ae0cfc..fdb2b0e6415 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 @@ -44,12 +44,12 @@ try { verifyWritable(obj, "foo", "setVerifyHelpProp"); - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + enumerable: false, + configurable: false, +}); 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 882fb4a1ff7..d96735a012d 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 @@ -38,12 +38,12 @@ try { } catch (e) { verifyWritable(obj, "foo", "setVerifyHelpProp"); - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + enumerable: false, + configurable: false, +}); 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 d235be5f5da..588b711e7a9 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 @@ -38,23 +38,21 @@ try { throw new Test262Error("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)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "property", { + value: 1002, + writable: false, + enumerable: false, + configurable: true, +}); + +verifyProperty(obj, "property1", { + value: 1003, + writable: false, + enumerable: false, + configurable: false, +}); 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 8f20c0ff53b..3e8b07e3258 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 @@ -38,23 +38,21 @@ try { throw new Test262Error("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)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "0", { + value: 1002, + writable: false, + enumerable: false, + configurable: true, +}); + +verifyProperty(obj, "1", { + value: 1003, + writable: false, + enumerable: false, + configurable: false, +}); 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 ee208d1d53b..93c385ade9f 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 @@ -37,24 +37,21 @@ try { throw new Test262Error("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)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "property", { + value: 1001, + writable: false, + enumerable: false, + configurable: false, +}); + +verifyProperty(obj, "property1", { + value: 1003, + writable: false, + enumerable: false, + configurable: true, +}); 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 881fec60d1f..089fc0deebb 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 @@ -37,23 +37,21 @@ try { throw new Test262Error("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)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "0", { + value: 1001, + writable: false, + enumerable: false, + configurable: false, +}); + +verifyProperty(obj, "1", { + value: 1003, + writable: false, + enumerable: false, + configurable: true, +}); 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 4e3c784f21d..079bffa0755 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 @@ -31,6 +31,7 @@ Object.defineProperties(obj, { }); verifyWritable(obj, "foo", "setVerifyHelpProp"); -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: false, + configurable: false, +}); 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 1df8a413283..bf2a959659a 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 @@ -19,10 +19,10 @@ Object.defineProperties(obj, { value: 200 } }); -verifyEqualTo(obj, "foo", 200); -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 200, + writable: true, + enumerable: true, + configurable: true, +}); 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 08a0229e88a..451195e88b0 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 @@ -24,10 +24,10 @@ Object.defineProperties(obj, { value: undefined } }); -verifyEqualTo(obj, "foo", undefined); -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: undefined, + writable: true, + enumerable: true, + configurable: true, +}); 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 18e7cb5d0f4..3543e800fa8 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 @@ -24,10 +24,10 @@ Object.defineProperties(obj, { value: 200 } }); -verifyEqualTo(obj, "foo", 200); -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 200, + writable: true, + enumerable: true, + configurable: true, +}); 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 015b74be780..cfaad76d57f 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 @@ -24,10 +24,10 @@ Object.defineProperties(obj, { writable: true } }); -verifyEqualTo(obj, "foo", 100); -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 100, + writable: true, + enumerable: true, + configurable: true, +}); 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 37e8dc0122f..284cf1cc83a 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 @@ -24,10 +24,10 @@ Object.defineProperties(obj, { enumerable: true } }); -verifyEqualTo(obj, "foo", 200); -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 200, + writable: true, + enumerable: true, + configurable: true, +}); 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 055a3c84981..fc913d02cb8 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 @@ -24,10 +24,10 @@ Object.defineProperties(obj, { configurable: false } }); -verifyEqualTo(obj, "foo", 200); -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 200, + writable: true, + enumerable: true, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperties/name.js b/test/built-ins/Object/defineProperties/name.js index aeacd301ff8..99cde9bfe5c 100644 --- a/test/built-ins/Object/defineProperties/name.js +++ b/test/built-ins/Object/defineProperties/name.js @@ -19,8 +19,9 @@ info: | includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.defineProperties.name, "defineProperties"); - -verifyNotEnumerable(Object.defineProperties, "name"); -verifyNotWritable(Object.defineProperties, "name"); -verifyConfigurable(Object.defineProperties, "name"); +verifyProperty(Object.defineProperties, "name", { + value: "defineProperties", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-100.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-100.js index 5c49f9552c2..86853af05e3 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-100.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-100.js @@ -15,5 +15,6 @@ Object.defineProperty(obj, "property", { configurable: null }); -assert(obj.hasOwnProperty("property")); -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-102.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-102.js index f28ee336676..ceeb95835d0 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-102.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-102.js @@ -15,5 +15,6 @@ Object.defineProperty(obj, "property", { configurable: false }); -assert(obj.hasOwnProperty("property")); -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-103.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-103.js index 442ccffbe85..c3d4e5de113 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-103.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-103.js @@ -15,5 +15,6 @@ Object.defineProperty(obj, "property", { configurable: 0 }); -assert(obj.hasOwnProperty("property")); -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-104.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-104.js index 0de5f8d9829..5c188d321f5 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-104.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-104.js @@ -15,5 +15,6 @@ Object.defineProperty(obj, "property", { configurable: +0 }); -assert(obj.hasOwnProperty("property")); -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-105.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-105.js index c899a8e444e..f3220778955 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-105.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-105.js @@ -15,5 +15,6 @@ Object.defineProperty(obj, "property", { configurable: -0 }); -assert(obj.hasOwnProperty("property")); -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-106.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-106.js index 4a6edd949a4..f1b36250212 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-106.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-106.js @@ -15,5 +15,6 @@ Object.defineProperty(obj, "property", { configurable: NaN }); -assert(obj.hasOwnProperty("property")); -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-109.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-109.js index 26f6c405990..620ac59de40 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-109.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-109.js @@ -15,5 +15,6 @@ Object.defineProperty(obj, "property", { configurable: "" }); -assert(obj.hasOwnProperty("property")); -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-152.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-152.js index d355d3c45d2..1b1f411f954 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-152.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-152.js @@ -17,6 +17,7 @@ var attr = { Object.defineProperty(obj, "property", attr); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-153.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-153.js index 15eeb6e1cf5..c928091c318 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-153.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-153.js @@ -17,5 +17,6 @@ var attr = { Object.defineProperty(obj, "property", attr); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-162.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-162.js index e5081410b6c..4c627489dc3 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-162.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-162.js @@ -18,5 +18,6 @@ Object.defineProperty(attr, "writable", { Object.defineProperty(obj, "property", attr); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-163.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-163.js index 3615ce5c6f7..2d9862aaf14 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-163.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-163.js @@ -29,5 +29,6 @@ Object.defineProperty(child, "writable", { Object.defineProperty(obj, "property", child); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-164.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-164.js index baaa4a1a380..329f7e7a768 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-164.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-164.js @@ -24,5 +24,6 @@ var child = new ConstructFun(); Object.defineProperty(obj, "property", child); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-171-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-171-1.js index b5941c8bf53..6fa213d54d1 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-171-1.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-171-1.js @@ -17,8 +17,10 @@ try { var dateObj = new Date(); Object.defineProperty(obj, "property", dateObj); - verifyWritable(obj, "property"); + verifyProperty(obj, "property", { + writable: true, + }); } finally { delete Date.prototype.writable; } diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-178.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-178.js index 354b342f1dd..9f7a3001a12 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-178.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-178.js @@ -15,5 +15,6 @@ Object.defineProperty(obj, "property", { writable: undefined }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-179.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-179.js index 88c9e3f0dbf..8ce66de0758 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-179.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-179.js @@ -15,5 +15,6 @@ Object.defineProperty(obj, "property", { writable: null }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-181.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-181.js index 7b40135c27f..e8256ca8ad8 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-181.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-181.js @@ -15,5 +15,6 @@ Object.defineProperty(obj, "property", { writable: false }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-182.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-182.js index 2d818dba21b..15cae21ce39 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-182.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-182.js @@ -15,5 +15,6 @@ Object.defineProperty(obj, "property", { writable: 0 }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-183.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-183.js index 9b20abc03fe..27709f8d8e9 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-183.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-183.js @@ -15,5 +15,6 @@ Object.defineProperty(obj, "property", { writable: +0 }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-184.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-184.js index d788c3d238b..fbce1bbdc55 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-184.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-184.js @@ -15,5 +15,6 @@ Object.defineProperty(obj, "property", { writable: -0 }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-185.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-185.js index 883316e494a..85f81199023 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-185.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-185.js @@ -15,8 +15,7 @@ Object.defineProperty(obj, "property", { writable: NaN }); -assert(obj.hasOwnProperty("property")); - -verifyNotWritable(obj, "property"); - -assert.sameValue(typeof(obj.property), "undefined"); +verifyProperty(obj, "property", { + value: undefined, + writable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-188.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-188.js index e23005612c2..1f88f3d1704 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-188.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-188.js @@ -15,5 +15,6 @@ Object.defineProperty(obj, "property", { writable: "" }); -assert(obj.hasOwnProperty("property")); -verifyNotWritable(obj, "property"); +verifyProperty(obj, "property", { + writable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-73.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-73.js index cc482c6c89b..af06de0be85 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-73.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-73.js @@ -15,5 +15,6 @@ Object.defineProperty(obj, "property", { configurable: false }); -assert(obj.hasOwnProperty("property")); -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-74.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-74.js index d5c2b4ba9e3..ece0ca9efe5 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-74.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-74.js @@ -15,5 +15,6 @@ Object.defineProperty(obj, "property", { value: 100 }); -assert(obj.hasOwnProperty("property")); -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-76.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-76.js index 649f877b30b..bc9af3b94c7 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-76.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-76.js @@ -22,10 +22,7 @@ var child = new ConstructFun(); Object.defineProperty(obj, "property", child); -assert(obj.hasOwnProperty("property")); - -verifyNotConfigurable(obj, "property"); - -assert(obj.hasOwnProperty("property")); - -assert.sameValue(typeof(obj.property), "undefined"); +verifyProperty(obj, "property", { + value: undefined, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-83.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-83.js index b39b5cf911a..c7b9c84fdcd 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-83.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-83.js @@ -18,5 +18,6 @@ Object.defineProperty(attr, "configurable", { Object.defineProperty(obj, "property", attr); -assert(obj.hasOwnProperty("property")); -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-84.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-84.js index 73297b37272..bf48b79cd74 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-84.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-84.js @@ -29,5 +29,6 @@ Object.defineProperty(child, "configurable", { Object.defineProperty(obj, "property", child); -assert(obj.hasOwnProperty("property")); -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-85.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-85.js index 3d8051dc584..c02ad9a598c 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-85.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-85.js @@ -24,9 +24,8 @@ var child = new ConstructFun(); Object.defineProperty(obj, "property", child); -assert(obj.hasOwnProperty("property")); - -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + configurable: false, +}); -assert(obj.hasOwnProperty("property")); assert.sameValue(typeof(obj.property), "undefined"); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-3-99.js b/test/built-ins/Object/defineProperty/15.2.3.6-3-99.js index b809de32388..39489f718f8 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-3-99.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-3-99.js @@ -15,5 +15,6 @@ Object.defineProperty(obj, "property", { configurable: undefined }); -assert(obj.hasOwnProperty("property")); -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + configurable: false, +}); 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 efda2cd61d3..b50421ae29a 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 @@ -16,10 +16,10 @@ obj.foo = 100; // default value of attributes: writable: true, configurable: tru Object.defineProperty(obj, "foo", { value: 200 }); -verifyEqualTo(obj, "foo", 200); -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 200, + writable: true, + enumerable: true, + configurable: true, +}); 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 bd15bb56689..65c51fb5498 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 @@ -16,10 +16,10 @@ obj.foo = 100; // default value of attributes: writable: true, configurable: tru Object.defineProperty(obj, "foo", { value: undefined }); -verifyEqualTo(obj, "foo", undefined); -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: undefined, + writable: true, + enumerable: true, + configurable: true, +}); 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 5ad0a75c56a..4a24ef08299 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 @@ -16,10 +16,10 @@ obj.foo = undefined; // default value of attributes: writable: true, configurabl Object.defineProperty(obj, "foo", { value: 100 }); -verifyEqualTo(obj, "foo", 100); -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 100, + writable: true, + enumerable: true, + configurable: true, +}); 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 44f7cb2fb8f..233f710538f 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 @@ -20,10 +20,10 @@ Object.defineProperty(obj, "foo", { Object.defineProperty(obj, "foo", { writable: true }); -verifyEqualTo(obj, "foo", undefined); -verifyWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: undefined, + writable: true, + enumerable: false, + configurable: true, +}); 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 1a2b93d2a2b..16b97f58c0a 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 @@ -20,10 +20,10 @@ Object.defineProperty(obj, "foo", { Object.defineProperty(obj, "foo", { enumerable: true }); -verifyEqualTo(obj, "foo", undefined); -verifyNotWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: undefined, + writable: false, + enumerable: true, + configurable: true, +}); 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 8059ec36538..298ac55d64a 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 @@ -23,10 +23,9 @@ Object.defineProperty(obj, "foo", { configurable: false }); -verifyEqualTo(obj, "foo", 200); - -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 200, + writable: true, + enumerable: true, + configurable: false, +}); 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 c6a9e58fd56..2d252eb32d1 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 @@ -24,10 +24,10 @@ Object.defineProperty(obj, "foo", { writable: false, enumerable: false }); -verifyEqualTo(obj, "foo", 200); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 200, + writable: false, + enumerable: false, + configurable: true, +}); 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 f888deb3963..8eb082f9c5f 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 @@ -38,6 +38,7 @@ verifyEqualTo(obj, "foo", getFunc2()); verifyWritable(obj, "foo", "setVerifyHelpProp"); -verifyNotEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: false, + configurable: true, +}); 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 14f5eb8225b..344c561bfe4 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 @@ -34,6 +34,7 @@ Object.defineProperty(obj, "foo", { }); verifyWritable(obj, "foo", "setVerifyHelpProp"); -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: true, + configurable: true, +}); 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 8b7123a3907..748e9fc48d9 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 @@ -34,6 +34,7 @@ verifyEqualTo(obj, "foo", getFunc()); verifyWritable(obj, "foo", "setVerifyHelpProp"); -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: true, + configurable: true, +}); 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 459f7b702f6..3b18bc54514 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 @@ -32,6 +32,7 @@ Object.defineProperty(obj, "foo", { }); verifyWritable(obj, "foo", "setVerifyHelpProp"); -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: true, + configurable: true, +}); 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 85bde155ac8..506d680ba97 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 @@ -35,6 +35,7 @@ verifyEqualTo(obj, "foo", getFunc()); verifyWritable(obj, "foo", "setVerifyHelpProp"); -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: true, + configurable: true, +}); 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 7ec7a57bf2e..19df66ca292 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 @@ -30,6 +30,7 @@ Object.defineProperty(obj, "foo", { verifyEqualTo(obj, "foo", getFunc()); -verifyNotEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: false, + configurable: true, +}); 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 c8f90bfcc24..ec61e50356a 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 @@ -35,6 +35,7 @@ verifyEqualTo(obj, "foo", getFunc()); verifyWritable(obj, "foo", "setVerifyHelpProp"); -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: false, + configurable: false, +}); 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 702324b47d6..7f9bd9c57d7 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 @@ -42,6 +42,7 @@ verifyEqualTo(obj, "foo", getFunc2()); verifyWritable(obj, "foo", "setVerifyHelpProp"); -verifyNotEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-118.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-118.js index 9d6eac00a24..c4716e269ea 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-118.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-118.js @@ -16,6 +16,9 @@ Object.defineProperty(arrObj, "length", {}); assert.sameValue(arrObj.length, 0); arrObj.length = 2; -assert.sameValue(arrObj.length, 2); -verifyNotEnumerable(arrObj, "length"); -verifyNotConfigurable(arrObj, "length"); + +verifyProperty(arrObj, "length", { + value: 2, + enumerable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-119.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-119.js index f1bef7cb157..48d765efe4f 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-119.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-119.js @@ -21,6 +21,9 @@ Object.defineProperty(arrObj, "length", { assert.sameValue(arrObj.length, 0); arrObj.length = 2; -assert.sameValue(arrObj.length, 2); -verifyNotEnumerable(arrObj, "length"); -verifyNotConfigurable(arrObj, "length"); + +verifyProperty(arrObj, "length", { + value: 2, + enumerable: false, + configurable: false, +}); 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 e5940a06492..9747b9c3f57 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 @@ -16,10 +16,10 @@ var arrObj = []; Object.defineProperty(arrObj, "length", { writable: false }); -verifyEqualTo(arrObj, "length", 0); -verifyNotWritable(arrObj, "length"); - -verifyNotEnumerable(arrObj, "length"); - -verifyNotConfigurable(arrObj, "length"); +verifyProperty(arrObj, "length", { + value: 0, + writable: false, + enumerable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-167.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-167.js index a2de291b8af..2106ed9a6b4 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-167.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-167.js @@ -22,5 +22,8 @@ Object.defineProperty(arrObj, "length", { }); assert(!arrObj.hasOwnProperty("1")) -assert.sameValue(arrObj.length, 1); -verifyNotWritable(arrObj, "length"); + +verifyProperty(arrObj, "length", { + value: 1, + writable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-181.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-181.js index 11dcd7d4975..af2e5b983b7 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-181.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-181.js @@ -21,7 +21,9 @@ Object.defineProperty(arrObj, "length", { writable: false }); -verifyNotWritable(arrObj, "length"); - assert(!arrObj.hasOwnProperty("1")); -assert.sameValue(arrObj.length, 0); + +verifyProperty(arrObj, "length", { + value: 0, + writable: false, +}); 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 41014a62f7a..85ed7b0b0d7 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 @@ -24,15 +24,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arrObj, "0", "ownDataProperty"); - - verifyNotWritable(arrObj, "0"); - - verifyNotEnumerable(arrObj, "0"); - - verifyNotConfigurable(arrObj, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } } + +verifyProperty(arrObj, "0", { + value: "ownDataProperty", + writable: false, + enumerable: false, + configurable: false, +}); 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 2bbd215e264..e57b79525fe 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 @@ -29,12 +29,12 @@ try { } catch (e) { verifyEqualTo(arrObj, "0", getFunc()); - verifyNotEnumerable(arrObj, "0"); - - verifyNotConfigurable(arrObj, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e.name); } - } + +verifyProperty(arrObj, "0", { + enumerable: false, + configurable: false, +}); 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 491372f016f..5ce0608590b 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 @@ -41,9 +41,10 @@ try { verifyWritable(arrObj, "0", "helpVerifySet"); - verifyNotEnumerable(arrObj, "0"); - - verifyNotConfigurable(arrObj, "0"); + verifyProperty(arrObj, "0", { + enumerable: false, + configurable: false, + }); } 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 58c486b4c47..d939c8f0cf6 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 @@ -17,10 +17,9 @@ Object.defineProperty(arrObj, "0", { enumerable: true }); -verifyEqualTo(arrObj, "0", undefined); - -verifyNotWritable(arrObj, "0"); - -verifyEnumerable(arrObj, "0"); - -verifyNotConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: undefined, + writable: false, + enumerable: true, + configurable: false, +}); 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 9f5256890b7..efa8599b89a 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 @@ -20,10 +20,9 @@ Object.defineProperty(arrObj, "0", { configurable: false }); -verifyEqualTo(arrObj, "0", undefined); - -verifyWritable(arrObj, "0"); - -verifyEnumerable(arrObj, "0"); - -verifyNotConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: undefined, + writable: true, + enumerable: true, + configurable: false, +}); 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 f0482af89be..40b59f654d0 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 @@ -19,10 +19,10 @@ Object.defineProperty(arrObj, "0", { enumerable: true, configurable: false }); -verifyEqualTo(arrObj, "0", 1001); -verifyNotWritable(arrObj, "0"); - -verifyEnumerable(arrObj, "0"); - -verifyNotConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: 1001, + writable: false, + enumerable: true, + configurable: false, +}); 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 d6bdee22b19..67898e5dbd7 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 @@ -19,10 +19,10 @@ Object.defineProperty(arrObj, "0", { writable: true, configurable: true }); -verifyEqualTo(arrObj, "0", 1001); -verifyWritable(arrObj, "0"); - -verifyNotEnumerable(arrObj, "0"); - -verifyConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: 1001, + writable: true, + enumerable: false, + configurable: true, +}); 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 abee7a278e7..fdb2ffebd51 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 @@ -19,10 +19,10 @@ Object.defineProperty(arrObj, "0", { writable: true, enumerable: true }); -verifyEqualTo(arrObj, "0", 1001); -verifyWritable(arrObj, "0"); - -verifyEnumerable(arrObj, "0"); - -verifyNotConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: 1001, + writable: true, + enumerable: true, + configurable: false, +}); 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 e19e46508f9..176b20d7f93 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 @@ -19,10 +19,9 @@ Object.defineProperty(arrObj, "0", { configurable: false }); -verifyEqualTo(arrObj, "0", 1001); - -verifyNotWritable(arrObj, "0"); - -verifyNotEnumerable(arrObj, "0"); - -verifyNotConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: 1001, + writable: false, + enumerable: false, + configurable: false, +}); 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 04c926f7024..8e3fd42db21 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 @@ -24,6 +24,7 @@ Object.defineProperty(arrObj, "0", { verifyWritable(arrObj, "0", "setVerifyHelpProp"); -verifyEnumerable(arrObj, "0"); - -verifyConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + enumerable: true, + configurable: true, +}); 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 338b788efff..b7811fa469c 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 @@ -28,6 +28,7 @@ verifyEqualTo(arrObj, "0", getFunc()); verifyWritable(arrObj, "0", "setVerifyHelpProp"); -verifyNotEnumerable(arrObj, "0"); - -verifyConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + enumerable: false, + configurable: true, +}); 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 540472ce31e..01cdc164c6a 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 @@ -27,6 +27,7 @@ verifyEqualTo(arrObj, "0", getFunc()); verifyWritable(arrObj, "0", "setVerifyHelpProp"); -verifyEnumerable(arrObj, "0"); - -verifyNotConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + enumerable: true, + configurable: false, +}); 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 315efeb877b..608ff82c43a 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 @@ -38,6 +38,7 @@ verifyEqualTo(arrObj, "0", getFunc()); verifyWritable(arrObj, "0", "setVerifyHelpProp"); -verifyNotEnumerable(arrObj, "0"); - -verifyNotConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + enumerable: false, + configurable: false, +}); 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 0cd5779c470..a109ac18fc5 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 @@ -15,10 +15,10 @@ var arrObj = []; 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"); +verifyProperty(arrObj, "0", { + value: 101, + writable: true, + enumerable: true, + configurable: true, +}); 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 030a92221cc..1eb56bca5b0 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 @@ -32,6 +32,7 @@ verifyEqualTo(arrObj, "0", getFunc()); verifyWritable(arrObj, "0", "setVerifyHelpProp"); -verifyEnumerable(arrObj, "0"); - -verifyConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + enumerable: true, + configurable: true, +}); 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 a7abee3101e..2904e5805dc 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 @@ -22,10 +22,9 @@ Object.defineProperty(arrObj, "0", { configurable: true }); -verifyEqualTo(arrObj, "0", 100); - -verifyWritable(arrObj, "0"); - -verifyEnumerable(arrObj, "0"); - -verifyConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: 100, + writable: true, + enumerable: true, + configurable: true, +}); 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 2b691bf416d..7dbf74d199d 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 @@ -39,6 +39,7 @@ verifyEqualTo(arrObj, "0", getFunc()); verifyWritable(arrObj, "0", "setVerifyHelpProp"); -verifyEnumerable(arrObj, "0"); - -verifyConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + enumerable: true, + configurable: true, +}); 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 be41ec41099..cde4637b1ca 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 @@ -26,16 +26,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arrObj, "0", 101); - - verifyNotWritable(arrObj, "0"); - - verifyNotEnumerable(arrObj, "0"); - - verifyNotConfigurable(arrObj, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "0", { + value: 101, + writable: false, + enumerable: false, + configurable: false, +}); 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 49bff01a3a0..718b59b7507 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 @@ -19,10 +19,10 @@ Object.defineProperty(arrObj, "0", { Object.defineProperty(arrObj, "0", { value: undefined }); -verifyEqualTo(arrObj, "0", undefined); -verifyNotWritable(arrObj, "0"); - -verifyNotEnumerable(arrObj, "0"); - -verifyNotConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, +}); 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 ec465e9c281..257e4e4c3bf 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 @@ -19,10 +19,10 @@ Object.defineProperty(arrObj, "0", { Object.defineProperty(arrObj, "0", { value: null }); -verifyEqualTo(arrObj, "0", null); -verifyNotWritable(arrObj, "0"); - -verifyNotEnumerable(arrObj, "0"); - -verifyNotConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: null, + writable: false, + enumerable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-217.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-217.js index a8851cf79d8..7f2704c4e51 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-217.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-217.js @@ -20,9 +20,9 @@ Object.defineProperty(arrObj, "0", { value: NaN }); -assert(arrObj.hasOwnProperty("0")); -assert(arrObj[0] !== arrObj[0]); - -verifyNotWritable(arrObj, "0"); -verifyNotEnumerable(arrObj, "0"); -verifyNotConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: NaN, + writable: false, + enumerable: false, + configurable: false, +}); 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 346045a4038..388fa6c3961 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 @@ -23,16 +23,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arrObj, "0", -0); - - verifyNotWritable(arrObj, "0"); - - verifyNotEnumerable(arrObj, "0"); - - verifyNotConfigurable(arrObj, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "0", { + value: -0, + writable: false, + enumerable: false, + configurable: false, +}); 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 28624b02f97..b382383a126 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 @@ -23,16 +23,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arrObj, "0", +0); - - verifyNotWritable(arrObj, "0"); - - verifyNotEnumerable(arrObj, "0"); - - verifyNotConfigurable(arrObj, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "0", { + value: +0, + writable: false, + enumerable: false, + configurable: false, +}); 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 10696ad39bb..58973dd0500 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 @@ -20,10 +20,10 @@ Object.defineProperty(arrObj, "0", { Object.defineProperty(arrObj, "0", { value: 101 }); -verifyEqualTo(arrObj, "0", 101); -verifyNotWritable(arrObj, "0"); - -verifyNotEnumerable(arrObj, "0"); - -verifyNotConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: 101, + writable: false, + enumerable: false, + configurable: false, +}); 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 3bc35545018..00b58d6e180 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 @@ -25,16 +25,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arrObj, "0", 101); - - verifyNotWritable(arrObj, "0"); - - verifyNotEnumerable(arrObj, "0"); - - verifyNotConfigurable(arrObj, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "0", { + value: 101, + writable: false, + enumerable: false, + configurable: false, +}); 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 ed3c0936ccb..391bff02fed 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 @@ -20,10 +20,10 @@ Object.defineProperty(arrObj, "0", { Object.defineProperty(arrObj, "0", { value: "abcd" }); -verifyEqualTo(arrObj, "0", "abcd"); -verifyNotWritable(arrObj, "0"); - -verifyNotEnumerable(arrObj, "0"); - -verifyNotConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: "abcd", + writable: false, + enumerable: false, + configurable: false, +}); 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 2fd286ba29c..07cb7b875e4 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 @@ -25,16 +25,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arrObj, "0", "abcd"); - - verifyNotWritable(arrObj, "0"); - - verifyNotEnumerable(arrObj, "0"); - - verifyNotConfigurable(arrObj, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "0", { + value: "abcd", + writable: false, + enumerable: false, + configurable: false, +}); 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 de19df976cb..37aedff9327 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 @@ -20,10 +20,10 @@ Object.defineProperty(arrObj, "0", { Object.defineProperty(arrObj, "0", { value: true }); -verifyEqualTo(arrObj, "0", true); -verifyNotWritable(arrObj, "0"); - -verifyNotEnumerable(arrObj, "0"); - -verifyNotConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: true, + writable: false, + enumerable: false, + configurable: false, +}); 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 f988e61f528..ac2a6f91bb7 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 @@ -25,16 +25,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arrObj, "0", true); - - verifyNotWritable(arrObj, "0"); - - verifyNotEnumerable(arrObj, "0"); - - verifyNotConfigurable(arrObj, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "0", { + value: true, + writable: false, + enumerable: false, + configurable: false, +}); 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 5b7e7edd288..f755a1edf02 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 @@ -24,10 +24,11 @@ Object.defineProperty(arrObj, "0", { Object.defineProperty(arrObj, "0", { value: obj1 }); -verifyEqualTo(arrObj, "0", obj1); -verifyNotWritable(arrObj, "0"); - -verifyNotEnumerable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: obj1, + writable: false, + enumerable: false, + configurable: false, +}); -verifyNotConfigurable(arrObj, "0"); 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 5acc07bb1cc..cf456d7b37a 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 @@ -32,16 +32,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arrObj, "0", obj1); - - verifyNotWritable(arrObj, "0"); - - verifyNotEnumerable(arrObj, "0"); - - verifyNotConfigurable(arrObj, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "0", { + value: obj1, + writable: false, + enumerable: false, + configurable: false, +}); 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 3e873291d57..a497268201e 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 @@ -20,10 +20,10 @@ Object.defineProperty(arrObj, "0", { Object.defineProperty(arrObj, "0", { writable: false }); -verifyEqualTo(arrObj, "0", undefined); -verifyNotWritable(arrObj, "0"); - -verifyNotEnumerable(arrObj, "0"); - -verifyNotConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, +}); 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 859a41f6276..cc8164e8e66 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 @@ -21,10 +21,10 @@ Object.defineProperty(arrObj, "0", { Object.defineProperty(arrObj, "0", { writable: true }); -verifyEqualTo(arrObj, "0", undefined); -verifyWritable(arrObj, "0"); - -verifyNotEnumerable(arrObj, "0"); - -verifyConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: undefined, + writable: true, + enumerable: false, + configurable: true, +}); 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 d2d6797a6bd..63aa0e37e48 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 @@ -34,6 +34,7 @@ verifyEqualTo(arrObj, "0", getFunc()); verifyWritable(arrObj, "0", "helpVerifySet"); -verifyNotEnumerable(arrObj, "0"); - -verifyNotConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + enumerable: false, + configurable: false, +}); 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 b8cac4a63c2..6eafb69618b 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 @@ -40,6 +40,7 @@ verifyEqualTo(arrObj, "0", getFunc2()); verifyWritable(arrObj, "0", "helpVerifySet"); -verifyNotEnumerable(arrObj, "0"); - -verifyConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + enumerable: false, + configurable: true, +}); 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 757da898b27..b6817d510e2 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 @@ -26,6 +26,7 @@ Object.defineProperty(arrObj, "0", { }); verifyWritable(arrObj, "0", "setVerifyHelpProp"); -verifyNotEnumerable(arrObj, "0"); - -verifyNotConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + enumerable: false, + configurable: false, +}); 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 1fb647246b3..cb9ae5c84ab 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 @@ -29,6 +29,7 @@ Object.defineProperty(arrObj, "0", { }); verifyWritable(arrObj, "0", "setVerifyHelpProp"); -verifyNotEnumerable(arrObj, "0"); - -verifyConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + enumerable: false, + configurable: true, +}); 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 20d6f364b4f..f48605e64b6 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 @@ -20,10 +20,10 @@ Object.defineProperty(arrObj, "0", { Object.defineProperty(arrObj, "0", { enumerable: false }); -verifyEqualTo(arrObj, "0", undefined); -verifyNotWritable(arrObj, "0"); - -verifyNotEnumerable(arrObj, "0"); - -verifyNotConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, +}); 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 bc5cf278995..0d934a9196e 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 @@ -21,10 +21,10 @@ Object.defineProperty(arrObj, "0", { Object.defineProperty(arrObj, "0", { enumerable: true }); -verifyEqualTo(arrObj, "0", undefined); -verifyNotWritable(arrObj, "0"); - -verifyEnumerable(arrObj, "0"); - -verifyConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: undefined, + writable: false, + enumerable: true, + configurable: true, +}); 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 3ca28860079..1dbb7839c98 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 @@ -20,10 +20,10 @@ Object.defineProperty(arrObj, "0", { Object.defineProperty(arrObj, "0", { configurable: false }); -verifyEqualTo(arrObj, "0", undefined); -verifyNotWritable(arrObj, "0"); - -verifyNotEnumerable(arrObj, "0"); - -verifyNotConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, +}); 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 bbcd444370f..adc1e0fbbef 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 @@ -20,10 +20,10 @@ Object.defineProperty(arrObj, "0", { Object.defineProperty(arrObj, "0", { configurable: false }); -verifyEqualTo(arrObj, "0", undefined); -verifyNotWritable(arrObj, "0"); - -verifyNotEnumerable(arrObj, "0"); - -verifyNotConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, +}); 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 c68c3e635d9..b479855fa20 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 @@ -27,18 +27,15 @@ try { configurable: true }); throw new Test262Error("Expected an exception."); - } catch (e) { - verifyEqualTo(arrObj, "1", 3); - - verifyWritable(arrObj, "1"); - - verifyNotEnumerable(arrObj, "1"); - - verifyNotConfigurable(arrObj, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "1", { + value: 3, + writable: true, + enumerable: false, + configurable: false, +}); 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 7421b5a81b0..2be8486d23a 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 @@ -29,18 +29,15 @@ try { enumerable: true }); throw new Test262Error("Expected an exception."); - } catch (e) { - verifyEqualTo(arrObj, "1", 3); - - verifyWritable(arrObj, "1"); - - verifyNotEnumerable(arrObj, "1"); - - verifyNotConfigurable(arrObj, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "1", { + value: 3, + writable: true, + enumerable: false, + configurable: false, +}); 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 ffd8f4db3eb..f66ce0790db 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 @@ -32,12 +32,12 @@ try { } catch (e) { verifyWritable(arrObj, "1", "setVerifyHelpProp"); - verifyNotEnumerable(arrObj, "1"); - - verifyNotConfigurable(arrObj, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "1", { + enumerable: false, + configurable: false, +}); 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 4b2b67198fe..f6738617f48 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 @@ -24,18 +24,15 @@ try { set: function() {} }); throw new Test262Error("Expected an exception."); - } catch (e) { - verifyEqualTo(arrObj, "1", 3); - - verifyNotWritable(arrObj, "1"); - - verifyNotEnumerable(arrObj, "1"); - - verifyNotConfigurable(arrObj, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "1", { + value: 3, + writable: false, + enumerable: false, + configurable: false, +}); 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 d0cd2bd479b..e1d90951bac 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 @@ -20,10 +20,9 @@ Object.defineProperty(arrObj, "0", { enumerable: false }); -verifyEqualTo(arrObj, "0", 1001); - -verifyNotWritable(arrObj, "0"); - -verifyNotEnumerable(arrObj, "0"); - -verifyConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: 1001, + writable: false, + enumerable: false, + configurable: true, +}); 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 862326c37ef..6672f18dfe1 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 @@ -24,6 +24,7 @@ Object.defineProperty(arrObj, "0", { verifyWritable(arrObj, "0", "setVerifyHelpProp"); -verifyEnumerable(arrObj, "0"); - -verifyConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + enumerable: true, + configurable: true, +}); 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 bca8f06069d..3df90996477 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 @@ -27,6 +27,7 @@ arrObj[1] = 4; verifyEqualTo(arrObj, "1", getFunc()); -verifyNotEnumerable(arrObj, "1"); - -verifyConfigurable(arrObj, "1"); +verifyProperty(arrObj, "1", { + enumerable: false, + configurable: true, +}); 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 index a94e6f615af..05a0aab2a06 100644 --- 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 @@ -28,6 +28,7 @@ assert.throws(TypeError, function() { }); verifyEqualTo(arrObj, "1", getFunc()); -verifyNotEnumerable(arrObj, "1"); - -verifyConfigurable(arrObj, "1"); +verifyProperty(arrObj, "1", { + enumerable: false, + configurable: true, +}); 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 1c9e01206b4..9296aa7acde 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 @@ -27,10 +27,9 @@ Object.defineProperty(arrObj, "1", { value: 12 }); -verifyEqualTo(arrObj, "1", 12); - -verifyNotWritable(arrObj, "1"); - -verifyNotEnumerable(arrObj, "1"); - -verifyConfigurable(arrObj, "1"); +verifyProperty(arrObj, "1", { + value: 12, + writable: false, + enumerable: false, + configurable: true, +}); 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 d00495689a9..9e4728946a9 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 @@ -22,23 +22,19 @@ Object.defineProperty(arrObj, "1", { }); try { - Object.defineProperty(arrObj, "1", { writable: true }); throw new Test262Error("Expected an exception."); - } catch (e) { - verifyEqualTo(arrObj, "1", undefined); - - verifyNotWritable(arrObj, "1"); - - verifyNotEnumerable(arrObj, "1"); - - verifyNotConfigurable(arrObj, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "1", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, +}); 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 a6135654e34..cc99b02c416 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 @@ -29,16 +29,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arrObj, "1", 3); - - verifyNotWritable(arrObj, "1"); - - verifyNotEnumerable(arrObj, "1"); - - verifyNotConfigurable(arrObj, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "1", { + value: 3, + writable: false, + enumerable: false, + configurable: false, +}); 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 a9108891fd5..af3faa9bbad 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 @@ -18,7 +18,6 @@ var arrObj = []; Object.defineProperty(arrObj, "1", { value: -0 - }); try { @@ -27,16 +26,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arrObj, "1", -0); - - verifyNotWritable(arrObj, "1"); - - verifyNotEnumerable(arrObj, "1"); - - verifyNotConfigurable(arrObj, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "1", { + value: -0, + writable: false, + enumerable: false, + configurable: false, +}); 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 15c3378d427..207ce166ee3 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 @@ -27,16 +27,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arrObj, "1", +0); - - verifyNotWritable(arrObj, "1"); - - verifyNotEnumerable(arrObj, "1"); - - verifyNotConfigurable(arrObj, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "1", { + value: +0, + writable: false, + enumerable: false, + configurable: false, +}); 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 cb168bfe8f2..4667c5edd80 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 @@ -26,16 +26,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arrObj, "1", 12); - - verifyNotWritable(arrObj, "1"); - - verifyNotEnumerable(arrObj, "1"); - - verifyNotConfigurable(arrObj, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "1", { + value: 12, + writable: false, + enumerable: false, + configurable: false, +}); 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 a5c3fbeacd9..d8e4624d24f 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 @@ -26,16 +26,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arrObj, "1", "abc"); - - verifyNotWritable(arrObj, "1"); - - verifyNotEnumerable(arrObj, "1"); - - verifyNotConfigurable(arrObj, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "1", { + value: "abc", + writable: false, + enumerable: false, + configurable: false, +}); 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 e3aed4b274e..888a0d3f659 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 @@ -26,16 +26,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arrObj, "1", false); - - verifyNotWritable(arrObj, "1"); - - verifyNotEnumerable(arrObj, "1"); - - verifyNotConfigurable(arrObj, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "1", { + value: false, + writable: false, + enumerable: false, + configurable: false, +}); 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 0524d0a4e99..69aab46a6fb 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 @@ -29,16 +29,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arrObj, "1", obj); - - verifyNotWritable(arrObj, "1"); - - verifyNotEnumerable(arrObj, "1"); - - verifyNotConfigurable(arrObj, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "1", { + value: obj, + writable: false, + enumerable: false, + configurable: false, +}); 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 354a5bbcbf7..4f5a34cd078 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 @@ -32,12 +32,12 @@ try { } catch (e) { verifyWritable(arrObj, "1", "setVerifyHelpProp"); - verifyNotEnumerable(arrObj, "1"); - - verifyNotConfigurable(arrObj, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "1", { + enumerable: false, + configurable: false, +}); 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 bc278d21ebe..f0cce09f468 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 @@ -32,12 +32,12 @@ try { } catch (e) { verifyEqualTo(arrObj, "1", getFunc()); - verifyNotEnumerable(arrObj, "1"); - - verifyNotConfigurable(arrObj, "1"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "1", { + enumerable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-254.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-254.js index 233b2deac5b..fbb16aeadd1 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-254.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-254.js @@ -29,5 +29,7 @@ var desc = Object.getOwnPropertyDescriptor(arrObj, "1"); assert(desc.hasOwnProperty("get") && typeof desc.get === "undefined"); assert(desc.hasOwnProperty("set") && typeof desc.set === "undefined"); -verifyNotEnumerable(arrObj, "1"); -verifyNotConfigurable(arrObj, "1"); +verifyProperty(arrObj, "1", { + enumerable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-255.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-255.js index 2ea48e0801c..0eed87045f3 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-255.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-255.js @@ -40,7 +40,9 @@ try { assert(arrObj[1] === getFunc()); assert(desc.hasOwnProperty("set") && typeof desc.set === "undefined"); - - verifyNotEnumerable(arrObj, "1"); - verifyNotConfigurable(arrObj, "1"); } + +verifyProperty(arrObj, "1", { + enumerable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-256.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-256.js index 65eaf21ef63..fba4811333d 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-256.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-256.js @@ -38,6 +38,8 @@ try { assert(desc.hasOwnProperty("set") && typeof desc.set === "undefined"); verifyNotWritable(arrObj, "1"); - - verifyNotConfigurable(arrObj, "1"); } + +verifyProperty(arrObj, "1", { + configurable: false, +}); 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 d8563de2602..92b39bcc92b 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 @@ -31,6 +31,7 @@ Object.defineProperty(arrObj, "1", { verifyWritable(arrObj, "1", "setVerifyHelpProp"); -verifyNotEnumerable(arrObj, "1"); - -verifyNotConfigurable(arrObj, "1"); +verifyProperty(arrObj, "1", { + enumerable: false, + configurable: false, +}); 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 fc823796a5e..c79effc348b 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 @@ -17,10 +17,10 @@ var arrObj = [100]; Object.defineProperty(arrObj, "0", { value: 200 }); -verifyEqualTo(arrObj, "0", 200); -verifyWritable(arrObj, "0"); - -verifyEnumerable(arrObj, "0"); - -verifyConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: 200, + writable: true, + enumerable: true, + configurable: true, +}); 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 11d17e6726e..ed2d95707fb 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 @@ -17,10 +17,10 @@ var arrObj = [100]; Object.defineProperty(arrObj, "0", { value: undefined }); -verifyEqualTo(arrObj, "0", undefined); -verifyWritable(arrObj, "0"); - -verifyEnumerable(arrObj, "0"); - -verifyConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: undefined, + writable: true, + enumerable: true, + configurable: true, +}); 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 81452c8a3cd..5a7648b50ca 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 @@ -16,10 +16,10 @@ var arrObj = [undefined]; Object.defineProperty(arrObj, "0", { value: 100 }); -verifyEqualTo(arrObj, "0", 100); -verifyWritable(arrObj, "0"); - -verifyEnumerable(arrObj, "0"); - -verifyConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: 100, + writable: true, + enumerable: true, + configurable: true, +}); 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 00983ec92c1..624e732580a 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 @@ -16,10 +16,10 @@ var arrObj = [100]; Object.defineProperty(arrObj, "0", { writable: false }); -verifyEqualTo(arrObj, "0", 100); -verifyNotWritable(arrObj, "0"); - -verifyEnumerable(arrObj, "0"); - -verifyConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: 100, + writable: false, + enumerable: true, + configurable: true, +}); 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 3ab254e83f6..ea0716bd136 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 @@ -17,10 +17,10 @@ var arrObj = [100]; Object.defineProperty(arrObj, "0", { enumerable: false }); -verifyEqualTo(arrObj, "0", 100); -verifyWritable(arrObj, "0"); - -verifyNotEnumerable(arrObj, "0"); - -verifyConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: 100, + writable: true, + enumerable: false, + configurable: true, +}); 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 383acb95b15..85ca749293e 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 @@ -17,10 +17,10 @@ var arrObj = [100]; Object.defineProperty(arrObj, "0", { configurable: false }); -verifyEqualTo(arrObj, "0", 100); -verifyWritable(arrObj, "0"); - -verifyEnumerable(arrObj, "0"); - -verifyNotConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: 100, + writable: true, + enumerable: true, + configurable: false, +}); 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 cff7a2c8001..182b5262ed3 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 @@ -18,10 +18,10 @@ Object.defineProperty(arrObj, "0", { enumerable: false, configurable: false }); -verifyEqualTo(arrObj, "0", 100); -verifyNotWritable(arrObj, "0"); - -verifyNotEnumerable(arrObj, "0"); - -verifyNotConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + value: 100, + writable: false, + enumerable: false, + configurable: false, +}); 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 e0c5c88cc64..88a28da53ba 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 @@ -28,6 +28,7 @@ Object.defineProperty(arrObj, "0", { }); verifyEqualTo(arrObj, "0", getFunc()); -verifyNotEnumerable(arrObj, "0"); - -verifyConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + enumerable: false, + configurable: true, +}); 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 404c0b27bdc..323e64aca8b 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 @@ -26,6 +26,8 @@ Object.defineProperty(arrObj, "0", { Object.defineProperty(arrObj, "0", { get: undefined }); -verifyNotEnumerable(arrObj, "0"); -verifyConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + enumerable: false, + configurable: true, +}); 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 0b277d2b354..bc69b47bc8d 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 @@ -27,6 +27,7 @@ Object.defineProperty(arrObj, "0", { }); verifyEqualTo(arrObj, "0", getFunc()); -verifyNotEnumerable(arrObj, "0"); - -verifyConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + enumerable: false, + configurable: true, +}); 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 77eb277654e..ddc3f1d162a 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 @@ -27,6 +27,7 @@ Object.defineProperty(arrObj, "0", { }); verifyWritable(arrObj, "0", "setVerifyHelpProp"); -verifyNotEnumerable(arrObj, "0"); - -verifyConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + enumerable: false, + configurable: true, +}); 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 d745c8ec7a9..1ba91fa63dd 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 @@ -22,6 +22,8 @@ Object.defineProperty(arrObj, "0", { Object.defineProperty(arrObj, "0", { set: undefined }); -verifyNotEnumerable(arrObj, "0"); -verifyConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + enumerable: false, + configurable: true, +}); 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 2139b32e7b4..8dd33da58f1 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 @@ -28,6 +28,7 @@ Object.defineProperty(arrObj, "0", { }); verifyWritable(arrObj, "0", "setVerifyHelpProp"); -verifyNotEnumerable(arrObj, "0"); - -verifyConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + enumerable: false, + configurable: true, +}); 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 b6e062cfa9d..0a8f8a76853 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 @@ -29,6 +29,7 @@ Object.defineProperty(arrObj, "0", { }); verifyWritable(arrObj, "0", "setVerifyHelpProp"); -verifyNotEnumerable(arrObj, "0"); - -verifyConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + enumerable: false, + configurable: true, +}); 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 85c7d938e5c..700a6c61fb4 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 @@ -28,6 +28,7 @@ Object.defineProperty(arrObj, "0", { }); verifyWritable(arrObj, "0", "setVerifyHelpProp"); -verifyNotEnumerable(arrObj, "0"); - -verifyNotConfigurable(arrObj, "0"); +verifyProperty(arrObj, "0", { + enumerable: false, + configurable: false, +}); 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 96cd481ae26..40f6f94744d 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 @@ -39,6 +39,7 @@ verifyEqualTo(arrObj, "1", getFunc()); verifyWritable(arrObj, "1", "setVerifyHelpProp"); -verifyNotEnumerable(arrObj, "1"); - -verifyNotConfigurable(arrObj, "1"); +verifyProperty(arrObj, "1", { + enumerable: false, + configurable: false, +}); 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 bd2d31b6416..c70e28c138f 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 @@ -21,10 +21,9 @@ Object.defineProperty(arrObj, "property", { configurable: true }); -verifyEqualTo(arrObj, "property", 12); - -verifyWritable(arrObj, "property"); - -verifyEnumerable(arrObj, "property"); - -verifyConfigurable(arrObj, "property"); +verifyProperty(arrObj, "property", { + value: 12, + writable: true, + enumerable: true, + configurable: true, +}); 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 1a2a67150c9..fca26b9bbc6 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 @@ -32,6 +32,7 @@ verifyEqualTo(arrObj, "property", getFunc()); verifyWritable(arrObj, "property", "setVerifyHelpProp"); -verifyEnumerable(arrObj, "property"); - -verifyConfigurable(arrObj, "property"); +verifyProperty(arrObj, "property", { + enumerable: true, + configurable: true, +}); 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 cc89be68609..1e4bcca0ff4 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 @@ -38,6 +38,7 @@ verifyEqualTo(arrObj, "property", getFunc()); verifyWritable(arrObj, "property", "setVerifyHelpProp"); -verifyNotEnumerable(arrObj, "property"); - -verifyNotConfigurable(arrObj, "property"); +verifyProperty(arrObj, "property", { + enumerable: false, + configurable: false, +}); 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 b6001dca17e..ddd3b94e565 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 @@ -21,10 +21,9 @@ Object.defineProperty(arrObj, "property", { configurable: false }); -verifyEqualTo(arrObj, "property", 12); - -verifyNotWritable(arrObj, "property"); - -verifyNotEnumerable(arrObj, "property"); - -verifyNotConfigurable(arrObj, "property"); +verifyProperty(arrObj, "property", { + value: 12, + writable: false, + enumerable: false, + configurable: false, +}); 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 7e6fd7e763e..8b6bee9529b 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 @@ -23,16 +23,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arrObj, "property", 12); - - verifyNotWritable(arrObj, "property"); - - verifyNotEnumerable(arrObj, "property"); - - verifyNotConfigurable(arrObj, "property"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "property", { + value: 12, + writable: false, + enumerable: false, + configurable: false, +}); 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 fc13067f130..077e99caf07 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 @@ -23,16 +23,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arrObj, "property", undefined); - - verifyNotWritable(arrObj, "property"); - - verifyNotEnumerable(arrObj, "property"); - - verifyNotConfigurable(arrObj, "property"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "property", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, +}); 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 dc04dd3c51e..a610b2ee120 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 @@ -23,16 +23,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arrObj, "property", 12); - - verifyNotWritable(arrObj, "property"); - - verifyNotEnumerable(arrObj, "property"); - - verifyNotConfigurable(arrObj, "property"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "property", { + value: 12, + writable: false, + enumerable: false, + configurable: false, +}); 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 9fbead38591..911acf3fd88 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 @@ -23,16 +23,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arrObj, "property", 12); - - verifyNotWritable(arrObj, "property"); - - verifyNotEnumerable(arrObj, "property"); - - verifyNotConfigurable(arrObj, "property"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "property", { + value: 12, + writable: false, + enumerable: false, + configurable: false, +}); 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 b3c187de144..773d6052f1d 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 @@ -37,12 +37,12 @@ try { verifyWritable(arrObj, "property", "setVerifyHelpProp"); - verifyNotEnumerable(arrObj, "property"); - - verifyNotConfigurable(arrObj, "property"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "property", { + enumerable: false, + configurable: false, +}); 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 ed8430424fd..b27aa017ce3 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 @@ -28,12 +28,12 @@ try { } catch (e) { verifyWritable(arrObj, "property", "setVerifyHelpProp"); - verifyNotEnumerable(arrObj, "property"); - - verifyNotConfigurable(arrObj, "property"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "property", { + enumerable: false, + configurable: false, +}); 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 34f25953753..91471de0ffa 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 @@ -29,12 +29,12 @@ try { } catch (e) { verifyWritable(arrObj, "property", "setVerifyHelpProp"); - verifyNotEnumerable(arrObj, "property"); - - verifyNotConfigurable(arrObj, "property"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "property", { + enumerable: false, + configurable: false, +}); 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 e196cf75819..58b5947de74 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 @@ -29,12 +29,12 @@ try { } catch (e) { verifyWritable(arrObj, "property", "setVerifyHelpProp"); - verifyNotEnumerable(arrObj, "property"); - - verifyNotConfigurable(arrObj, "property"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(arrObj, "property", { + enumerable: false, + configurable: false, +}); 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 5062611af09..6784c6d7793 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 @@ -28,11 +28,10 @@ includes: [propertyHelper.js] throw new Test262Error("Expected a === 0, actually " + a); } - verifyEqualTo(arguments, "0", 10); - - verifyWritable(arguments, "0"); - - verifyEnumerable(arguments, "0"); - - verifyConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + value: 10, + writable: true, + enumerable: true, + configurable: true, + }); }(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 feef9e44ea6..99c076e413a 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 @@ -19,11 +19,11 @@ includes: [propertyHelper.js] enumerable: true, configurable: true }); - verifyEqualTo(arguments, "0", 10); - verifyWritable(arguments, "0"); - - verifyEnumerable(arguments, "0"); - - verifyConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + value: 10, + writable: true, + enumerable: true, + configurable: true, + }); }(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 99ff4e802c3..98ea2718c08 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 @@ -37,7 +37,8 @@ includes: [propertyHelper.js] verifyWritable(arguments, "0", "setVerifyHelpProp"); - verifyEnumerable(arguments, "0"); - - verifyConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + enumerable: true, + configurable: true, + }); }(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 bb6143ac589..561fbffa0b9 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 @@ -31,7 +31,8 @@ includes: [propertyHelper.js] verifyWritable(arguments, "0", "setVerifyHelpProp"); - verifyEnumerable(arguments, "0"); - - verifyConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + enumerable: true, + configurable: true, + }); }(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 0bf6c88e69f..31fb6864db7 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 @@ -36,7 +36,8 @@ includes: [propertyHelper.js] verifyEqualTo(arguments, "0", getFunc2()); - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + enumerable: false, + configurable: false, + }); }(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 17755a5de46..0c45b1da74b 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 @@ -31,7 +31,8 @@ includes: [propertyHelper.js] }); verifyEqualTo(arguments, "0", getFunc2()); - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + enumerable: false, + configurable: false, + }); }(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 c4760e5ca98..5d0813068e0 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 @@ -25,11 +25,10 @@ flags: [noStrict] throw new Test262Error('Expected a === 20, actually ' + a); } - verifyEqualTo(arguments, "0", 20); - - verifyNotWritable(arguments, "0"); - - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + value: 20, + writable: false, + enumerable: false, + configurable: false, + }); }(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 index c5c6b371ada..248de829fd4 100644 --- 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 @@ -25,11 +25,10 @@ flags: [onlyStrict] throw new Test262Error('Expected a === 0, actually ' + a); } - verifyEqualTo(arguments, "0", 20); - - verifyNotWritable(arguments, "0"); - - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + value: 20, + writable: false, + enumerable: false, + configurable: false, + }); }(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 97aec8b7ca2..064141d1f87 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 @@ -18,11 +18,11 @@ includes: [propertyHelper.js] enumerable: false, configurable: false }); - verifyEqualTo(arguments, "0", 20); - verifyNotWritable(arguments, "0"); - - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + value: 20, + writable: false, + enumerable: false, + configurable: false, + }); }(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 b9e13227ae7..e81d44ba0ec 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 @@ -20,11 +20,11 @@ includes: [propertyHelper.js] Object.defineProperty(arguments, "0", { value: 20 }); - verifyEqualTo(arguments, "0", 20); - verifyNotWritable(arguments, "0"); - - verifyEnumerable(arguments, "0"); - - verifyConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + value: 20, + writable: false, + enumerable: true, + configurable: true, + }); }(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 98eb9586b7e..742418ab407 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 @@ -28,22 +28,19 @@ flags: [noStrict] throw new Test262Error("Expected an exception."); } catch (e) { - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - verifyEqualTo(arguments, "0", 10); - - verifyNotWritable(arguments, "0"); - - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); - if (a !== 10) { throw new Test262Error('Expected "a === 10", actually ' + a); } - } + + verifyProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false, + }); }(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 79a71fed67b..b4960309b78 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 @@ -26,11 +26,10 @@ flags: [noStrict] throw new Test262Error('Expected "a === 10", actually ' + a); } - verifyEqualTo(arguments, "0", 20); - - verifyNotWritable(arguments, "0"); - - verifyEnumerable(arguments, "0"); - - verifyConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + value: 20, + writable: false, + enumerable: true, + configurable: true, + }); }(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 index 4d8158fa2ab..c972265591b 100644 --- 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 @@ -26,11 +26,10 @@ flags: [onlyStrict] throw new Test262Error('Expected "a === 0", actually ' + a); } - verifyEqualTo(arguments, "0", 20); - - verifyNotWritable(arguments, "0"); - - verifyEnumerable(arguments, "0"); - - verifyConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + value: 20, + writable: false, + enumerable: true, + configurable: true, + }); }(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 25dae83a37a..f0aee90af93 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 @@ -25,17 +25,15 @@ includes: [propertyHelper.js] }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arguments, "0", 10); - - verifyNotWritable(arguments, "0"); - - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false, + }); }(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 4b40ae8e88b..3e7a96bc3e4 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 @@ -32,18 +32,15 @@ flags: [noStrict] throw new Test262Error("Expected TypeError, got " + e); } - verifyEqualTo(arguments, "0", 10); - - verifyNotWritable(arguments, "0"); - - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); - if (a !== 10) { throw new Test262Error('Expected "a === 10", actually ' + a); } - } + verifyProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false, + }); }(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 b6dc716f20c..af51a8e3e31 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 @@ -24,17 +24,15 @@ includes: [propertyHelper.js] }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arguments, "0", 10); - - verifyNotWritable(arguments, "0"); - - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false, + }); }(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 7e5b60dd1a8..8fbda7692de 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 @@ -32,16 +32,15 @@ flags: [noStrict] throw new Test262Error("Expected TypeError, got " + e); } - verifyEqualTo(arguments, "0", 10); - - verifyNotWritable(arguments, "0"); - - verifyEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); - if (a !== 10) { throw new Test262Error('Expected "a === 10", actually ' + a); } } + + verifyProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: true, + configurable: false, + }); }(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 c84bf1ed89b..72090a9eb75 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 @@ -24,17 +24,15 @@ includes: [propertyHelper.js] }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arguments, "0", 10); - - verifyNotWritable(arguments, "0"); - - verifyEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: true, + configurable: false, + }); }(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 dd632b8672c..ccb305bc262 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 @@ -31,16 +31,15 @@ flags: [noStrict] throw new Test262Error("Expected TypeError, got " + e); } - verifyEqualTo(arguments, "0", 10); - - verifyNotWritable(arguments, "0"); - - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); - if (a !== 10) { throw new Test262Error('Expected "a === 10", actually ' + a); } } + + verifyProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false, + }); }(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 e6295ca2b13..a099fe11938 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 @@ -24,17 +24,15 @@ includes: [propertyHelper.js] }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arguments, "0", 10); - - verifyNotWritable(arguments, "0"); - - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false, + }); }(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 6f6b5b0d9ec..d34ad9c407e 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 @@ -38,13 +38,13 @@ includes: [propertyHelper.js] verifyEqualTo(arguments, "0", getFunc1()); - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "0", { + enumerable: false, + configurable: false, + }); }(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 402c570c5e8..8cc1e48f66b 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 @@ -32,13 +32,13 @@ includes: [propertyHelper.js] } catch (e) { verifyEqualTo(arguments, "0", getFunc1()); - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "0", { + enumerable: false, + configurable: false, + }); }(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 30dd1f884fd..b9029e10261 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 @@ -39,13 +39,13 @@ includes: [propertyHelper.js] verifyEqualTo(arguments, "0", getFunc()); - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "0", { + enumerable: false, + configurable: false, + }); }(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 5bb323da6ac..e1b31e0699b 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 @@ -33,13 +33,13 @@ includes: [propertyHelper.js] } catch (e) { verifyEqualTo(arguments, "0", getFunc()); - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "0", { + enumerable: false, + configurable: false, + }); }(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 00d3eeff307..4b9828cee9a 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 @@ -33,13 +33,13 @@ includes: [propertyHelper.js] } verifyEqualTo(arguments, "0", getFunc()); - verifyEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "0", { + enumerable: true, + configurable: false, + }); }(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 9ef1eea060f..88dc93adb7d 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 @@ -28,13 +28,13 @@ includes: [propertyHelper.js] } catch (e) { verifyEqualTo(arguments, "0", getFunc()); - verifyEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "0", { + enumerable: true, + configurable: false, + }); }(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 a2e8fbb3e49..3fe724052ec 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 @@ -33,13 +33,13 @@ includes: [propertyHelper.js] } verifyEqualTo(arguments, "0", getFunc()); - verifyEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "0", { + enumerable: true, + configurable: false, + }); }(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 094ebaf8ae5..f1b2b3e00e5 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 @@ -28,13 +28,13 @@ includes: [propertyHelper.js] } catch (e) { verifyEqualTo(arguments, "0", getFunc()); - verifyEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "0", { + enumerable: true, + configurable: false, + }); }(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 34ee4e92742..33dfdab8a83 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 @@ -23,11 +23,11 @@ includes: [propertyHelper.js] if (a !== 0) { throw new Test262Error("Expected a === 0, actually " + a); } - verifyEqualTo(arguments, "0", 10); - verifyNotWritable(arguments, "0"); - - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false, + }); }(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 6dc4637f910..320bd379285 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 @@ -20,11 +20,11 @@ includes: [propertyHelper.js] enumerable: false, configurable: false }); - verifyEqualTo(arguments, "0", 10); - verifyNotWritable(arguments, "0"); - - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false, + }); }(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 fe96b1e9a45..04b4b966571 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 @@ -36,7 +36,8 @@ includes: [propertyHelper.js] verifyWritable(arguments, "0", "setVerifyHelpProp"); - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + enumerable: false, + configurable: false, + }); }(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 fd92a564fba..8c27ee8c9b1 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 @@ -32,7 +32,8 @@ includes: [propertyHelper.js] verifyWritable(arguments, "0", "setVerifyHelpProp"); - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + enumerable: false, + configurable: false, + }); }(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 33605ec77ab..1d62577a63b 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 @@ -32,7 +32,8 @@ includes: [propertyHelper.js] }); verifyEqualTo(arguments, "0", getFunc2()); - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + enumerable: false, + configurable: false, + }); }()); 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 c775554aebf..e6ad749c6e1 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 @@ -19,11 +19,11 @@ includes: [propertyHelper.js] enumerable: false, configurable: false }); - verifyEqualTo(arguments, "0", 20); - verifyNotWritable(arguments, "0"); - - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + value: 20, + writable: false, + enumerable: false, + configurable: false, + }); }()); 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 f0ed749b850..200c4622860 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 @@ -25,17 +25,15 @@ includes: [propertyHelper.js] }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arguments, "0", 0); - - verifyNotWritable(arguments, "0"); - - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "0", { + value: 0, + writable: false, + enumerable: false, + configurable: false, + }); }()); 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 1ea0cc73110..c584ff8bd88 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 @@ -25,17 +25,15 @@ includes: [propertyHelper.js] }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arguments, "0", 0); - - verifyNotWritable(arguments, "0"); - - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "0", { + value: 0, + writable: false, + enumerable: false, + configurable: false, + }); }()); 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 7269014ff7e..377a8238f6b 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 @@ -25,17 +25,15 @@ includes: [propertyHelper.js] }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arguments, "0", 0); - - verifyNotWritable(arguments, "0"); - - verifyEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "0", { + value: 0, + writable: false, + enumerable: true, + configurable: false, + }); }()); 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 04e0737d50f..fb3d10677c3 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 @@ -25,17 +25,15 @@ includes: [propertyHelper.js] }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arguments, "0", 0); - - verifyNotWritable(arguments, "0"); - - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "0", { + value: 0, + writable: false, + enumerable: false, + configurable: false, + }); }()); 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 f98793d004d..6355fc5237d 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 @@ -33,13 +33,13 @@ includes: [propertyHelper.js] } catch (e) { verifyEqualTo(arguments, "0", getFunc1()); - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "0", { + enumerable: false, + configurable: false, + }); }()); 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 8b72ae3ed35..5301b5790fd 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 @@ -34,13 +34,13 @@ includes: [propertyHelper.js] } catch (e) { verifyEqualTo(arguments, "0", getFunc()); - verifyNotEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "0", { + enumerable: false, + configurable: false, + }); }()); 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 d743858af97..96bd605af6a 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 @@ -29,13 +29,13 @@ includes: [propertyHelper.js] } catch (e) { verifyEqualTo(arguments, "0", getFunc()); - verifyEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "0", { + enumerable: true, + configurable: false, + }); }()); 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 c3bf8b75a80..222d4eacbd0 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 @@ -27,13 +27,13 @@ includes: [propertyHelper.js] } catch (e) { verifyEqualTo(arguments, "0", getFunc()); - verifyEnumerable(arguments, "0"); - - verifyNotConfigurable(arguments, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "0", { + enumerable: true, + configurable: false, + }); }()); 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 7e90583b832..fec3c490410 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 @@ -18,11 +18,11 @@ includes: [propertyHelper.js] enumerable: true, configurable: true }); - verifyEqualTo(arguments, "genericProperty", 1001); - verifyWritable(arguments, "genericProperty"); - - verifyEnumerable(arguments, "genericProperty"); - - verifyConfigurable(arguments, "genericProperty"); + verifyProperty(arguments, "genericProperty", { + value: 1001, + writable: true, + enumerable: true, + configurable: true, + }); }(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 05d378ee262..7c4221bf607 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 @@ -18,11 +18,11 @@ includes: [propertyHelper.js] enumerable: true, configurable: true }); - verifyEqualTo(arguments, "genericProperty", 1001); - verifyWritable(arguments, "genericProperty"); - - verifyEnumerable(arguments, "genericProperty"); - - verifyConfigurable(arguments, "genericProperty"); + verifyProperty(arguments, "genericProperty", { + value: 1001, + writable: true, + enumerable: true, + configurable: true, + }); }(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 8ed0c58c065..006f87ed84e 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 @@ -29,7 +29,8 @@ includes: [propertyHelper.js] verifyWritable(arguments, "genericProperty", "testgetFunction"); - verifyEnumerable(arguments, "genericProperty"); - - verifyConfigurable(arguments, "genericProperty"); + verifyProperty(arguments, "genericProperty", { + enumerable: true, + configurable: true, + }); }(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 91670779742..cc358abcd0d 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 @@ -29,7 +29,8 @@ includes: [propertyHelper.js] verifyWritable(arguments, "genericProperty", "testgetFunction"); - verifyEnumerable(arguments, "genericProperty"); - - verifyConfigurable(arguments, "genericProperty"); + verifyProperty(arguments, "genericProperty", { + enumerable: true, + configurable: true, + }); }(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 6cc433db931..a9e78ba1d47 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 @@ -44,7 +44,8 @@ includes: [propertyHelper.js] verifyWritable(arguments, "genericProperty", "testgetFunction"); - verifyNotEnumerable(arguments, "genericProperty"); - - verifyNotConfigurable(arguments, "genericProperty"); + verifyProperty(arguments, "genericProperty", { + enumerable: false, + configurable: false, + }); }(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 023026644b2..9fd02954a11 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 @@ -40,7 +40,8 @@ includes: [propertyHelper.js] verifyWritable(arguments, "genericProperty", "testgetFunction"); - verifyNotEnumerable(arguments, "genericProperty"); - - verifyNotConfigurable(arguments, "genericProperty"); + verifyProperty(arguments, "genericProperty", { + enumerable: false, + configurable: false, + }); }(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 3b84cf6e32d..a6db83c83c7 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 @@ -23,11 +23,11 @@ includes: [propertyHelper.js] enumerable: false, configurable: false }); - verifyEqualTo(arguments, "genericProperty", 1002); - verifyWritable(arguments, "genericProperty"); - - verifyNotEnumerable(arguments, "genericProperty"); - - verifyNotConfigurable(arguments, "genericProperty"); + verifyProperty(arguments, "genericProperty", { + value: 1002, + writable: true, + enumerable: false, + configurable: false, + }); }(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 5383d137e2e..818a766504b 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 @@ -23,11 +23,11 @@ includes: [propertyHelper.js] enumerable: false, configurable: false }); - verifyEqualTo(arguments, "genericProperty", 1002); - verifyWritable(arguments, "genericProperty"); - - verifyNotEnumerable(arguments, "genericProperty"); - - verifyNotConfigurable(arguments, "genericProperty"); + verifyProperty(arguments, "genericProperty", { + value: 1002, + writable: true, + enumerable: false, + configurable: false, + }); }(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 bde6835e1f5..e6b876e0bc0 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 @@ -28,17 +28,15 @@ includes: [propertyHelper.js] throw new Test262Error('Expected "b === 2;", actually ' + b); } - verifyEqualTo(arguments, "genericProperty", 1001); - - verifyNotWritable(arguments, "genericProperty"); - - verifyNotEnumerable(arguments, "genericProperty"); - - verifyNotConfigurable(arguments, "genericProperty"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "genericProperty", { + value: 1001, + writable: false, + enumerable: false, + configurable: false, + }); }(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 6c46d73ab6f..845268cadb1 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 @@ -23,17 +23,15 @@ includes: [propertyHelper.js] }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arguments, "genericProperty", 1001); - - verifyNotWritable(arguments, "genericProperty"); - - verifyNotEnumerable(arguments, "genericProperty"); - - verifyNotConfigurable(arguments, "genericProperty"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "genericProperty", { + value: 1001, + writable: false, + enumerable: false, + configurable: false, + }); }(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 376ec4a9669..5d84b965bfe 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 @@ -23,17 +23,15 @@ includes: [propertyHelper.js] }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arguments, "genericProperty", undefined); - - verifyNotWritable(arguments, "genericProperty"); - - verifyNotEnumerable(arguments, "genericProperty"); - - verifyNotConfigurable(arguments, "genericProperty"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "genericProperty", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, + }); }(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 9fdbfd57c0a..f584bf1549b 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 @@ -22,19 +22,15 @@ includes: [propertyHelper.js] }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arguments, "genericProperty", undefined); - - verifyNotWritable(arguments, "genericProperty"); - - verifyNotEnumerable(arguments, "genericProperty"); - - verifyNotConfigurable(arguments, "genericProperty"); - - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + verifyProperty(arguments, "genericProperty", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, + }); }(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 1d819cc170b..0ec9b6dca22 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 @@ -23,18 +23,15 @@ includes: [propertyHelper.js] }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arguments, "genericProperty", undefined); - - verifyNotWritable(arguments, "genericProperty"); - - verifyEnumerable(arguments, "genericProperty"); - - verifyNotConfigurable(arguments, "genericProperty"); - - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "genericProperty", { + value: undefined, + writable: false, + enumerable: true, + configurable: false, + }); }(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 3a9778eb9cc..294da77ca69 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 @@ -22,17 +22,15 @@ includes: [propertyHelper.js] }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arguments, "genericProperty", undefined); - - verifyNotWritable(arguments, "genericProperty"); - - verifyEnumerable(arguments, "genericProperty"); - - verifyNotConfigurable(arguments, "genericProperty"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "genericProperty", { + value: undefined, + writable: false, + enumerable: true, + configurable: false, + }); }(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 cebb0b8342d..7887cc1b879 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 @@ -22,17 +22,15 @@ includes: [propertyHelper.js] }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arguments, "genericProperty", undefined); - - verifyNotWritable(arguments, "genericProperty"); - - verifyNotEnumerable(arguments, "genericProperty"); - - verifyNotConfigurable(arguments, "genericProperty"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "genericProperty", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, + }); }(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 0502133f050..4c279919f3a 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 @@ -21,19 +21,15 @@ includes: [propertyHelper.js] }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(arguments, "genericProperty", undefined); - - verifyNotWritable(arguments, "genericProperty"); - - verifyNotEnumerable(arguments, "genericProperty"); - - verifyNotConfigurable(arguments, "genericProperty"); - - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + verifyProperty(arguments, "genericProperty", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, + }); }(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 2a49eb3db55..c6855196409 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 @@ -41,13 +41,13 @@ includes: [propertyHelper.js] verifyWritable(arguments, "genericProperty", "helpVerifyGet"); - verifyNotEnumerable(arguments, "genericProperty"); - - verifyNotConfigurable(arguments, "genericProperty"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "genericProperty", { + enumerable: false, + configurable: false, + }); }(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 f00c9280591..3e8cbab1530 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 @@ -36,13 +36,13 @@ includes: [propertyHelper.js] verifyWritable(arguments, "genericProperty", "helpVerifyGet"); - verifyNotEnumerable(arguments, "genericProperty"); - - verifyNotConfigurable(arguments, "genericProperty"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "genericProperty", { + enumerable: false, + configurable: false, + }); }(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 918bf4b5dca..0bc23f8e2eb 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 @@ -30,13 +30,13 @@ includes: [propertyHelper.js] } catch (e) { verifyWritable(arguments, "genericProperty", "genericPropertyString"); - verifyNotEnumerable(arguments, "genericProperty"); - - verifyNotConfigurable(arguments, "genericProperty"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "genericProperty", { + enumerable: false, + configurable: false, + }); }(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 a940aa506bb..6190cf8b1c5 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 @@ -29,13 +29,13 @@ includes: [propertyHelper.js] } catch (e) { verifyWritable(arguments, "genericProperty", "genericPropertyString"); - verifyNotEnumerable(arguments, "genericProperty"); - - verifyNotConfigurable(arguments, "genericProperty"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "genericProperty", { + enumerable: false, + configurable: false, + }); }(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 7bbe5d1d866..f5dbfc9a93e 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 @@ -32,14 +32,13 @@ includes: [propertyHelper.js] } verifyWritable(arguments, "genericProperty", "genericPropertyString"); - verifyEnumerable(arguments, "genericProperty"); - - verifyNotConfigurable(arguments, "genericProperty"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + verifyProperty(arguments, "genericProperty", { + enumerable: true, + configurable: false, + }); }(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 38dd7166c7a..5374376e124 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 @@ -28,13 +28,13 @@ includes: [propertyHelper.js] } catch (e) { verifyWritable(arguments, "genericProperty", "genericPropertyString"); - verifyEnumerable(arguments, "genericProperty"); - - verifyNotConfigurable(arguments, "genericProperty"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "genericProperty", { + enumerable: true, + configurable: false, + }); }(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 8bb9cecb088..50d454cda4b 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 @@ -28,13 +28,13 @@ includes: [propertyHelper.js] } catch (e) { verifyWritable(arguments, "genericProperty", "genericPropertyString"); - verifyNotEnumerable(arguments, "genericProperty"); - - verifyNotConfigurable(arguments, "genericProperty"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + + verifyProperty(arguments, "genericProperty", { + enumerable: false, + configurable: false, + }); }(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 caab62dbe39..b6dfa0dca63 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 @@ -27,14 +27,13 @@ includes: [propertyHelper.js] } catch (e) { verifyWritable(arguments, "genericProperty", "genericPropertyString"); - verifyNotEnumerable(arguments, "genericProperty"); - - verifyNotConfigurable(arguments, "genericProperty"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } - false; + + verifyProperty(arguments, "genericProperty", { + enumerable: false, + configurable: 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 40a30010e57..82248a8dd78 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 @@ -24,10 +24,9 @@ Object.defineProperty(obj, "property", { value: 1002 }); -verifyEqualTo(obj, "property", 1002); - -verifyWritable(obj, "property"); - -verifyNotEnumerable(obj, "property"); - -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + value: 1002, + writable: true, + enumerable: false, + configurable: false, +}); 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 b6353b226be..1b0ccfa65f5 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 @@ -24,10 +24,9 @@ Object.defineProperty(obj, "0", { value: 1002 }); -verifyEqualTo(obj, "0", 1002); - -verifyWritable(obj, "0"); - -verifyNotEnumerable(obj, "0"); - -verifyNotConfigurable(obj, "0"); +verifyProperty(obj, "0", { + value: 1002, + writable: true, + enumerable: false, + configurable: false, +}); 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 5b416a7602c..e4792c0d61e 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 @@ -26,10 +26,9 @@ Object.defineProperty(obj, "property", { value: 1002 }); -verifyEqualTo(obj, "property", 1002); - -verifyWritable(obj, "property"); - -verifyNotEnumerable(obj, "property"); - -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + value: 1002, + writable: true, + enumerable: false, + configurable: false, +}); 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 0d2f0a3a2e9..be87dae2e17 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 @@ -24,10 +24,9 @@ Object.defineProperty(obj, "0", { value: 1002 }); -verifyEqualTo(obj, "0", 1002); - -verifyWritable(obj, "0"); - -verifyNotEnumerable(obj, "0"); - -verifyNotConfigurable(obj, "0"); +verifyProperty(obj, "0", { + value: 1002, + writable: true, + enumerable: false, + configurable: false, +}); 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 b32f5fc5331..4af1ac7508b 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 @@ -24,10 +24,9 @@ Object.defineProperty(obj, "prop", { value: 1002 }); -verifyEqualTo(obj, "prop", 1002); - -verifyWritable(obj, "prop"); - -verifyNotEnumerable(obj, "prop"); - -verifyNotConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + value: 1002, + writable: true, + enumerable: false, + configurable: false, +}); 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 4cebcc068e6..48b06c206b5 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 @@ -26,10 +26,9 @@ Object.defineProperty(obj, "0", { value: 1002 }); -verifyEqualTo(obj, "0", 1002); - -verifyWritable(obj, "0"); - -verifyNotEnumerable(obj, "0"); - -verifyNotConfigurable(obj, "0"); +verifyProperty(obj, "0", { + value: 1002, + writable: true, + enumerable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-335.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-335.js index eebfebf57aa..33255b28922 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-335.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-335.js @@ -18,6 +18,7 @@ Object.defineProperty(obj, "prop", { configurable: false }); -assert(obj.hasOwnProperty("prop")); -verifyNotConfigurable(obj, "prop"); -assert.sameValue(obj.prop, 2010); +verifyProperty(obj, "prop", { + value: 2010, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-349.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-349.js index bbcfa17b517..1aa5553fcd0 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-349.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-349.js @@ -18,6 +18,7 @@ Object.defineProperty(obj, "prop", { configurable: false }); -assert(obj.hasOwnProperty("prop")); -verifyNotConfigurable(obj, "prop"); -assert.sameValue(obj.prop, 2010); +verifyProperty(obj, "prop", { + value: 2010, + configurable: false, +}); 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 250dde1b084..872d8c8effa 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 @@ -24,10 +24,9 @@ Object.defineProperty(obj, "property", { value: 1002 }); -verifyEqualTo(obj, "property", 1002); - -verifyNotWritable(obj, "property"); - -verifyNotEnumerable(obj, "property"); - -verifyConfigurable(obj, "property"); +verifyProperty(obj, "property", { + value: 1002, + writable: false, + enumerable: false, + configurable: true, +}); 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 61ff2684d7d..39b09c85c5b 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 @@ -24,10 +24,9 @@ Object.defineProperty(obj, "0", { value: 1002 }); -verifyEqualTo(obj, "0", 1002); - -verifyNotWritable(obj, "0"); - -verifyNotEnumerable(obj, "0"); - -verifyConfigurable(obj, "0"); +verifyProperty(obj, "0", { + value: 1002, + writable: false, + enumerable: false, + configurable: true, +}); 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 0ee0d5a4ea6..b0ff2cd7793 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 @@ -24,10 +24,9 @@ Object.defineProperty(obj, "prop", { value: 1002 }); -verifyEqualTo(obj, "prop", 1002); - -verifyNotWritable(obj, "prop"); - -verifyNotEnumerable(obj, "prop"); - -verifyConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + value: 1002, + writable: false, + enumerable: false, + configurable: true, +}); 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 780fee5e5ea..1d5f11528ac 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 @@ -26,10 +26,9 @@ Object.defineProperty(obj, "0", { value: 1002 }); -verifyEqualTo(obj, "0", 1002); - -verifyNotWritable(obj, "0"); - -verifyNotEnumerable(obj, "0"); - -verifyConfigurable(obj, "0"); +verifyProperty(obj, "0", { + value: 1002, + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-15.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-15.js index ad1e8d85eba..58bdeb586f9 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-15.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-15.js @@ -19,5 +19,7 @@ Object.defineProperty(obj, "prop", { configurable: true }); -assert.sameValue(obj.prop, 2010); -verifyNotWritable(obj, "prop"); +verifyProperty(obj, "prop", { + value: 2010, + writable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-16.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-16.js index 7432ccdd394..1d51c6d30d4 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-16.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-16.js @@ -22,5 +22,7 @@ Object.defineProperty(obj, "0", { configurable: true }); -assert.sameValue(obj[0], 2010); -verifyNotWritable(obj, "0"); +verifyProperty(obj, "0", { + value: 2010, + writable: false, +}); 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 46bf18f4171..c5cf9884faf 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 @@ -24,10 +24,9 @@ Object.defineProperty(obj, "0", { value: 1002 }); -verifyEqualTo(obj, "0", 1002); - -verifyNotWritable(obj, "0"); - -verifyNotEnumerable(obj, "0"); - -verifyConfigurable(obj, "0"); +verifyProperty(obj, "0", { + value: 1002, + writable: false, + enumerable: false, + configurable: true, +}); 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 f1f5cb86c60..207428e773e 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 @@ -25,10 +25,9 @@ Object.defineProperty(obj, "property", { value: 1002 }); -verifyEqualTo(obj, "property", 1002); - -verifyNotWritable(obj, "property"); - -verifyNotEnumerable(obj, "property"); - -verifyConfigurable(obj, "property"); +verifyProperty(obj, "property", { + value: 1002, + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-6.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-6.js index 0b48c16cce7..8ca806d6077 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-6.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-6.js @@ -19,5 +19,7 @@ Object.defineProperty(obj, "0", { configurable: true }); -assert.sameValue(obj[0], 2010); -verifyNotWritable(obj, "0"); +verifyProperty(obj, "0", { + value: 2010, + writable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-7.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-7.js index 81fb76e8937..d3a5d0c80ce 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-7.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-7.js @@ -21,5 +21,7 @@ Object.defineProperty(obj, "prop", { configurable: true }); -assert.sameValue(obj.prop, 2010); -verifyNotWritable(obj, "prop"); +verifyProperty(obj, "prop", { + value: 2010, + writable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354.js index 712fde363c6..14adbea136d 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354.js @@ -18,5 +18,7 @@ Object.defineProperty(obj, "prop", { configurable: true }); -assert.sameValue(obj.prop, 2010); -verifyNotWritable(obj, "prop"); +verifyProperty(obj, "prop", { + value: 2010, + writable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-361.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-361.js index 069e007cf6e..7127f98de04 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-361.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-361.js @@ -18,5 +18,7 @@ Object.defineProperty(obj, "prop", { configurable: false }); -assert.sameValue(obj.prop, 2010); -verifyNotWritable(obj, "prop"); +verifyProperty(obj, "prop", { + value: 2010, + writable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-363.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-363.js index 17f928bda2b..b9f770412de 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-363.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-363.js @@ -18,5 +18,6 @@ Object.defineProperty(obj, "prop", { configurable: false }); -assert(obj.hasOwnProperty("prop")); -verifyNotConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-368.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-368.js index 96db2fbedd8..2ba32faf912 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-368.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-368.js @@ -18,5 +18,7 @@ Object.defineProperty(obj, "prop", { configurable: true }); -assert.sameValue(obj.prop, 2010); -verifyNotWritable(obj, "prop"); +verifyProperty(obj, "prop", { + value: 2010, + writable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-375.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-375.js index 93537a5aebd..57ced4e58bd 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-375.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-375.js @@ -18,5 +18,7 @@ Object.defineProperty(obj, "prop", { configurable: false }); -assert.sameValue(obj.prop, 2010); -verifyNotWritable(obj, "prop"); +verifyProperty(obj, "prop", { + value: 2010, + writable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-377.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-377.js index 7e748275db0..2d58b1518ef 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-377.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-377.js @@ -18,5 +18,6 @@ Object.defineProperty(obj, "prop", { configurable: false }); -assert(obj.hasOwnProperty("prop")); -verifyNotConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + configurable: false, +}); 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 8a2d9ccfd20..867de469aba 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 @@ -16,13 +16,12 @@ try { configurable: true }); - verifyEqualTo(Math, "foo", 12); - - verifyNotWritable(Math, "foo"); - - verifyNotEnumerable(Math, "foo"); - - verifyConfigurable(Math, "foo"); + verifyProperty(Math, "foo", { + value: 12, + writable: false, + enumerable: false, + configurable: true, + }); } 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 b9c4cb1be71..e066d7666a2 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 @@ -16,12 +16,11 @@ Object.defineProperty(JSON, "foo", { configurable: true }); -verifyEqualTo(JSON, "foo", 12); - -verifyNotWritable(JSON, "foo"); - -verifyNotEnumerable(JSON, "foo"); - -verifyConfigurable(JSON, "foo"); +verifyProperty(JSON, "foo", { + value: 12, + writable: false, + enumerable: false, + configurable: true, +}); delete JSON.foo; diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-429.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-429.js index a81c5f63d33..5b153dc5b06 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-429.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-429.js @@ -24,9 +24,9 @@ var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); Object.defineProperty(obj, "prop", { configurable: false }); -var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); -verifyNotConfigurable(obj, "prop"); assert.sameValue(desc1.configurable, true); -assert.sameValue(desc2.configurable, false); -assert(obj.hasOwnProperty("prop")); + +verifyProperty(obj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-434.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-434.js index 30d4a32574f..e40d7f5a964 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-434.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-434.js @@ -19,10 +19,6 @@ Object.defineProperty(obj, "prop", { configurable: false }); -assert(obj.hasOwnProperty("prop")); - -var desc = Object.getOwnPropertyDescriptor(obj, "prop"); - -assert.sameValue(desc.configurable, false); - -verifyNotConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-438.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-438.js index 1ccc9f436d1..8dab30577ac 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-438.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-438.js @@ -30,12 +30,9 @@ try { } catch (e) { assert(e instanceof TypeError); - var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); - assert.sameValue(desc1.configurable, false); - assert.sameValue(desc2.configurable, false); - - verifyNotConfigurable(obj, "prop"); - - assert(obj.hasOwnProperty("prop")); } + +verifyProperty(obj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-447.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-447.js index 29400f464f4..6a8a1980f78 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-447.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-447.js @@ -25,10 +25,8 @@ Object.defineProperty(obj, "prop", { configurable: false }); -var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); - assert.sameValue(desc1.configurable, true); -assert.sameValue(desc2.configurable, false); -verifyNotConfigurable(obj, "prop"); -assert(obj.hasOwnProperty("prop")); +verifyProperty(obj, "prop", { + configurable: false, +}); 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 20fabf0abd0..1c89f2b36fe 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 @@ -15,10 +15,9 @@ Object.defineProperty(this, "foo", { configurable: true }); -verifyEqualTo(this, "foo", 12); - -verifyNotWritable(this, "foo"); - -verifyNotEnumerable(this, "foo"); - -verifyConfigurable(this, "foo"); +verifyProperty(this, "foo", { + value: 12, + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-452.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-452.js index e180f9c4c37..fef129c1fe4 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-452.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-452.js @@ -19,10 +19,6 @@ Object.defineProperty(obj, "prop", { configurable: false }); -assert(obj.hasOwnProperty("prop")); - -var desc = Object.getOwnPropertyDescriptor(obj, "prop"); - -assert.sameValue(desc.configurable, false); - -verifyNotConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-456.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-456.js index 996b566cfc0..ef38d377b15 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-456.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-456.js @@ -30,12 +30,9 @@ try { } catch (e) { assert(e instanceof TypeError); - var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); - assert.sameValue(desc1.configurable, false); - assert.sameValue(desc2.configurable, false); - - verifyNotConfigurable(obj, "prop"); - - assert(obj.hasOwnProperty("prop")); } + +verifyProperty(obj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-465.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-465.js index 52e31f678ea..98894492c81 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-465.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-465.js @@ -30,10 +30,8 @@ Object.defineProperty(obj, "prop", { configurable: false }); -var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); - assert.sameValue(desc1.configurable, true); -assert.sameValue(desc2.configurable, false); -verifyNotConfigurable(obj, "prop"); -assert(obj.hasOwnProperty("prop")); +verifyProperty(obj, "prop", { + configurable: false, +}); 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 079b5051709..5dd798a8d8f 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 @@ -18,10 +18,9 @@ Object.defineProperty(obj, "property", { configurable: false }); -verifyEqualTo(obj, "property", undefined); - -verifyWritable(obj, "property"); - -verifyEnumerable(obj, "property"); - -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + value: undefined, + writable: true, + enumerable: true, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-470.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-470.js index d725daa9965..cb40023f87b 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-470.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-470.js @@ -26,11 +26,8 @@ Object.defineProperty(obj, "prop", { assert(obj.hasOwnProperty("prop")); -var desc = Object.getOwnPropertyDescriptor(obj, "prop"); - verifyNotWritable(obj, "prop"); -verifyNotConfigurable(obj, "prop"); - -assert.sameValue(desc.configurable, false); -assert(obj.hasOwnProperty("prop")); +verifyProperty(obj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-474.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-474.js index 20533735ab0..edb4238dfc1 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-474.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-474.js @@ -35,12 +35,9 @@ try { } catch (e) { assert(e instanceof TypeError); - var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); - assert.sameValue(desc1.configurable, false); - assert.sameValue(desc2.configurable, false); - - verifyNotConfigurable(obj, "prop"); - - assert(obj.hasOwnProperty("prop")); } + +verifyProperty(obj, "prop", { + configurable: false, +}); 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 14b658aad74..69132714262 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 @@ -18,10 +18,9 @@ Object.defineProperty(obj, "property", { configurable: false }); -verifyEqualTo(obj, "property", 1001); - -verifyNotWritable(obj, "property"); - -verifyEnumerable(obj, "property"); - -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + value: 1001, + writable: false, + enumerable: true, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-483.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-483.js index f957a1dd03b..fce4fe4043e 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-483.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-483.js @@ -30,11 +30,8 @@ Object.defineProperty(obj, "prop", { configurable: false }); -var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); - assert.sameValue(desc1.configurable, true); -assert.sameValue(desc2.configurable, false); - -verifyNotConfigurable(obj, "prop"); -assert(obj.hasOwnProperty("prop")); +verifyProperty(obj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-488.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-488.js index feb15642896..7c8e8b1639f 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-488.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-488.js @@ -24,11 +24,6 @@ Object.defineProperty(obj, "prop", { configurable: false }); -assert(obj.hasOwnProperty("prop")); - -var desc = Object.getOwnPropertyDescriptor(obj, "prop"); - -verifyNotConfigurable(obj, "prop"); -assert.sameValue(desc.configurable, false); - -assert(obj.hasOwnProperty("prop")); +verifyProperty(obj, "prop", { + configurable: false, +}); 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 98db24fdda0..f8fd685677c 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 @@ -17,10 +17,10 @@ Object.defineProperty(obj, "property", { writable: true, configurable: true }); -verifyEqualTo(obj, "property", 1001); -verifyWritable(obj, "property"); - -verifyNotEnumerable(obj, "property"); - -verifyConfigurable(obj, "property"); +verifyProperty(obj, "property", { + value: 1001, + writable: true, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-492.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-492.js index 55d5e0cbf7a..e98d9505a5f 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-492.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-492.js @@ -35,12 +35,9 @@ try { } catch (e) { assert(e instanceof TypeError); - var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); - - verifyNotConfigurable(obj, "prop"); - assert.sameValue(desc1.configurable, false); - assert.sameValue(desc2.configurable, false); - - assert(obj.hasOwnProperty("prop")); } + +verifyProperty(obj, "prop", { + configurable: false, +}); 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 71b2c8d1ab0..84d2c5cbd15 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 @@ -17,10 +17,10 @@ Object.defineProperty(obj, "property", { writable: true, enumerable: true }); -verifyEqualTo(obj, "property", 1001); -verifyWritable(obj, "property"); - -verifyEnumerable(obj, "property"); - -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + value: 1001, + writable: true, + enumerable: true, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-501.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-501.js index 8e08bb9076e..1b10f4c4d80 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-501.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-501.js @@ -29,12 +29,10 @@ Object.defineProperty(obj, "prop", { configurable: false }); -var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); - assert.sameValue(desc1.configurable, true); -assert.sameValue(desc2.configurable, false); verifyNotWritable(obj, "prop"); -verifyNotConfigurable(obj, "prop"); -assert(obj.hasOwnProperty("prop")); +verifyProperty(obj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-506.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-506.js index 0156fa1bae2..c9cb84f8e42 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-506.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-506.js @@ -23,12 +23,6 @@ Object.defineProperty(obj, "prop", { configurable: false }); -assert(obj.hasOwnProperty("prop")); - -var desc = Object.getOwnPropertyDescriptor(obj, "prop"); - -assert.sameValue(desc.configurable, false); - -verifyNotConfigurable(obj, "prop"); - -assert(obj.hasOwnProperty("prop")); +verifyProperty(obj, "prop", { + configurable: false, +}); 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 58b2ff240ad..d2292c4345d 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 @@ -20,10 +20,9 @@ Object.defineProperty(obj, "property", { configurable: false }); -verifyEqualTo(obj, "property", 1001); - -verifyNotWritable(obj, "property"); - -verifyNotEnumerable(obj, "property"); - -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + value: 1001, + writable: false, + enumerable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-510.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-510.js index af4e5108e7f..8b6ed9cb203 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-510.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-510.js @@ -34,12 +34,9 @@ try { } catch (e) { assert(e instanceof TypeError); - var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); - assert.sameValue(desc1.configurable, false); - assert.sameValue(desc2.configurable, false); - - verifyNotConfigurable(obj, "prop"); - - assert(obj.hasOwnProperty("prop")); } + +verifyProperty(obj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-519.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-519.js index 98382e84f36..9eec73636ee 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-519.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-519.js @@ -29,11 +29,8 @@ Object.defineProperty(obj, "prop", { configurable: false }); -var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); - assert.sameValue(desc1.configurable, true); -assert.sameValue(desc2.configurable, false); - -verifyNotConfigurable(obj, "prop"); -assert(obj.hasOwnProperty("prop")); +verifyProperty(obj, "prop", { + configurable: false, +}); 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 1908bdf0155..3c24d642d6c 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 @@ -14,10 +14,9 @@ var obj = {}; Object.defineProperty(obj, "property", {}); -verifyEqualTo(obj, "property", undefined); - -verifyNotWritable(obj, "property"); - -verifyNotEnumerable(obj, "property"); - -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-524.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-524.js index 0020bc962eb..01a43a11c79 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-524.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-524.js @@ -23,11 +23,6 @@ Object.defineProperty(obj, "prop", { configurable: false }); -assert(obj.hasOwnProperty("prop")); -var desc = Object.getOwnPropertyDescriptor(obj, "prop"); - -assert.sameValue(desc.configurable, false); - -verifyNotConfigurable(obj, "prop"); - -assert(obj.hasOwnProperty("prop")); +verifyProperty(obj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-528.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-528.js index c53535ba5fb..2dfe6744c3d 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-528.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-528.js @@ -34,12 +34,9 @@ try { } catch (e) { assert(e instanceof TypeError); - var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); - assert.sameValue(desc1.configurable, false); - assert.sameValue(desc2.configurable, false); - - verifyNotConfigurable(obj, "prop"); - - assert(obj.hasOwnProperty("prop")); } + +verifyProperty(obj, "prop", { + configurable: false, +}); 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 454f0f8f5f0..c7c66cbbaf0 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 @@ -23,6 +23,7 @@ Object.defineProperty(obj, "property", { verifyWritable(obj, "property", "setVerifyHelpProp"); -verifyEnumerable(obj, "property"); - -verifyConfigurable(obj, "property"); +verifyProperty(obj, "property", { + enumerable: true, + configurable: true, +}); 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 e24cd71d19d..3c29b578dc2 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 @@ -40,6 +40,7 @@ verifyEqualTo(obj, "property", getFunc()); verifyWritable(obj, "property", "verifySetFunction1"); -verifyNotEnumerable(obj, "property"); - -verifyConfigurable(obj, "property"); +verifyProperty(obj, "property", { + enumerable: false, + configurable: true, +}); 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 9d6ac91a6ca..207c04853b5 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 @@ -42,6 +42,7 @@ verifyEqualTo(obj, "0", getFunc()); verifyWritable(obj, "0", "verifySetFunction1"); -verifyNotEnumerable(obj, "0"); - -verifyConfigurable(obj, "0"); +verifyProperty(obj, "0", { + enumerable: false, + configurable: true, +}); 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 ed85b1d9609..a40275041b7 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 @@ -41,6 +41,7 @@ verifyEqualTo(obj, "prop", getFunc()); verifyWritable(obj, "prop", "verifySetFunction1"); -verifyNotEnumerable(obj, "prop"); - -verifyConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + enumerable: false, + configurable: true, +}); 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 2cb8b6a77c8..fbd47b44162 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 @@ -43,6 +43,7 @@ verifyEqualTo(obj, "0", getFunc()); verifyWritable(obj, "0", "verifySetFunction1"); -verifyNotEnumerable(obj, "0"); - -verifyConfigurable(obj, "0"); +verifyProperty(obj, "0", { + enumerable: false, + configurable: true, +}); 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 16bd7a19944..09e8538483b 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 @@ -42,6 +42,7 @@ verifyEqualTo(obj, "0", getFunc()); verifyWritable(obj, "0", "verifySetFunction1"); -verifyNotEnumerable(obj, "0"); - -verifyConfigurable(obj, "0"); +verifyProperty(obj, "0", { + enumerable: false, + configurable: true, +}); 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 cc97b6371a7..fb42381143c 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 @@ -43,6 +43,7 @@ verifyEqualTo(obj, "property", getFunc()); verifyWritable(obj, "property", "verifySetFunction1"); -verifyNotEnumerable(obj, "property"); - -verifyConfigurable(obj, "property"); +verifyProperty(obj, "property", { + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-537.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-537.js index 15de96a3d02..3c145957684 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-537.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-537.js @@ -34,9 +34,9 @@ var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); Object.defineProperty(obj, "prop", { configurable: false }); -var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); -verifyNotConfigurable(obj, "prop"); assert.sameValue(desc1.configurable, true); -assert.sameValue(desc2.configurable, false); -assert(obj.hasOwnProperty("prop")); + +verifyProperty(obj, "prop", { + configurable: false, +}); 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 585a7a6c0dc..b416039d965 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 @@ -54,6 +54,7 @@ verifyEqualTo(obj, "0", 1001); verifyNotWritable(obj, "0"); -verifyEnumerable(obj, "0"); - -verifyConfigurable(obj, "0"); +verifyProperty(obj, "0", { + enumerable: true, + configurable: true, +}); 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 7e7a31eb017..6049cfe0132 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 @@ -56,6 +56,7 @@ verifyEqualTo(obj, "prop", 1001); verifyNotWritable(obj, "prop"); -verifyEnumerable(obj, "prop"); - -verifyConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + enumerable: true, + configurable: true, +}); 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 86e3bc41864..893b38a9590 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 @@ -55,6 +55,7 @@ verifyEqualTo(obj, "prop", 1001); verifyNotWritable(obj, "prop"); -verifyEnumerable(obj, "prop"); - -verifyConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + enumerable: true, + configurable: true, +}); 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 5f90f5676a5..1569f7dbd75 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 @@ -56,6 +56,7 @@ verifyEqualTo(obj, "0", 1001); verifyNotWritable(obj, "0"); -verifyEnumerable(obj, "0"); - -verifyConfigurable(obj, "0"); +verifyProperty(obj, "0", { + enumerable: true, + configurable: true, +}); 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 16f883a9b49..81f9a66aed2 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 @@ -51,6 +51,7 @@ verifyEqualTo(obj, "prop", 1001); verifyNotWritable(obj, "prop"); -verifyEnumerable(obj, "prop"); - -verifyConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + enumerable: true, + configurable: true, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-54.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-54.js index 6fa06bee3b9..76ffb46bbf0 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-54.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-54.js @@ -26,5 +26,7 @@ assert.sameValue(obj.property, "property"); var desc = Object.getOwnPropertyDescriptor(obj, "property"); assert.sameValue(typeof desc.set, "undefined"); -verifyNotEnumerable(obj, "property"); -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + enumerable: false, + configurable: false, +}); 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 0a9fea9843f..f5f0f63fb39 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 @@ -38,12 +38,13 @@ try { verifyEqualTo(obj, "property", getFunc()); verifyWritable(obj, "property", "verifySetFunction"); - - verifyNotEnumerable(obj, "property"); - - verifyNotConfigurable(obj, "property"); } +verifyProperty(obj, "property", { + enumerable: false, + configurable: false, +}); + try { Object.defineProperty(obj, "property", { set: function(value) { @@ -59,12 +60,12 @@ try { verifyWritable(obj, "property", "verifySetFunction"); - verifyNotEnumerable(obj, "property"); - - verifyNotConfigurable(obj, "property"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "property", { + enumerable: false, + configurable: false, +}); 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 14b503ae680..fa89541ef2b 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 @@ -38,12 +38,13 @@ try { verifyEqualTo(obj, "0", getFunc()); verifyWritable(obj, "0", "verifySetFunction"); - - verifyNotEnumerable(obj, "0"); - - verifyNotConfigurable(obj, "0"); } +verifyProperty(obj, "0", { + enumerable: false, + configurable: false, +}); + try { Object.defineProperty(obj, "0", { set: function(value) { @@ -59,12 +60,12 @@ try { verifyWritable(obj, "0", "verifySetFunction"); - verifyNotEnumerable(obj, "0"); - - verifyNotConfigurable(obj, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "0", { + enumerable: false, + configurable: false, +}); 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 507a9f6ab83..fb35825d33b 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 @@ -39,12 +39,13 @@ try { verifyEqualTo(obj, "property", getFunc()); verifyWritable(obj, "property", "verifySetFunction"); - - verifyNotEnumerable(obj, "property"); - - verifyNotConfigurable(obj, "property"); } +verifyProperty(obj, "property", { + enumerable: false, + configurable: false, +}); + try { Object.defineProperty(obj, "property", { set: function(value) { @@ -61,12 +62,12 @@ try { verifyWritable(obj, "property", "verifySetFunction"); - verifyNotEnumerable(obj, "property"); - - verifyNotConfigurable(obj, "property"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "property", { + enumerable: false, + configurable: false, +}); 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 cb6c76f3377..83c8ed56361 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 @@ -39,12 +39,13 @@ try { verifyEqualTo(obj, "0", getFunc()); verifyWritable(obj, "0", "verifySetFunction"); - - verifyNotEnumerable(obj, "0"); - - verifyNotConfigurable(obj, "0"); } +verifyProperty(obj, "0", { + enumerable: false, + configurable: false, +}); + try { Object.defineProperty(obj, "0", { set: function(value) { @@ -60,13 +61,12 @@ try { verifyWritable(obj, "0", "verifySetFunction"); - verifyNotEnumerable(obj, "0"); - - verifyNotConfigurable(obj, "0"); - - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "0", { + enumerable: false, + configurable: false, +}); 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 edd742881cd..5050fa0768e 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 @@ -38,12 +38,13 @@ try { verifyEqualTo(obj, "prop", getFunc()); verifyWritable(obj, "prop", "verifySetFunction"); - - verifyNotEnumerable(obj, "prop"); - - verifyNotConfigurable(obj, "prop"); } +verifyProperty(obj, "prop", { + enumerable: false, + configurable: false, +}); + try { Object.defineProperty(obj, "prop", { set: function(value) { @@ -60,13 +61,12 @@ try { verifyWritable(obj, "prop", "verifySetFunction"); - verifyNotEnumerable(obj, "prop"); - - verifyNotConfigurable(obj, "prop"); - - if (!(e1 instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e1); } - } + +verifyProperty(obj, "prop", { + enumerable: false, + configurable: false, +}); 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 ab4b8c8b0e1..66923975f6a 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 @@ -40,12 +40,13 @@ try { verifyEqualTo(obj, "0", getFunc()); verifyWritable(obj, "0", "verifySetFunction"); - - verifyNotEnumerable(obj, "0"); - - verifyNotConfigurable(obj, "0"); } +verifyProperty(obj, "0", { + enumerable: false, + configurable: false, +}); + try { Object.defineProperty(obj, "0", { set: function(value) { @@ -61,12 +62,12 @@ try { verifyWritable(obj, "0", "verifySetFunction"); - verifyNotEnumerable(obj, "0"); - - verifyNotConfigurable(obj, "0"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "0", { + enumerable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-542.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-542.js index 900872e59df..63bc7484c71 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-542.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-542.js @@ -28,5 +28,6 @@ Object.defineProperty(obj, "prop", { configurable: false }); -assert(obj.hasOwnProperty("prop")); -verifyNotConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-546.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-546.js index 4bcc2a72346..4e5c3161d3b 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-546.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-546.js @@ -29,6 +29,7 @@ Object.defineProperty(obj, "prop", { configurable: false }); var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); +assert.sameValue(desc1.configurable, false); try { Object.defineProperty(obj, "prop", { @@ -38,10 +39,8 @@ try { throw new Test262Error("Expected TypeError"); } catch (e) { assert(e instanceof TypeError); - assert.sameValue(desc1.configurable, false); - - var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); - assert.sameValue(desc2.configurable, false); - - verifyNotConfigurable(obj, "prop"); } + +verifyProperty(obj, "prop", { + configurable: false, +}); 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 ddcb88bea78..5bd0c311306 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 @@ -51,13 +51,12 @@ try { verifyWritable(obj, "0", "verifySetFunc"); - verifyEnumerable(obj, "0"); - - verifyNotConfigurable(obj, "0"); - - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "0", { + enumerable: true, + configurable: false, +}); 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 f555557321b..c61deba9d62 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 @@ -53,13 +53,12 @@ try { verifyWritable(obj, "prop", "verifySetFunc"); - verifyEnumerable(obj, "prop"); - - verifyNotConfigurable(obj, "prop"); - - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "prop", { + enumerable: true, + configurable: false, +}); 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 fa61275260b..ca9005eec2f 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 @@ -51,12 +51,13 @@ try { verifyWritable(obj, "prop", "verifySetFunc"); - verifyEnumerable(obj, "prop"); - - verifyNotConfigurable(obj, "prop"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } } + +verifyProperty(obj, "prop", { + enumerable: true, + configurable: false, +}); 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 a2af81f61a6..0e7858cee83 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 @@ -51,13 +51,12 @@ try { verifyWritable(obj, "0", "verifySetFunc"); - verifyEnumerable(obj, "0"); - - verifyNotConfigurable(obj, "0"); - - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "0", { + enumerable: true, + configurable: false, +}); 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 3453d91984a..029f8804cfb 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 @@ -28,6 +28,7 @@ verifyEqualTo(obj, "property", getFunc()); verifyWritable(obj, "property", "setVerifyHelpProp"); -verifyNotEnumerable(obj, "property"); - -verifyConfigurable(obj, "property"); +verifyProperty(obj, "property", { + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-555.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-555.js index 89dbef084e1..191c9d45a05 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-555.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-555.js @@ -36,4 +36,6 @@ Object.defineProperty(obj, "prop", { configurable: false }); -verifyNotConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + configurable: false, +}); 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 6e0ccaa92e6..347fbb74afc 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 @@ -27,6 +27,7 @@ verifyEqualTo(obj, "property", getFunc()); verifyWritable(obj, "property", "setVerifyHelpProp"); -verifyEnumerable(obj, "property"); - -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + enumerable: true, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-560.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-560.js index 75751e6f391..5d1a6d5e47f 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-560.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-560.js @@ -28,5 +28,6 @@ Object.defineProperty(obj, "prop", { configurable: false }); -assert(obj.hasOwnProperty("prop")); -verifyNotConfigurable(obj, "prop"); +verifyProperty(obj, "prop", { + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-564.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-564.js index 7b17cd49922..7145fbb1e02 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-564.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-564.js @@ -28,7 +28,6 @@ Object.defineProperty(obj, "prop", { enumerable: false, configurable: false }); -var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); try { Object.defineProperty(obj, "prop", { @@ -38,6 +37,8 @@ try { throw new Test262Error("Expected TypeError"); } catch (e) { assert(e instanceof TypeError); - assert.sameValue(desc1.configurable, false); - verifyNotConfigurable(obj, "prop"); } + +verifyProperty(obj, "prop", { + configurable: false, +}); 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 e94a09d884f..30d3ccce9e9 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 @@ -37,6 +37,7 @@ verifyEqualTo(obj, "property", getFunc()); verifyWritable(obj, "property", "setVerifyHelpProp"); -verifyNotEnumerable(obj, "property"); - -verifyNotConfigurable(obj, "property"); +verifyProperty(obj, "property", { + enumerable: false, + configurable: false, +}); 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 4fa1be7baaa..e20c4bb661e 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 @@ -15,10 +15,10 @@ var obj = {}; 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"); +verifyProperty(obj, "foo", { + value: 101, + writable: true, + enumerable: true, + configurable: true, +}); 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 e8eeb3ca6d2..c855746479f 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 @@ -30,6 +30,7 @@ verifyEqualTo(obj, "foo", getFunc()); verifyWritable(obj, "foo", "helpVerifySet"); -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: false, + configurable: false, +}); 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 12e6d66daa7..a65224074ec 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 @@ -17,10 +17,10 @@ obj.foo = 101; // default value of attributes: writable: true, configurable: tru Object.defineProperty(obj, "foo", { value: "abc" }); -verifyEqualTo(obj, "foo", "abc"); -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: "abc", + writable: true, + enumerable: true, + configurable: true, +}); 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 59ece60977b..1adaf2312c9 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 @@ -19,10 +19,10 @@ Object.defineProperty(obj, "foo", { Object.defineProperty(obj, "foo", { value: undefined }); -verifyEqualTo(obj, "foo", undefined); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-611.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-611.js index 65d279313c8..f7811a088bd 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-611.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-611.js @@ -6,31 +6,11 @@ es5id: 15.2.3.6-4-611 description: > ES5 Attributes - all attributes in Function.prototype.bind are correct +includes: [propertyHelper.js] ---*/ -var desc = Object.getOwnPropertyDescriptor(Function.prototype, "bind"); - -var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); - -var temp = Function.prototype.bind; - -Function.prototype.bind = "2010"; - -var isWritable = (Function.prototype.bind === "2010"); - -var isEnumerable = false; - -for (var prop in Function.prototype) { - if (prop === "bind") { - isEnumerable = true; - } -} - -delete Function.prototype.bind; - -var isConfigurable = !Function.prototype.hasOwnProperty("bind"); - -assert(propertyAreCorrect, 'propertyAreCorrect !== true'); -assert(isWritable, 'isWritable !== true'); -assert.sameValue(isEnumerable, false, 'isEnumerable'); -assert(isConfigurable, 'isConfigurable !== true'); +verifyProperty(Function.prototype, "bind", { + writable: true, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-612.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-612.js index d643c1b2084..704b67cea5c 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-612.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-612.js @@ -6,31 +6,11 @@ es5id: 15.2.3.6-4-612 description: > ES5 Attributes - all attributes in Array.prototype.indexOf are correct +includes: [propertyHelper.js] ---*/ -var desc = Object.getOwnPropertyDescriptor(Array.prototype, "indexOf"); - -var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); - -var temp = Array.prototype.indexOf; - -Array.prototype.indexOf = "2010"; - -var isWritable = (Array.prototype.indexOf === "2010"); - -var isEnumerable = false; - -for (var prop in Array.prototype) { - if (prop === "indexOf") { - isEnumerable = true; - } -} - -delete Array.prototype.indexOf; - -var isConfigurable = !Array.prototype.hasOwnProperty("indexOf"); - -assert(propertyAreCorrect, 'propertyAreCorrect !== true'); -assert(isWritable, 'isWritable !== true'); -assert.sameValue(isEnumerable, false, 'isEnumerable'); -assert(isConfigurable, 'isConfigurable !== true'); +verifyProperty(Array.prototype, "indexOf", { + writable: true, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-613.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-613.js index b775e09e94f..e9f7a933043 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-613.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-613.js @@ -4,31 +4,11 @@ /*--- es5id: 15.2.3.6-4-613 description: ES5 Attributes - all attributes in Object.lastIndexOf are correct +includes: [propertyHelper.js] ---*/ -var desc = Object.getOwnPropertyDescriptor(Array.prototype, "lastIndexOf"); - -var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); - -var temp = Array.prototype.lastIndexOf; - -Array.prototype.lastIndexOf = "2010"; - -var isWritable = (Array.prototype.lastIndexOf === "2010"); - -var isEnumerable = false; - -for (var prop in Array.prototype) { - if (prop === "lastIndexOf") { - isEnumerable = true; - } -} - -delete Array.prototype.lastIndexOf; - -var isConfigurable = !Array.prototype.hasOwnProperty("lastIndexOf"); - -assert(propertyAreCorrect, 'propertyAreCorrect !== true'); -assert(isWritable, 'isWritable !== true'); -assert.sameValue(isEnumerable, false, 'isEnumerable'); -assert(isConfigurable, 'isConfigurable !== true'); +verifyProperty(Array.prototype, "lastIndexOf", { + writable: true, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-614.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-614.js index 1a4b20786f9..c3187e51100 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-614.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-614.js @@ -6,31 +6,11 @@ es5id: 15.2.3.6-4-614 description: > ES5 Attributes - all attributes in Array.prototype.every are correct +includes: [propertyHelper.js] ---*/ -var desc = Object.getOwnPropertyDescriptor(Array.prototype, "every"); - -var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); - -var temp = Array.prototype.every; - -Array.prototype.every = "2010"; - -var isWritable = (Array.prototype.every === "2010"); - -var isEnumerable = false; - -for (var prop in Array.prototype) { - if (prop === "every") { - isEnumerable = true; - } -} - -delete Array.prototype.every; - -var isConfigurable = !Array.prototype.hasOwnProperty("every"); - -assert(propertyAreCorrect, 'propertyAreCorrect !== true'); -assert(isWritable, 'isWritable !== true'); -assert.sameValue(isEnumerable, false, 'isEnumerable'); -assert(isConfigurable, 'isConfigurable !== true'); +verifyProperty(Array.prototype, "every", { + writable: true, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-615.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-615.js index 837e8922f6b..b45d414f5ec 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-615.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-615.js @@ -4,31 +4,11 @@ /*--- es5id: 15.2.3.6-4-615 description: ES5 Attributes - all attributes in Array.prototype.some are correct +includes: [propertyHelper.js] ---*/ -var desc = Object.getOwnPropertyDescriptor(Array.prototype, "some"); - -var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); - -var temp = Array.prototype.some; - -Array.prototype.some = "2010"; - -var isWritable = (Array.prototype.some === "2010"); - -var isEnumerable = false; - -for (var prop in Array.prototype) { - if (prop === "some") { - isEnumerable = true; - } -} - -delete Array.prototype.some; - -var isConfigurable = !Array.prototype.hasOwnProperty("some"); - -assert(propertyAreCorrect, 'propertyAreCorrect !== true'); -assert(isWritable, 'isWritable !== true'); -assert.sameValue(isEnumerable, false, 'isEnumerable'); -assert(isConfigurable, 'isConfigurable !== true'); +verifyProperty(Array.prototype, "some", { + writable: true, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-616.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-616.js index 73a58e8dd62..a1b91ff8d9b 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-616.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-616.js @@ -6,31 +6,11 @@ es5id: 15.2.3.6-4-616 description: > ES5 Attributes - all attributes in Array.prototype.forEach are correct +includes: [propertyHelper.js] ---*/ -var desc = Object.getOwnPropertyDescriptor(Array.prototype, "forEach"); - -var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); - -var temp = Array.prototype.forEach; - -Array.prototype.forEach = "2010"; - -var isWritable = (Array.prototype.forEach === "2010"); - -var isEnumerable = false; - -for (var prop in Array.prototype) { - if (prop === "forEach") { - isEnumerable = true; - } -} - -delete Array.prototype.forEach; - -var isConfigurable = !Array.prototype.hasOwnProperty("forEach"); - -assert(propertyAreCorrect, 'propertyAreCorrect !== true'); -assert(isWritable, 'isWritable !== true'); -assert.sameValue(isEnumerable, false, 'isEnumerable'); -assert(isConfigurable, 'isConfigurable !== true'); +verifyProperty(Array.prototype, "forEach", { + writable: true, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-617.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-617.js index 64509a0a09e..7d7a89cac48 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-617.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-617.js @@ -4,31 +4,11 @@ /*--- es5id: 15.2.3.6-4-617 description: ES5 Attributes - all attributes in Array.prototype.map are correct +includes: [propertyHelper.js] ---*/ -var desc = Object.getOwnPropertyDescriptor(Array.prototype, "map"); - -var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); - -var temp = Array.prototype.map; - -Array.prototype.map = "2010"; - -var isWritable = (Array.prototype.map === "2010"); - -var isEnumerable = false; - -for (var prop in Array.prototype) { - if (prop === "map") { - isEnumerable = true; - } -} - -delete Array.prototype.map; - -var isConfigurable = !Array.prototype.hasOwnProperty("map"); - -assert(propertyAreCorrect, 'propertyAreCorrect !== true'); -assert(isWritable, 'isWritable !== true'); -assert.sameValue(isEnumerable, false, 'isEnumerable'); -assert(isConfigurable, 'isConfigurable !== true'); +verifyProperty(Array.prototype, "map", { + writable: true, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-618.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-618.js index 1bac706cdc6..fe625b6003e 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-618.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-618.js @@ -6,31 +6,11 @@ es5id: 15.2.3.6-4-618 description: > ES5 Attributes - all attributes in Array.prototype.filter are correct +includes: [propertyHelper.js] ---*/ -var desc = Object.getOwnPropertyDescriptor(Array.prototype, "filter"); - -var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); - -var temp = Array.prototype.filter; - -Array.prototype.filter = "2010"; - -var isWritable = (Array.prototype.filter === "2010"); - -var isEnumerable = false; - -for (var prop in Array.prototype) { - if (prop === "filter") { - isEnumerable = true; - } -} - -delete Array.prototype.filter; - -var isConfigurable = !Array.prototype.hasOwnProperty("filter"); - -assert(propertyAreCorrect, 'propertyAreCorrect !== true'); -assert(isWritable, 'isWritable !== true'); -assert.sameValue(isEnumerable, false, 'isEnumerable'); -assert(isConfigurable, 'isConfigurable !== true'); +verifyProperty(Array.prototype, "filter", { + writable: true, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-619.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-619.js index 7a16d04bd19..cec19397e26 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-619.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-619.js @@ -6,31 +6,11 @@ es5id: 15.2.3.6-4-619 description: > ES5 Attributes - all attributes in Array.prototype.reduce are correct +includes: [propertyHelper.js] ---*/ -var desc = Object.getOwnPropertyDescriptor(Array.prototype, "reduce"); - -var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); - -var temp = Array.prototype.reduce; - -Array.prototype.reduce = "2010"; - -var isWritable = (Array.prototype.reduce === "2010"); - -var isEnumerable = false; - -for (var prop in Array.prototype) { - if (prop === "reduce") { - isEnumerable = true; - } -} - -delete Array.prototype.reduce; - -var isConfigurable = !Array.prototype.hasOwnProperty("reduce"); - -assert(propertyAreCorrect, 'propertyAreCorrect !== true'); -assert(isWritable, 'isWritable !== true'); -assert.sameValue(isEnumerable, false, 'isEnumerable'); -assert(isConfigurable, 'isConfigurable !== true'); +verifyProperty(Array.prototype, "reduce", { + writable: true, + enumerable: false, + configurable: true, +}); 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 34ae7d592b7..8cee359adda 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 @@ -19,10 +19,10 @@ Object.defineProperty(obj, "foo", { Object.defineProperty(obj, "foo", { value: null }); -verifyEqualTo(obj, "foo", null); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: null, + writable: false, + enumerable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-620.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-620.js index dc134044bc2..2e682eff432 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-620.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-620.js @@ -6,31 +6,11 @@ es5id: 15.2.3.6-4-620 description: > ES5 Attributes - all attributes in Array.prototype.reduceRight are correct +includes: [propertyHelper.js] ---*/ -var desc = Object.getOwnPropertyDescriptor(Array.prototype, "reduceRight"); - -var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); - -var temp = Array.prototype.reduceRight; - -Array.prototype.reduceRight = "2010"; - -var isWritable = (Array.prototype.reduceRight === "2010"); - -var isEnumerable = false; - -for (var prop in Array.prototype) { - if (prop === "reduceRight") { - isEnumerable = true; - } -} - -delete Array.prototype.reduceRight; - -var isConfigurable = !Array.prototype.hasOwnProperty("reduceRight"); - -assert(propertyAreCorrect, 'propertyAreCorrect !== true'); -assert(isWritable, 'isWritable !== true'); -assert.sameValue(isEnumerable, false, 'isEnumerable'); -assert(isConfigurable, 'isConfigurable !== true'); +verifyProperty(Array.prototype, "reduceRight", { + writable: true, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-621.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-621.js index 547d0f7f299..276140db7d2 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-621.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-621.js @@ -6,31 +6,11 @@ es5id: 15.2.3.6-4-621 description: > ES5 Attributes - all attributes in String.prototype.trim are correct +includes: [propertyHelper.js] ---*/ -var desc = Object.getOwnPropertyDescriptor(String.prototype, "trim"); - -var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); - -var temp = String.prototype.trim; - -String.prototype.trim = "2010"; - -var isWritable = (String.prototype.trim === "2010"); - -var isEnumerable = false; - -for (var prop in String.prototype) { - if (prop === "trim") { - isEnumerable = true; - } -} - -delete String.prototype.trim; - -var isConfigurable = !String.prototype.hasOwnProperty("trim"); - -assert(propertyAreCorrect, 'propertyAreCorrect !== true'); -assert(isWritable, 'isWritable !== true'); -assert.sameValue(isEnumerable, false, 'isEnumerable'); -assert(isConfigurable, 'isConfigurable !== true'); +verifyProperty(String.prototype, "trim", { + writable: true, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-622.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-622.js index 6a537f6b99e..aaeab02b138 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-622.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-622.js @@ -4,31 +4,12 @@ /*--- es5id: 15.2.3.6-4-622 description: ES5 Attributes - all attributes in Date.now are correct +includes: [propertyHelper.js] ---*/ -var desc = Object.getOwnPropertyDescriptor(Date, "now"); +verifyProperty(Date, "now", { + writable: true, + enumerable: false, + configurable: true, +}); -var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); - -var temp = Date.now; - -Date.now = "2010"; - -var isWritable = (Date.now === "2010"); - -var isEnumerable = false; - -for (var prop in Date) { - if (prop === "now") { - isEnumerable = true; - } -} - -delete Date.now; - -var isConfigurable = !Date.hasOwnProperty("now"); - -assert(propertyAreCorrect, 'propertyAreCorrect !== true'); -assert(isWritable, 'isWritable !== true'); -assert.sameValue(isEnumerable, false, 'isEnumerable'); -assert(isConfigurable, 'isConfigurable !== true'); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-623.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-623.js index d36c2cb57e1..c719ac4bb18 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-623.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-623.js @@ -6,31 +6,11 @@ es5id: 15.2.3.6-4-623 description: > ES5 Attributes - all attributes in Date.prototype.toISOString are correct +includes: [propertyHelper.js] ---*/ -var desc = Object.getOwnPropertyDescriptor(Date.prototype, "toISOString"); - -var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); - -var temp = Date.prototype.toISOString; - -Date.prototype.toISOString = "2010"; - -var isWritable = (Date.prototype.toISOString === "2010"); - -var isEnumerable = false; - -for (var prop in Date.prototype) { - if (prop === "toISOString") { - isEnumerable = true; - } -} - -delete Date.prototype.toISOString; - -var isConfigurable = !Date.prototype.hasOwnProperty("toISOString"); - -assert(propertyAreCorrect, 'propertyAreCorrect !== true'); -assert(isWritable, 'isWritable !== true'); -assert.sameValue(isEnumerable, false, 'isEnumerable'); -assert(isConfigurable, 'isConfigurable !== true'); +verifyProperty(Date.prototype, "toISOString", { + writable: true, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-624.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-624.js index e95f78499ba..9500661c966 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-624.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-624.js @@ -6,31 +6,11 @@ es5id: 15.2.3.6-4-624 description: > ES5 Attributes - all attributes in Date.prototype.toJSON are correct +includes: [propertyHelper.js] ---*/ -var desc = Object.getOwnPropertyDescriptor(Date.prototype, "toJSON"); - -var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); - -var temp = Date.prototype.toJSON; - -Date.prototype.toJSON = "2010"; - -var isWritable = (Date.prototype.toJSON === "2010"); - -var isEnumerable = false; - -for (var prop in Date.prototype) { - if (prop === "toJSON") { - isEnumerable = true; - } -} - -delete Date.prototype.toJSON; - -var isConfigurable = !Date.prototype.hasOwnProperty("toJSON"); - -assert(propertyAreCorrect, 'propertyAreCorrect !== true'); -assert(isWritable, 'isWritable !== true'); -assert.sameValue(isEnumerable, false, 'isEnumerable'); -assert(isConfigurable, 'isConfigurable !== true'); +verifyProperty(Date.prototype, "toJSON", { + writable: true, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-63.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-63.js index a336364bb11..42ae2573458 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-63.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-63.js @@ -19,10 +19,9 @@ Object.defineProperty(obj, "foo", { value: NaN }); -assert.sameValue(obj.foo, NaN); - -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: NaN, + writable: false, + enumerable: false, + configurable: false, +}); 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 ea102868972..6dc9e027df5 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 @@ -23,16 +23,14 @@ try { throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "foo", -0); - - verifyNotWritable(obj, "foo"); - - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + value: -0, + writable: false, + enumerable: false, + configurable: false, +}); 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 02d0c6ffe31..4488dce8bc0 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 @@ -22,16 +22,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "foo", +0); - - verifyNotWritable(obj, "foo"); - - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + value: +0, + writable: false, + enumerable: false, + configurable: false, +}); 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 457c20314ac..b0b14902c89 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 @@ -17,10 +17,10 @@ obj.foo = 101; // default value of attributes: writable: true, configurable: tru Object.defineProperty(obj, "foo", { value: 102 }); -verifyEqualTo(obj, "foo", 102); -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 102, + writable: true, + enumerable: true, + configurable: true, +}); 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 5331d82f416..3b249540bc5 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 @@ -20,10 +20,10 @@ Object.defineProperty(obj, "foo", { Object.defineProperty(obj, "foo", { value: "abcd" }); -verifyEqualTo(obj, "foo", "abcd"); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: "abcd", + writable: false, + enumerable: false, + configurable: false, +}); 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 8f3f2a3accc..6c8d82a0181 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 @@ -17,10 +17,10 @@ obj.foo = "abcd"; // default value of attributes: writable: true, configurable: Object.defineProperty(obj, "foo", { value: "fghj" }); -verifyEqualTo(obj, "foo", "fghj"); -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: "fghj", + writable: true, + enumerable: true, + configurable: true, +}); 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 a7b26daf98b..423367cf306 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 @@ -19,10 +19,10 @@ Object.defineProperty(obj, "foo", { Object.defineProperty(obj, "foo", { value: true }); -verifyEqualTo(obj, "foo", true); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: true, + writable: false, + enumerable: false, + configurable: false, +}); 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 716f34d96fa..c9ea2789258 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 @@ -17,10 +17,10 @@ obj.foo = true; // default value of attributes: writable: true, configurable: tr Object.defineProperty(obj, "foo", { value: false }); -verifyEqualTo(obj, "foo", false); -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: false, + writable: true, + enumerable: true, + configurable: true, +}); 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 ec1d4d9b925..9e3b96be443 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 @@ -23,10 +23,10 @@ Object.defineProperty(obj, "foo", { Object.defineProperty(obj, "foo", { value: obj1 }); -verifyEqualTo(obj, "foo", obj1); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: obj1, + writable: false, + enumerable: false, + configurable: false, +}); 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 c0acc806fd5..0bdb4c64abc 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 @@ -24,10 +24,10 @@ var obj2 = { Object.defineProperty(obj, "foo", { value: obj2 }); -verifyEqualTo(obj, "foo", obj2); -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: obj2, + writable: true, + enumerable: true, + configurable: true, +}); 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 eb436b8ff40..5ce4b4b6bef 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 @@ -19,10 +19,10 @@ Object.defineProperty(obj, "foo", { Object.defineProperty(obj, "foo", { writable: false }); -verifyEqualTo(obj, "foo", undefined); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, +}); 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 6a413f5ab69..ad273ae6366 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 @@ -20,10 +20,10 @@ Object.defineProperty(obj, "foo", { Object.defineProperty(obj, "foo", { writable: true }); -verifyEqualTo(obj, "foo", undefined); -verifyWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: undefined, + writable: true, + enumerable: false, + configurable: true, +}); 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 833298e2a99..268f684cb88 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 @@ -32,6 +32,7 @@ verifyEqualTo(obj, "foo", getFunc()); verifyWritable(obj, "foo", "helpVerifySet"); -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: false, + configurable: false, +}); 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 7473dbac8e1..76f56c3d533 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 @@ -37,6 +37,7 @@ verifyEqualTo(obj, "foo", getFunc2()); verifyWritable(obj, "foo", "helpVerifySet"); -verifyNotEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: false, + configurable: true, +}); 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 4dbddfefabe..810b8c960d1 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 @@ -25,6 +25,7 @@ Object.defineProperty(obj, "foo", { }); verifyWritable(obj, "foo", "setVerifyHelpProp"); -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: false, + configurable: false, +}); 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 e49b9787dbc..b2ff3f88bc6 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 @@ -28,6 +28,7 @@ Object.defineProperty(obj, "foo", { }); verifyWritable(obj, "foo", "setVerifyHelpProp"); -verifyNotEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: false, + configurable: true, +}); 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 62476d0bc9d..e8c1b23e1eb 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 @@ -19,10 +19,10 @@ Object.defineProperty(obj, "foo", { Object.defineProperty(obj, "foo", { enumerable: false }); -verifyEqualTo(obj, "foo", undefined); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, +}); 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 c71b320e5fb..60b69289711 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 @@ -20,10 +20,10 @@ Object.defineProperty(obj, "foo", { Object.defineProperty(obj, "foo", { enumerable: true }); -verifyEqualTo(obj, "foo", undefined); -verifyNotWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: undefined, + writable: false, + enumerable: true, + configurable: true, +}); 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 26939a862f1..a2db14ffbb3 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 @@ -19,10 +19,10 @@ Object.defineProperty(obj, "foo", { Object.defineProperty(obj, "foo", { configurable: false }); -verifyEqualTo(obj, "foo", undefined); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, +}); 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 f7e965c621e..c744e4f9db5 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 @@ -27,10 +27,9 @@ Object.defineProperty(obj, "foo", { enumerable: false }); -verifyEqualTo(obj, "foo", 1001); - -verifyWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 1001, + writable: true, + enumerable: false, + configurable: true, +}); 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 ee190b02421..dfd336f8924 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 @@ -38,6 +38,7 @@ verifyEqualTo(obj, "foo", get_func()); verifyWritable(obj, "foo", "verifySetFunction"); -verifyEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: true, + configurable: false, +}); 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 293711b6184..1c9de3d2e11 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 @@ -38,6 +38,7 @@ verifyEqualTo(obj, "foo", get_func()); verifyWritable(obj, "foo", "verifySetFunction"); -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: false, + configurable: false, +}); 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 7c20a6c1aea..abfcf193fd0 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 @@ -37,6 +37,7 @@ verifyEqualTo(obj, "foo", get_func()); verifyWritable(obj, "foo", "verifySetFunction"); -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: true, + configurable: true, +}); 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 d7905a3f120..230a80c2577 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 @@ -27,10 +27,9 @@ Object.defineProperty(obj, "0", { enumerable: false }); -verifyEqualTo(obj, "0", 1001); - -verifyWritable(obj, "0"); - -verifyNotEnumerable(obj, "0"); - -verifyConfigurable(obj, "0"); +verifyProperty(obj, "0", { + value: 1001, + writable: true, + enumerable: false, + configurable: true, +}); 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 d3c9a5a46c6..752852bcb62 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 @@ -28,10 +28,9 @@ Object.defineProperty(obj, "0", { configurable: true }); -verifyEqualTo(obj, "0", 1001); - -verifyWritable(obj, "0"); - -verifyNotEnumerable(obj, "0"); - -verifyConfigurable(obj, "0"); +verifyProperty(obj, "0", { + value: 1001, + writable: true, + enumerable: false, + configurable: true, +}); 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 d03591c065b..4d7b20a2039 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 @@ -26,10 +26,9 @@ Object.defineProperty(obj, "0", { configurable: false }); -verifyEqualTo(obj, "0", 1001); - -verifyWritable(obj, "0"); - -verifyEnumerable(obj, "0"); - -verifyNotConfigurable(obj, "0"); +verifyProperty(obj, "0", { + value: 1001, + writable: true, + enumerable: true, + configurable: false, +}); 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 5f2f3bf393e..8b030757aac 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 @@ -28,10 +28,9 @@ Object.defineProperty(obj, "0", { configurable: false }); -verifyEqualTo(obj, "0", 1001); - -verifyWritable(obj, "0"); - -verifyEnumerable(obj, "0"); - -verifyNotConfigurable(obj, "0"); +verifyProperty(obj, "0", { + value: 1001, + writable: true, + enumerable: true, + configurable: false, +}); 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 c999cf1bbd8..ca6020f2d51 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 @@ -28,10 +28,9 @@ Object.defineProperty(obj, "0", { configurable: false }); -verifyEqualTo(obj, "0", 1001); - -verifyWritable(obj, "0"); - -verifyNotEnumerable(obj, "0"); - -verifyNotConfigurable(obj, "0"); +verifyProperty(obj, "0", { + value: 1001, + writable: true, + enumerable: false, + configurable: false, +}); 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 7aead07eef4..b4de9144ef7 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 @@ -27,10 +27,9 @@ Object.defineProperty(obj, "0", { enumerable: true }); -verifyEqualTo(obj, "0", 1001); - -verifyWritable(obj, "0"); - -verifyEnumerable(obj, "0"); - -verifyConfigurable(obj, "0"); +verifyProperty(obj, "0", { + value: 1001, + writable: true, + enumerable: true, + configurable: true, +}); 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 54fcb81c56e..5f4e4a6a9c8 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 @@ -37,6 +37,7 @@ verifyEqualTo(obj, "0", get_func()); verifyWritable(obj, "0", "verifySetFunction"); -verifyNotEnumerable(obj, "0"); - -verifyConfigurable(obj, "0"); +verifyProperty(obj, "0", { + enumerable: false, + configurable: true, +}); 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 be511113501..14bff7a45d1 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 @@ -28,10 +28,9 @@ Object.defineProperty(obj, "foo", { configurable: true }); -verifyEqualTo(obj, "foo", 1001); - -verifyWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 1001, + writable: true, + enumerable: false, + configurable: true, +}); 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 7ab7217985a..a65a115a556 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 @@ -38,6 +38,7 @@ verifyEqualTo(obj, "0", get_func()); verifyWritable(obj, "0", "verifySetFunction"); -verifyNotEnumerable(obj, "0"); - -verifyConfigurable(obj, "0"); +verifyProperty(obj, "0", { + enumerable: false, + configurable: true, +}); 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 629a5e9dfed..b7da9b98533 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 @@ -37,6 +37,7 @@ verifyEqualTo(obj, "0", get_func()); verifyWritable(obj, "0", "verifySetFunction"); -verifyEnumerable(obj, "0"); - -verifyNotConfigurable(obj, "0"); +verifyProperty(obj, "0", { + enumerable: true, + configurable: false, +}); 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 cd26dfba0d9..30add358463 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 @@ -38,6 +38,7 @@ verifyEqualTo(obj, "0", get_func()); verifyWritable(obj, "0", "verifySetFunction"); -verifyEnumerable(obj, "0"); - -verifyNotConfigurable(obj, "0"); +verifyProperty(obj, "0", { + enumerable: true, + configurable: false, +}); 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 137b1ba4ce2..8eacd6e77c5 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 @@ -38,6 +38,7 @@ verifyEqualTo(obj, "0", get_func()); verifyWritable(obj, "0", "verifySetFunction"); -verifyNotEnumerable(obj, "0"); - -verifyNotConfigurable(obj, "0"); +verifyProperty(obj, "0", { + enumerable: false, + configurable: false, +}); 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 8bb81491448..13b2877d4ea 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 @@ -37,6 +37,7 @@ verifyEqualTo(obj, "0", get_func()); verifyWritable(obj, "0", "verifySetFunction"); -verifyEnumerable(obj, "0"); - -verifyConfigurable(obj, "0"); +verifyProperty(obj, "0", { + enumerable: true, + configurable: true, +}); 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 af0980148aa..3a2b4957904 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 @@ -26,10 +26,9 @@ Object.defineProperty(obj, "foo", { configurable: false }); -verifyEqualTo(obj, "foo", 1001); - -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 1001, + writable: true, + enumerable: true, + configurable: false, +}); 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 0d11ba790ca..ab1e03c90f5 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 @@ -28,10 +28,9 @@ Object.defineProperty(obj, "foo", { configurable: false }); -verifyEqualTo(obj, "foo", 1001); - -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 1001, + writable: true, + enumerable: true, + configurable: false, +}); 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 cc9bb95f225..b9d6b8d4860 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 @@ -28,10 +28,9 @@ Object.defineProperty(obj, "foo", { configurable: false }); -verifyEqualTo(obj, "foo", 1001); - -verifyWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 1001, + writable: true, + enumerable: false, + configurable: false, +}); 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 15ee855b7c3..0f36fef30d8 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 @@ -27,10 +27,9 @@ Object.defineProperty(obj, "foo", { enumerable: true }); -verifyEqualTo(obj, "foo", 1001); - -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 1001, + writable: true, + enumerable: true, + configurable: true, +}); 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 9d6c0c23bfe..f02c6378680 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 @@ -37,6 +37,7 @@ verifyEqualTo(obj, "foo", get_func()); verifyWritable(obj, "foo", "verifySetFunction"); -verifyNotEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: false, + configurable: true, +}); 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 230531fd86c..de5b2af1f61 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 @@ -38,6 +38,7 @@ verifyEqualTo(obj, "foo", get_func()); verifyWritable(obj, "foo", "verifySetFunction"); -verifyNotEnumerable(obj, "foo"); - -verifyConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: false, + configurable: true, +}); 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 2d660c23c44..67f88fff3d7 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 @@ -37,6 +37,7 @@ verifyEqualTo(obj, "foo", get_func()); verifyWritable(obj, "foo", "verifySetFunction"); -verifyEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: true, + configurable: false, +}); 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 71081cb23f9..64e0e5fe5ff 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 @@ -19,10 +19,10 @@ Object.defineProperty(obj, "foo", { Object.defineProperty(obj, "foo", { configurable: false }); -verifyEqualTo(obj, "foo", undefined); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, +}); 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 6bcec607fb7..f1c90b20ca9 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 @@ -24,10 +24,10 @@ Object.defineProperty(obj, "foo", { writable: false, configurable: false }); -verifyEqualTo(obj, "foo", undefined); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: undefined, + writable: false, + enumerable: false, + configurable: false, +}); 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 701d3ef4640..ed2db7a4ca7 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 @@ -24,10 +24,10 @@ Object.defineProperty(obj, "foo", { writable: false, configurable: false }); -verifyEqualTo(obj, "foo", null); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: null, + writable: false, + enumerable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-85.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-85.js index 7499fb8b5af..71e1ed48bb8 100644 --- a/test/built-ins/Object/defineProperty/15.2.3.6-4-85.js +++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-85.js @@ -24,10 +24,9 @@ Object.defineProperty(obj, "foo", { configurable: false }); -assert.sameValue(obj.foo, NaN); - -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: NaN, + writable: false, + enumerable: false, + configurable: false, +}); 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 ea1b1b39868..619d57e22f7 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 @@ -25,16 +25,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "foo", -0); - - verifyNotWritable(obj, "foo"); - - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + value: -0, + writable: false, + enumerable: false, + configurable: false, +}); 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 4a2890f390e..0c1467a7b78 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 @@ -25,16 +25,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "foo", +0); - - verifyNotWritable(obj, "foo"); - - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + value: +0, + writable: false, + enumerable: false, + configurable: false, +}); 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 fb949aa3493..588ab8fbcbf 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 @@ -23,10 +23,10 @@ Object.defineProperty(obj, "foo", { Object.defineProperty(obj, "foo", { value: 100 }); -verifyEqualTo(obj, "foo", 100); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 100, + writable: false, + enumerable: false, + configurable: false, +}); 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 19ecac3f598..64ac53baa20 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 @@ -25,16 +25,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "foo", 10); - - verifyNotWritable(obj, "foo"); - - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + value: 10, + writable: false, + enumerable: false, + configurable: false, +}); 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 9466f4b0706..d5922842f8c 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 @@ -23,10 +23,10 @@ Object.defineProperty(obj, "foo", { Object.defineProperty(obj, "foo", { value: "abcd" }); -verifyEqualTo(obj, "foo", "abcd"); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: "abcd", + writable: false, + enumerable: false, + configurable: false, +}); 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 20d3d198f9d..55e257d06a5 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 @@ -25,16 +25,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "foo", "abcd"); - - verifyNotWritable(obj, "foo"); - - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + value: "abcd", + writable: false, + enumerable: false, + configurable: false, +}); 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 925c95364cc..481dd5654c0 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 @@ -23,10 +23,10 @@ Object.defineProperty(obj, "foo", { Object.defineProperty(obj, "foo", { value: false }); -verifyEqualTo(obj, "foo", false); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: false, + writable: false, + enumerable: false, + configurable: false, +}); 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 0c693d7dd1a..262e570edd7 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 @@ -25,16 +25,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "foo", false); - - verifyNotWritable(obj, "foo"); - - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + value: false, + writable: false, + enumerable: false, + configurable: false, +}); 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 ab9e265987d..09731341244 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 @@ -27,10 +27,10 @@ Object.defineProperty(obj, "foo", { Object.defineProperty(obj, "foo", { value: obj1 }); -verifyEqualTo(obj, "foo", obj1); -verifyNotWritable(obj, "foo"); - -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: obj1, + writable: false, + enumerable: false, + configurable: false, +}); 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 bc7e45b0d5c..b70d518ee54 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 @@ -34,16 +34,14 @@ try { }); throw new Test262Error("Expected an exception."); } catch (e) { - verifyEqualTo(obj, "foo", obj1); - - verifyNotWritable(obj, "foo"); - - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + value: obj1, + writable: false, + enumerable: false, + configurable: false, +}); 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 0f8ebadfade..2fe228d84d5 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 @@ -27,6 +27,7 @@ Object.defineProperty(obj, "foo", { }); verifyWritable(obj, "foo", "setVerifyHelpProp"); -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: false, + configurable: false, +}); 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 38ef4724f00..1d76f315aca 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 @@ -33,12 +33,12 @@ try { } catch (e) { verifyEqualTo(obj, "property", getFunc()); - verifyNotEnumerable(obj, "property"); - - verifyNotConfigurable(obj, "property"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "property", { + enumerable: false, + configurable: false, +}); 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 eb0f2a07cf5..583ad4adf9d 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 @@ -35,6 +35,7 @@ verifyEqualTo(obj, "foo", getFunc()); verifyWritable(obj, "foo", "verifyGetHelpMethod"); -verifyNotEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: false, + configurable: false, +}); 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 8aaba926f18..c5de2003f4f 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 @@ -35,12 +35,12 @@ try { } catch (e) { verifyWritable(obj, "foo", "setVerifyHelpProp"); - verifyNotEnumerable(obj, "foo"); - - verifyNotConfigurable(obj, "foo"); - if (!(e instanceof TypeError)) { throw new Test262Error("Expected TypeError, got " + e); } - } + +verifyProperty(obj, "foo", { + enumerable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/defineProperty/name.js b/test/built-ins/Object/defineProperty/name.js index e722dd90e58..89d4b5858ad 100644 --- a/test/built-ins/Object/defineProperty/name.js +++ b/test/built-ins/Object/defineProperty/name.js @@ -19,8 +19,9 @@ info: | includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.defineProperty.name, "defineProperty"); - -verifyNotEnumerable(Object.defineProperty, "name"); -verifyNotWritable(Object.defineProperty, "name"); -verifyConfigurable(Object.defineProperty, "name"); +verifyProperty(Object.defineProperty, "name", { + value: "defineProperty", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/entries/function-length.js b/test/built-ins/Object/entries/function-length.js index f186c09a5bb..ccf0f198732 100644 --- a/test/built-ins/Object/entries/function-length.js +++ b/test/built-ins/Object/entries/function-length.js @@ -8,8 +8,9 @@ author: Jordan Harband includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.entries.length, 1, 'Expected Object.entries.length to be 1'); - -verifyNotEnumerable(Object.entries, 'length'); -verifyNotWritable(Object.entries, 'length'); -verifyConfigurable(Object.entries, 'length'); +verifyProperty(Object.entries, "length", { + value: 1, + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/entries/function-name.js b/test/built-ins/Object/entries/function-name.js index 7f336d25306..2b02222607c 100644 --- a/test/built-ins/Object/entries/function-name.js +++ b/test/built-ins/Object/entries/function-name.js @@ -8,12 +8,9 @@ author: Jordan Harband includes: [propertyHelper.js] ---*/ -assert.sameValue( - Object.entries.name, - 'entries', - 'Expected Object.entries.name to be "entries"' -); - -verifyNotEnumerable(Object.entries, 'name'); -verifyNotWritable(Object.entries, 'name'); -verifyConfigurable(Object.entries, 'name'); +verifyProperty(Object.entries, "name", { + value: "entries", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/entries/function-property-descriptor.js b/test/built-ins/Object/entries/function-property-descriptor.js index 9efe4bd81ab..881338ed013 100644 --- a/test/built-ins/Object/entries/function-property-descriptor.js +++ b/test/built-ins/Object/entries/function-property-descriptor.js @@ -8,6 +8,8 @@ author: Jordan Harband includes: [propertyHelper.js] ---*/ -verifyNotEnumerable(Object, 'entries'); -verifyWritable(Object, 'entries'); -verifyConfigurable(Object, 'entries'); +verifyProperty(Object, "entries", { + writable: true, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-4.js b/test/built-ins/Object/freeze/15.2.3.9-2-4.js index ba3d34bae3b..af09940ac4f 100644 --- a/test/built-ins/Object/freeze/15.2.3.9-2-4.js +++ b/test/built-ins/Object/freeze/15.2.3.9-2-4.js @@ -17,6 +17,7 @@ Object.defineProperty(obj, "foo", { Object.freeze(obj); -assert(obj.hasOwnProperty("foo")); -verifyNotWritable(obj, "foo"); -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + writable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-a-1.js b/test/built-ins/Object/freeze/15.2.3.9-2-a-1.js index b63d6ce3394..9464fdb3026 100644 --- a/test/built-ins/Object/freeze/15.2.3.9-2-a-1.js +++ b/test/built-ins/Object/freeze/15.2.3.9-2-a-1.js @@ -13,7 +13,8 @@ obj.foo = 10; // default [[Configurable]] attribute value of foo: true Object.freeze(obj); -verifyNotWritable(obj, "foo"); -verifyNotConfigurable(obj, "foo"); - -assert.sameValue(obj.foo, 10); +verifyProperty(obj, "foo", { + value: 10, + writable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-a-10.js b/test/built-ins/Object/freeze/15.2.3.9-2-a-10.js index fc408cffb9a..41d0db5612e 100644 --- a/test/built-ins/Object/freeze/15.2.3.9-2-a-10.js +++ b/test/built-ins/Object/freeze/15.2.3.9-2-a-10.js @@ -15,7 +15,8 @@ arrObj.foo = 10; // default [[Configurable]] attribute value of foo: true Object.freeze(arrObj); -verifyNotWritable(arrObj, "foo"); -verifyNotConfigurable(arrObj, "foo"); - -assert.sameValue(arrObj.foo, 10); +verifyProperty(arrObj, "foo", { + value: 10, + writable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-a-11.js b/test/built-ins/Object/freeze/15.2.3.9-2-a-11.js index 9148948646c..aae98854449 100644 --- a/test/built-ins/Object/freeze/15.2.3.9-2-a-11.js +++ b/test/built-ins/Object/freeze/15.2.3.9-2-a-11.js @@ -17,8 +17,8 @@ var argObj = (function() { Object.freeze(argObj); -var desc = Object.getOwnPropertyDescriptor(argObj, "0"); - -verifyNotWritable(argObj, "0"); -verifyNotConfigurable(argObj, "0"); -assert.sameValue(argObj[0], 1); +verifyProperty(argObj, "0", { + value: 1, + writable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-a-12.js b/test/built-ins/Object/freeze/15.2.3.9-2-a-12.js index e6f8d02e51a..520dc902cdd 100644 --- a/test/built-ins/Object/freeze/15.2.3.9-2-a-12.js +++ b/test/built-ins/Object/freeze/15.2.3.9-2-a-12.js @@ -15,7 +15,8 @@ var strObj = new String("abc"); Object.freeze(strObj); -verifyNotWritable(strObj, "0"); -verifyNotConfigurable(strObj, "0"); - -assert.sameValue(strObj[0], "a"); +verifyProperty(strObj, "0", { + value: "a", + writable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-a-13.js b/test/built-ins/Object/freeze/15.2.3.9-2-a-13.js index ed8efa0fd62..1b36c91c1de 100644 --- a/test/built-ins/Object/freeze/15.2.3.9-2-a-13.js +++ b/test/built-ins/Object/freeze/15.2.3.9-2-a-13.js @@ -17,7 +17,8 @@ var obj = { Object.freeze(obj); -verifyNotWritable(obj, "0"); -verifyNotConfigurable(obj, "0"); - -assert.sameValue(obj[0], 0); +verifyProperty(obj, "0", { + value: 0, + writable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-a-14.js b/test/built-ins/Object/freeze/15.2.3.9-2-a-14.js index da9173b9ce8..ea1567b5da0 100644 --- a/test/built-ins/Object/freeze/15.2.3.9-2-a-14.js +++ b/test/built-ins/Object/freeze/15.2.3.9-2-a-14.js @@ -14,6 +14,8 @@ var arrObj = [0, 1, 2]; Object.freeze(arrObj); -verifyNotWritable(arrObj, "0"); -verifyNotConfigurable(arrObj, "0"); -assert.sameValue(arrObj[0], 0); +verifyProperty(arrObj, "0", { + value: 0, + writable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-a-2.js b/test/built-ins/Object/freeze/15.2.3.9-2-a-2.js index 23e20c4256e..753ba092a73 100644 --- a/test/built-ins/Object/freeze/15.2.3.9-2-a-2.js +++ b/test/built-ins/Object/freeze/15.2.3.9-2-a-2.js @@ -23,7 +23,8 @@ child.foo = 10; // default [[Configurable]] attribute value of foo: true Object.freeze(child); -verifyNotWritable(child, "foo"); -verifyNotConfigurable(child, "foo"); - -assert.sameValue(child.foo, 10); +verifyProperty(child, "foo", { + value: 10, + writable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-a-3.js b/test/built-ins/Object/freeze/15.2.3.9-2-a-3.js index f84894b00ed..58d4e1b8bb2 100644 --- a/test/built-ins/Object/freeze/15.2.3.9-2-a-3.js +++ b/test/built-ins/Object/freeze/15.2.3.9-2-a-3.js @@ -29,6 +29,8 @@ Object.defineProperty(child, "foo", { Object.freeze(child); -verifyNotWritable(child, "foo"); -verifyNotConfigurable(child, "foo"); -assert.sameValue(child.foo, 10); +verifyProperty(child, "foo", { + value: 10, + writable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-a-4.js b/test/built-ins/Object/freeze/15.2.3.9-2-a-4.js index e8d22fca047..bbedf457ff6 100644 --- a/test/built-ins/Object/freeze/15.2.3.9-2-a-4.js +++ b/test/built-ins/Object/freeze/15.2.3.9-2-a-4.js @@ -18,5 +18,8 @@ Object.defineProperty(obj, "foo", { Object.freeze(obj); -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + configurable: false, +}); + assert.sameValue(obj.foo, 10); diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-a-5.js b/test/built-ins/Object/freeze/15.2.3.9-2-a-5.js index 598187ff974..cb1944b2d1f 100644 --- a/test/built-ins/Object/freeze/15.2.3.9-2-a-5.js +++ b/test/built-ins/Object/freeze/15.2.3.9-2-a-5.js @@ -28,5 +28,8 @@ Object.defineProperty(child, "foo", { Object.freeze(child); -verifyNotConfigurable(child, "foo"); +verifyProperty(child, "foo", { + configurable: false, +}); + assert.sameValue(child.foo, 10); diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-a-6.js b/test/built-ins/Object/freeze/15.2.3.9-2-a-6.js index 6295b1f0875..6692942affc 100644 --- a/test/built-ins/Object/freeze/15.2.3.9-2-a-6.js +++ b/test/built-ins/Object/freeze/15.2.3.9-2-a-6.js @@ -32,5 +32,8 @@ Object.defineProperty(child, "foo", { Object.freeze(child); -verifyNotConfigurable(child, "foo"); +verifyProperty(child, "foo", { + configurable: false, +}); + assert.sameValue(child.foo, 10); diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-a-7.js b/test/built-ins/Object/freeze/15.2.3.9-2-a-7.js index 75024a84bcf..527e996d21d 100644 --- a/test/built-ins/Object/freeze/15.2.3.9-2-a-7.js +++ b/test/built-ins/Object/freeze/15.2.3.9-2-a-7.js @@ -17,6 +17,8 @@ argObj.foo = 10; // default [[Configurable]] attribute value of foo: true Object.freeze(argObj); -verifyNotWritable(argObj, "foo"); -verifyNotConfigurable(argObj, "foo"); -assert.sameValue(argObj.foo, 10); +verifyProperty(argObj, "foo", { + value: 10, + writable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-a-8.js b/test/built-ins/Object/freeze/15.2.3.9-2-a-8.js index 972fb0263ab..0517260ec3d 100644 --- a/test/built-ins/Object/freeze/15.2.3.9-2-a-8.js +++ b/test/built-ins/Object/freeze/15.2.3.9-2-a-8.js @@ -15,6 +15,8 @@ strObj.foo = 10; // default [[Configurable]] attribute value of foo: true Object.freeze(strObj); -verifyNotWritable(strObj, "foo"); -verifyNotConfigurable(strObj, "foo"); -assert.sameValue(strObj.foo, 10); +verifyProperty(strObj, "foo", { + value: 10, + writable: false, + configurable: false, +}); diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-a-9.js b/test/built-ins/Object/freeze/15.2.3.9-2-a-9.js index e4b21256b08..3d156bdb350 100644 --- a/test/built-ins/Object/freeze/15.2.3.9-2-a-9.js +++ b/test/built-ins/Object/freeze/15.2.3.9-2-a-9.js @@ -15,7 +15,8 @@ funObj.foo = 10; // default [[Configurable]] attribute value of foo: true Object.freeze(funObj); -verifyNotWritable(funObj, "foo"); -verifyNotConfigurable(funObj, "foo"); - -assert.sameValue(funObj.foo, 10); +verifyProperty(funObj, "foo", { + value: 10, + writable: false, + configurable: false, +}); 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 3ee9e83aaaf..a4d772e4fc1 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 @@ -19,20 +19,10 @@ Object.defineProperty(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) { - throw new Test262Error('Expected desc.writable === false, actually ' + desc.writable); -} - -if (desc.configurable !== false) { - throw new Test262Error('Expected desc.configurable === false, actually ' + desc.configurable); -} +verifyProperty(obj, "foo", { + value: 10, + writable: false, + enumerable: true, + configurable: false, +}); 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 41077c8f93b..3e107b60eca 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 @@ -28,37 +28,16 @@ Object.defineProperty(obj, "foo2", { 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) { - throw new Test262Error('Expected desc1.configurable === false, actually ' + desc1.configurable); -} - -if (desc1.writable !== false) { - throw new Test262Error('Expected desc1.writable === false, actually ' + desc1.writable); -} - -if (desc2.configurable !== false) { - throw new Test262Error('Expected desc2.configurable === false, actually ' + desc2.configurable); -} +verifyProperty(obj, "foo1", { + value: 10, + writable: false, + enumerable: true, + configurable: false, +}); -if (desc2.writable !== false) { - throw new Test262Error('Expected desc2.writable === false, actually ' + desc2.writable); -} +verifyProperty(obj, "foo2", { + value: 20, + writable: false, + enumerable: false, + configurable: false, +}); 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 7fc4aba3f79..c1bbff79253 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 @@ -21,19 +21,9 @@ Object.defineProperty(obj, "foo", { Object.freeze(obj); -var desc = Object.getOwnPropertyDescriptor(obj, "foo"); - -if (desc.configurable !== false) { - throw new Test262Error("Expected desc.configurable to be false, actually " + desc.configurable); -} -if (desc.writable !== false) { - throw new Test262Error("Expected desc.writable to be false, actually " + desc.writable); -} - -verifyEqualTo(obj, "foo", 10); - -verifyNotWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 10, + writable: false, + enumerable: true, + configurable: false, +}); diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-c-2.js b/test/built-ins/Object/freeze/15.2.3.9-2-c-2.js index 59bdbad51bc..f60b31c1f71 100644 --- a/test/built-ins/Object/freeze/15.2.3.9-2-c-2.js +++ b/test/built-ins/Object/freeze/15.2.3.9-2-c-2.js @@ -31,15 +31,16 @@ Object.defineProperty(obj, "foo", { Object.freeze(obj); -assert(obj.hasOwnProperty("foo")); -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + configurable: false, +}); assert.sameValue(obj.foo, 10); obj.foo = 12; assert(set_funcCalled); -verifyEnumerable(obj, "foo"); - -var desc = Object.getOwnPropertyDescriptor(obj, "foo"); -assert.sameValue(desc.configurable, false); +verifyProperty(obj, "foo", { + enumerable: true, + configurable: false, +}); 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 63b16a5087f..3b6737bc032 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 @@ -37,7 +37,10 @@ Object.defineProperty(obj, "foo2", { Object.freeze(obj); -verifyNotConfigurable(obj, "foo2"); +verifyProperty(obj, "foo2", { + configurable: false, +}); + verifyEqualTo(obj, "foo2", 10); obj.foo2 = 12; @@ -45,24 +48,19 @@ if (!resultSetFun) { throw new Test262Error('Expected obj["foo2"] set() to be called, but was not.'); } -if (!isEnumerable(obj, "foo2")) { - throw new Test262Error('Expected obj["foo2"] to be enumerable.'); -} - -var desc1 = Object.getOwnPropertyDescriptor(obj, "foo1"); -if (desc1.configurable || desc1.writable) { - throw new Test262Error('Expected obj["foo1"] to be non-writable, non-configurable; actually ' + JSON.stringify(desc1)); -} +verifyProperty(obj, "foo2", { + enumerable: true, + configurable: false, +}); var desc2 = Object.getOwnPropertyDescriptor(obj, "foo2"); -if (desc2.configurable || desc2.writable) { +if (desc2.writable) { throw new Test262Error('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"); +verifyProperty(obj, "foo1", { + value: 10, + writable: false, + enumerable: true, + configurable: false, +}); 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 eb08e41d483..baa25e46c39 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 @@ -38,29 +38,28 @@ Object.freeze(obj); verifyEqualTo(obj, "foo2", 10); -verifyNotConfigurable(obj, "foo2"); +verifyProperty(obj, "foo2", { + configurable: false, +}); obj.foo2 = 12; if (!resultSetFun) { throw new Test262Error('Expected obj["foo2"] set() to be called, but was not.'); } -verifyEnumerable(obj, "foo2"); - -var desc1 = Object.getOwnPropertyDescriptor(obj, "foo1"); -if (desc1.configurable || desc1.writable) { - throw new Test262Error('Expected obj["foo1"] to be non-writable, non-configurable; actually ' + JSON.stringify(desc1)); -} +verifyProperty(obj, "foo2", { + enumerable: true, + configurable: false, +}); var desc2 = Object.getOwnPropertyDescriptor(obj, "foo2"); -if (desc2.configurable || desc2.writable) { +if (desc2.writable) { throw new Test262Error('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"); +verifyProperty(obj, "foo1", { + value: 10, + writable: false, + enumerable: true, + configurable: false, +}); diff --git a/test/built-ins/Object/freeze/name.js b/test/built-ins/Object/freeze/name.js index be1ab47720b..d39441e8376 100644 --- a/test/built-ins/Object/freeze/name.js +++ b/test/built-ins/Object/freeze/name.js @@ -19,8 +19,9 @@ info: | includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.freeze.name, "freeze"); - -verifyNotEnumerable(Object.freeze, "name"); -verifyNotWritable(Object.freeze, "name"); -verifyConfigurable(Object.freeze, "name"); +verifyProperty(Object.freeze, "name", { + value: "freeze", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/name.js b/test/built-ins/Object/getOwnPropertyDescriptor/name.js index c46a71fade4..bd54b498c7a 100644 --- a/test/built-ins/Object/getOwnPropertyDescriptor/name.js +++ b/test/built-ins/Object/getOwnPropertyDescriptor/name.js @@ -19,8 +19,9 @@ info: | includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.getOwnPropertyDescriptor.name, "getOwnPropertyDescriptor"); - -verifyNotEnumerable(Object.getOwnPropertyDescriptor, "name"); -verifyNotWritable(Object.getOwnPropertyDescriptor, "name"); -verifyConfigurable(Object.getOwnPropertyDescriptor, "name"); +verifyProperty(Object.getOwnPropertyDescriptor, "name", { + value: "getOwnPropertyDescriptor", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/getOwnPropertyDescriptors/function-length.js b/test/built-ins/Object/getOwnPropertyDescriptors/function-length.js index df9ba3c7250..edb1c028355 100644 --- a/test/built-ins/Object/getOwnPropertyDescriptors/function-length.js +++ b/test/built-ins/Object/getOwnPropertyDescriptors/function-length.js @@ -8,8 +8,9 @@ author: Jordan Harband includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.getOwnPropertyDescriptors.length, 1, 'Expected Object.getOwnPropertyDescriptors.length to be 1'); - -verifyNotEnumerable(Object.getOwnPropertyDescriptors, 'length'); -verifyNotWritable(Object.getOwnPropertyDescriptors, 'length'); -verifyConfigurable(Object.getOwnPropertyDescriptors, 'length'); +verifyProperty(Object.getOwnPropertyDescriptors, "length", { + value: 1, + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/getOwnPropertyDescriptors/function-name.js b/test/built-ins/Object/getOwnPropertyDescriptors/function-name.js index c2e98cf19b5..96311da564a 100644 --- a/test/built-ins/Object/getOwnPropertyDescriptors/function-name.js +++ b/test/built-ins/Object/getOwnPropertyDescriptors/function-name.js @@ -8,12 +8,9 @@ author: Jordan Harband includes: [propertyHelper.js] ---*/ -assert.sameValue( - Object.getOwnPropertyDescriptors.name, - 'getOwnPropertyDescriptors', - 'Expected Object.getOwnPropertyDescriptors.name to be "getOwnPropertyDescriptors"' -); - -verifyNotEnumerable(Object.getOwnPropertyDescriptors, 'name'); -verifyNotWritable(Object.getOwnPropertyDescriptors, 'name'); -verifyConfigurable(Object.getOwnPropertyDescriptors, 'name'); +verifyProperty(Object.getOwnPropertyDescriptors, "name", { + value: "getOwnPropertyDescriptors", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/getOwnPropertyDescriptors/function-property-descriptor.js b/test/built-ins/Object/getOwnPropertyDescriptors/function-property-descriptor.js index 06bcc60d8c7..2e4b9a3dbb4 100644 --- a/test/built-ins/Object/getOwnPropertyDescriptors/function-property-descriptor.js +++ b/test/built-ins/Object/getOwnPropertyDescriptors/function-property-descriptor.js @@ -8,6 +8,8 @@ author: Jordan Harband includes: [propertyHelper.js] ---*/ -verifyNotEnumerable(Object, 'getOwnPropertyDescriptors'); -verifyWritable(Object, 'getOwnPropertyDescriptors'); -verifyConfigurable(Object, 'getOwnPropertyDescriptors'); +verifyProperty(Object, "getOwnPropertyDescriptors", { + writable: true, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/getOwnPropertyNames/name.js b/test/built-ins/Object/getOwnPropertyNames/name.js index 8101e177058..76d645e75ba 100644 --- a/test/built-ins/Object/getOwnPropertyNames/name.js +++ b/test/built-ins/Object/getOwnPropertyNames/name.js @@ -19,8 +19,9 @@ info: | includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.getOwnPropertyNames.name, "getOwnPropertyNames"); - -verifyNotEnumerable(Object.getOwnPropertyNames, "name"); -verifyNotWritable(Object.getOwnPropertyNames, "name"); -verifyConfigurable(Object.getOwnPropertyNames, "name"); +verifyProperty(Object.getOwnPropertyNames, "name", { + value: "getOwnPropertyNames", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/getOwnPropertySymbols/length.js b/test/built-ins/Object/getOwnPropertySymbols/length.js index 9d82e1773db..00d1f15aa7b 100644 --- a/test/built-ins/Object/getOwnPropertySymbols/length.js +++ b/test/built-ins/Object/getOwnPropertySymbols/length.js @@ -22,8 +22,9 @@ info: | includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.getOwnPropertySymbols.length, 1); - -verifyNotEnumerable(Object.getOwnPropertySymbols, "length"); -verifyNotWritable(Object.getOwnPropertySymbols, "length"); -verifyConfigurable(Object.getOwnPropertySymbols, "length"); +verifyProperty(Object.getOwnPropertySymbols, "length", { + value: 1, + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/getOwnPropertySymbols/name.js b/test/built-ins/Object/getOwnPropertySymbols/name.js index 196726117b4..21b6882c2c3 100644 --- a/test/built-ins/Object/getOwnPropertySymbols/name.js +++ b/test/built-ins/Object/getOwnPropertySymbols/name.js @@ -19,8 +19,9 @@ info: | includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.getOwnPropertySymbols.name, "getOwnPropertySymbols"); - -verifyNotEnumerable(Object.getOwnPropertySymbols, "name"); -verifyNotWritable(Object.getOwnPropertySymbols, "name"); -verifyConfigurable(Object.getOwnPropertySymbols, "name"); +verifyProperty(Object.getOwnPropertySymbols, "name", { + value: "getOwnPropertySymbols", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/getPrototypeOf/name.js b/test/built-ins/Object/getPrototypeOf/name.js index dbdb6a2b2d5..ce1eee7861d 100644 --- a/test/built-ins/Object/getPrototypeOf/name.js +++ b/test/built-ins/Object/getPrototypeOf/name.js @@ -19,8 +19,9 @@ info: | includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.getPrototypeOf.name, "getPrototypeOf"); - -verifyNotEnumerable(Object.getPrototypeOf, "name"); -verifyNotWritable(Object.getPrototypeOf, "name"); -verifyConfigurable(Object.getPrototypeOf, "name"); +verifyProperty(Object.getPrototypeOf, "name", { + value: "getPrototypeOf", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/hasOwn/descriptor.js b/test/built-ins/Object/hasOwn/descriptor.js index 5ec2dd77047..8193704ec97 100644 --- a/test/built-ins/Object/hasOwn/descriptor.js +++ b/test/built-ins/Object/hasOwn/descriptor.js @@ -9,6 +9,8 @@ author: Jamie Kyle features: [Object.hasOwn] ---*/ -verifyWritable(Object, "hasOwn"); -verifyNotEnumerable(Object, "hasOwn"); -verifyConfigurable(Object, "hasOwn"); +verifyProperty(Object, "hasOwn", { + writable: true, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/hasOwn/name.js b/test/built-ins/Object/hasOwn/name.js index d6859df89bd..939c193b6b2 100644 --- a/test/built-ins/Object/hasOwn/name.js +++ b/test/built-ins/Object/hasOwn/name.js @@ -21,8 +21,9 @@ author: Jamie Kyle features: [Object.hasOwn] ---*/ -assert.sameValue(Object.hasOwn.name, "hasOwn"); - -verifyNotEnumerable(Object.hasOwn, "name"); -verifyNotWritable(Object.hasOwn, "name"); -verifyConfigurable(Object.hasOwn, "name"); +verifyProperty(Object.hasOwn, "name", { + value: "hasOwn", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/is/length.js b/test/built-ins/Object/is/length.js index 61cd9a4b296..e02cdc5aec3 100644 --- a/test/built-ins/Object/is/length.js +++ b/test/built-ins/Object/is/length.js @@ -10,8 +10,9 @@ description: > includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.is.length, 2, "The value of `Object.is.length` is `2`"); - -verifyNotEnumerable(Object.is, "length"); -verifyNotWritable(Object.is, "length"); -verifyConfigurable(Object.is, "length"); +verifyProperty(Object.is, "length", { + value: 2, + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/is/name.js b/test/built-ins/Object/is/name.js index 1f20bd1061c..e6f4a95a7b7 100644 --- a/test/built-ins/Object/is/name.js +++ b/test/built-ins/Object/is/name.js @@ -10,8 +10,9 @@ description: > includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.is.name, 'is', "The value of `Object.is.name` is `'is'`"); - -verifyNotEnumerable(Object.is, "name"); -verifyNotWritable(Object.is, "name"); -verifyConfigurable(Object.is, "name"); +verifyProperty(Object.is, "name", { + value: "is", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/is/object-is.js b/test/built-ins/Object/is/object-is.js index 1a83df6c4ad..c1fff9167ea 100644 --- a/test/built-ins/Object/is/object-is.js +++ b/test/built-ins/Object/is/object-is.js @@ -10,10 +10,10 @@ description: > includes: [propertyHelper.js] ---*/ - assert.sameValue(typeof Object.is, "function"); -assert.sameValue(Object.is.name, "is"); -verifyWritable(Object, "is"); -verifyNotEnumerable(Object, "is"); -verifyConfigurable(Object, "is"); +verifyProperty(Object, "is", { + writable: true, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/isExtensible/name.js b/test/built-ins/Object/isExtensible/name.js index 99513b3173c..9aa85f7aa45 100644 --- a/test/built-ins/Object/isExtensible/name.js +++ b/test/built-ins/Object/isExtensible/name.js @@ -19,8 +19,9 @@ info: | includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.isExtensible.name, "isExtensible"); - -verifyNotEnumerable(Object.isExtensible, "name"); -verifyNotWritable(Object.isExtensible, "name"); -verifyConfigurable(Object.isExtensible, "name"); +verifyProperty(Object.isExtensible, "name", { + value: "isExtensible", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/isFrozen/name.js b/test/built-ins/Object/isFrozen/name.js index dbbd66be202..ed71b0d518c 100644 --- a/test/built-ins/Object/isFrozen/name.js +++ b/test/built-ins/Object/isFrozen/name.js @@ -19,8 +19,9 @@ info: | includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.isFrozen.name, "isFrozen"); - -verifyNotEnumerable(Object.isFrozen, "name"); -verifyNotWritable(Object.isFrozen, "name"); -verifyConfigurable(Object.isFrozen, "name"); +verifyProperty(Object.isFrozen, "name", { + value: "isFrozen", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/isSealed/name.js b/test/built-ins/Object/isSealed/name.js index 74b1d0963b7..5b0c85bc512 100644 --- a/test/built-ins/Object/isSealed/name.js +++ b/test/built-ins/Object/isSealed/name.js @@ -19,8 +19,9 @@ info: | includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.isSealed.name, "isSealed"); - -verifyNotEnumerable(Object.isSealed, "name"); -verifyNotWritable(Object.isSealed, "name"); -verifyConfigurable(Object.isSealed, "name"); +verifyProperty(Object.isSealed, "name", { + value: "isSealed", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/keys/name.js b/test/built-ins/Object/keys/name.js index 4ec15a6af96..b78779e45ec 100644 --- a/test/built-ins/Object/keys/name.js +++ b/test/built-ins/Object/keys/name.js @@ -19,8 +19,9 @@ info: | includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.keys.name, "keys"); - -verifyNotEnumerable(Object.keys, "name"); -verifyNotWritable(Object.keys, "name"); -verifyConfigurable(Object.keys, "name"); +verifyProperty(Object.keys, "name", { + value: "keys", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/preventExtensions/name.js b/test/built-ins/Object/preventExtensions/name.js index bcce7c7e960..902b1446fdd 100644 --- a/test/built-ins/Object/preventExtensions/name.js +++ b/test/built-ins/Object/preventExtensions/name.js @@ -19,8 +19,9 @@ info: | includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.preventExtensions.name, "preventExtensions"); - -verifyNotEnumerable(Object.preventExtensions, "name"); -verifyNotWritable(Object.preventExtensions, "name"); -verifyConfigurable(Object.preventExtensions, "name"); +verifyProperty(Object.preventExtensions, "name", { + value: "preventExtensions", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/prop-desc.js b/test/built-ins/Object/prop-desc.js index c0bce6dad7f..3185a89fb84 100644 --- a/test/built-ins/Object/prop-desc.js +++ b/test/built-ins/Object/prop-desc.js @@ -11,6 +11,8 @@ info: | includes: [propertyHelper.js] ---*/ -verifyNotEnumerable(this, "Object"); -verifyWritable(this, "Object"); -verifyConfigurable(this, "Object"); +verifyProperty(this, "Object", { + writable: true, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/prototype/hasOwnProperty/name.js b/test/built-ins/Object/prototype/hasOwnProperty/name.js index 5558d8c99f9..6e8d4fb15f0 100644 --- a/test/built-ins/Object/prototype/hasOwnProperty/name.js +++ b/test/built-ins/Object/prototype/hasOwnProperty/name.js @@ -19,8 +19,9 @@ info: | includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.prototype.hasOwnProperty.name, "hasOwnProperty"); - -verifyNotEnumerable(Object.prototype.hasOwnProperty, "name"); -verifyNotWritable(Object.prototype.hasOwnProperty, "name"); -verifyConfigurable(Object.prototype.hasOwnProperty, "name"); +verifyProperty(Object.prototype.hasOwnProperty, "name", { + value: "hasOwnProperty", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/prototype/propertyIsEnumerable/name.js b/test/built-ins/Object/prototype/propertyIsEnumerable/name.js index 5cebc755f7f..d045128937a 100644 --- a/test/built-ins/Object/prototype/propertyIsEnumerable/name.js +++ b/test/built-ins/Object/prototype/propertyIsEnumerable/name.js @@ -19,8 +19,9 @@ info: | includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.prototype.propertyIsEnumerable.name, "propertyIsEnumerable"); - -verifyNotEnumerable(Object.prototype.propertyIsEnumerable, "name"); -verifyNotWritable(Object.prototype.propertyIsEnumerable, "name"); -verifyConfigurable(Object.prototype.propertyIsEnumerable, "name"); +verifyProperty(Object.prototype.propertyIsEnumerable, "name", { + value: "propertyIsEnumerable", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/prototype/toLocaleString/name.js b/test/built-ins/Object/prototype/toLocaleString/name.js index 67191974d55..babae72542a 100644 --- a/test/built-ins/Object/prototype/toLocaleString/name.js +++ b/test/built-ins/Object/prototype/toLocaleString/name.js @@ -19,8 +19,9 @@ info: | includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.prototype.toLocaleString.name, "toLocaleString"); - -verifyNotEnumerable(Object.prototype.toLocaleString, "name"); -verifyNotWritable(Object.prototype.toLocaleString, "name"); -verifyConfigurable(Object.prototype.toLocaleString, "name"); +verifyProperty(Object.prototype.toLocaleString, "name", { + value: "toLocaleString", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/prototype/toString/prop-desc.js b/test/built-ins/Object/prototype/toString/prop-desc.js index 7a2c7581a7f..526d13eec29 100644 --- a/test/built-ins/Object/prototype/toString/prop-desc.js +++ b/test/built-ins/Object/prototype/toString/prop-desc.js @@ -16,6 +16,8 @@ info: | includes: [propertyHelper.js] ---*/ -verifyWritable(Object.prototype, "toString"); -verifyNotEnumerable(Object.prototype, "toString"); -verifyConfigurable(Object.prototype, "toString"); +verifyProperty(Object.prototype, "toString", { + writable: true, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/prototype/valueOf/name.js b/test/built-ins/Object/prototype/valueOf/name.js index 75f93b9ba33..0bad1f555d1 100644 --- a/test/built-ins/Object/prototype/valueOf/name.js +++ b/test/built-ins/Object/prototype/valueOf/name.js @@ -19,8 +19,9 @@ info: | includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.prototype.valueOf.name, "valueOf"); - -verifyNotEnumerable(Object.prototype.valueOf, "name"); -verifyNotWritable(Object.prototype.valueOf, "name"); -verifyConfigurable(Object.prototype.valueOf, "name"); +verifyProperty(Object.prototype.valueOf, "name", { + value: "valueOf", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/seal/configurable-attribute-all-own-properties-set-from-true-to-false-property-are-unaltered.js b/test/built-ins/Object/seal/configurable-attribute-all-own-properties-set-from-true-to-false-property-are-unaltered.js index 2434aa78fb0..13cc3a1d9fa 100644 --- a/test/built-ins/Object/seal/configurable-attribute-all-own-properties-set-from-true-to-false-property-are-unaltered.js +++ b/test/built-ins/Object/seal/configurable-attribute-all-own-properties-set-from-true-to-false-property-are-unaltered.js @@ -40,19 +40,18 @@ if (!preCheck) { throw new Test262Error('Expected preCheck to be true, actually ' + preCheck); } - -verifyEqualTo(obj, "foo1", 10); - -verifyWritable(obj, "foo1"); - -verifyEnumerable(obj, "foo1"); - -verifyNotConfigurable(obj, "foo1"); +verifyProperty(obj, "foo1", { + value: 10, + writable: true, + enumerable: true, + configurable: false, +}); verifyEqualTo(obj, "foo2", get_func()); verifyWritable(obj, "foo2", "variableForHelpVerify"); -verifyEnumerable(obj, "foo2"); - -verifyNotConfigurable(obj, "foo2"); +verifyProperty(obj, "foo2", { + enumerable: true, + configurable: false, +}); diff --git a/test/built-ins/Object/seal/configurable-attribute-own-accessor-property-set-from-true-to-false-property-are-unaltered.js b/test/built-ins/Object/seal/configurable-attribute-own-accessor-property-set-from-true-to-false-property-are-unaltered.js index 6c1f428277e..750474b64d3 100644 --- a/test/built-ins/Object/seal/configurable-attribute-own-accessor-property-set-from-true-to-false-property-are-unaltered.js +++ b/test/built-ins/Object/seal/configurable-attribute-own-accessor-property-set-from-true-to-false-property-are-unaltered.js @@ -37,6 +37,7 @@ verifyEqualTo(obj, "foo", getFunc()); verifyWritable(obj, "foo", "variableForHelpVerify"); -verifyEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + enumerable: true, + configurable: false, +}); diff --git a/test/built-ins/Object/seal/length.js b/test/built-ins/Object/seal/length.js index 4f7233f0d87..0ea257006a7 100644 --- a/test/built-ins/Object/seal/length.js +++ b/test/built-ins/Object/seal/length.js @@ -14,8 +14,9 @@ info: | includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.seal.length, 1); - -verifyNotEnumerable(Object.seal, "length"); -verifyNotWritable(Object.seal, "length"); -verifyConfigurable(Object.seal, "length"); +verifyProperty(Object.seal, "length", { + value: 1, + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/seal/name.js b/test/built-ins/Object/seal/name.js index 0da5795642c..71da6cbfd81 100644 --- a/test/built-ins/Object/seal/name.js +++ b/test/built-ins/Object/seal/name.js @@ -19,8 +19,9 @@ info: | includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.seal.name, "seal"); - -verifyNotEnumerable(Object.seal, "name"); -verifyNotWritable(Object.seal, "name"); -verifyConfigurable(Object.seal, "name"); +verifyProperty(Object.seal, "name", { + value: "seal", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/seal/object-seal-all-own-properties-of-o-are-already-non-configurable.js b/test/built-ins/Object/seal/object-seal-all-own-properties-of-o-are-already-non-configurable.js index 819cc0c7628..90812ec1db7 100644 --- a/test/built-ins/Object/seal/object-seal-all-own-properties-of-o-are-already-non-configurable.js +++ b/test/built-ins/Object/seal/object-seal-all-own-properties-of-o-are-already-non-configurable.js @@ -43,17 +43,18 @@ if (Object.isExtensible(obj)) { throw new Test262Error('Expected obj NOT to be extensible, actually ' + Object.isExtensible(obj)); } -verifyEqualTo(obj, "foo1", 10); - -verifyWritable(obj, "foo1"); - -verifyEnumerable(obj, "foo1"); +verifyProperty(obj, "foo1", { + value: 10, + writable: true, + enumerable: true, + configurable: false, +}); -verifyNotConfigurable(obj, "foo1"); verifyEqualTo(obj, "foo2", get_func()); verifyWritable(obj, "foo2", "variableForHelpVerify"); -verifyEnumerable(obj, "foo2"); - -verifyNotConfigurable(obj, "foo2"); +verifyProperty(obj, "foo2", { + enumerable: true, + configurable: false, +}); diff --git a/test/built-ins/Object/seal/object-seal-configurable-attribute-of-own-data-property-of-o-is-set-from-true-to-false-and-other-attributes-of-the-property-are-unaltered.js b/test/built-ins/Object/seal/object-seal-configurable-attribute-of-own-data-property-of-o-is-set-from-true-to-false-and-other-attributes-of-the-property-are-unaltered.js index 17f53602f93..adbe4085aba 100644 --- a/test/built-ins/Object/seal/object-seal-configurable-attribute-of-own-data-property-of-o-is-set-from-true-to-false-and-other-attributes-of-the-property-are-unaltered.js +++ b/test/built-ins/Object/seal/object-seal-configurable-attribute-of-own-data-property-of-o-is-set-from-true-to-false-and-other-attributes-of-the-property-are-unaltered.js @@ -25,10 +25,9 @@ if (!preCheck) { throw new Test262Error('Expected preCheck to be true, actually ' + preCheck); } -verifyEqualTo(obj, "foo", 10); - -verifyWritable(obj, "foo"); - -verifyEnumerable(obj, "foo"); - -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + value: 10, + writable: true, + enumerable: true, + configurable: false, +}); diff --git a/test/built-ins/Object/seal/object-seal-non-enumerable-own-property-of-o-is-sealed.js b/test/built-ins/Object/seal/object-seal-non-enumerable-own-property-of-o-is-sealed.js index 7f28c892b7b..80790dd0f48 100644 --- a/test/built-ins/Object/seal/object-seal-non-enumerable-own-property-of-o-is-sealed.js +++ b/test/built-ins/Object/seal/object-seal-non-enumerable-own-property-of-o-is-sealed.js @@ -18,5 +18,6 @@ Object.defineProperty(obj, "foo", { assert(Object.isExtensible(obj)); Object.seal(obj); -assert(obj.hasOwnProperty("foo")); -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + configurable: false, +}); diff --git a/test/built-ins/Object/seal/object-seal-p-is-own-accessor-property-that-overrides-an-inherited-accessor-property.js b/test/built-ins/Object/seal/object-seal-p-is-own-accessor-property-that-overrides-an-inherited-accessor-property.js index 95378480cd6..5869950f5b2 100644 --- a/test/built-ins/Object/seal/object-seal-p-is-own-accessor-property-that-overrides-an-inherited-accessor-property.js +++ b/test/built-ins/Object/seal/object-seal-p-is-own-accessor-property-that-overrides-an-inherited-accessor-property.js @@ -33,5 +33,8 @@ Object.defineProperty(obj, "foo", { assert(Object.isExtensible(obj)); Object.seal(obj); -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + configurable: false, +}); + assert.sameValue(obj.foo, 10); diff --git a/test/built-ins/Object/seal/object-seal-p-is-own-accessor-property-that-overrides-an-inherited-data-property.js b/test/built-ins/Object/seal/object-seal-p-is-own-accessor-property-that-overrides-an-inherited-data-property.js index d64d2059987..c52fca8d4bf 100644 --- a/test/built-ins/Object/seal/object-seal-p-is-own-accessor-property-that-overrides-an-inherited-data-property.js +++ b/test/built-ins/Object/seal/object-seal-p-is-own-accessor-property-that-overrides-an-inherited-data-property.js @@ -31,5 +31,8 @@ Object.defineProperty(obj, "foo", { assert(Object.isExtensible(obj)); Object.seal(obj); -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + configurable: false, +}); + assert.sameValue(obj.foo, 10); diff --git a/test/built-ins/Object/seal/object-seal-p-is-own-accessor-property.js b/test/built-ins/Object/seal/object-seal-p-is-own-accessor-property.js index f0c6fe77e08..ff5ad5131f8 100644 --- a/test/built-ins/Object/seal/object-seal-p-is-own-accessor-property.js +++ b/test/built-ins/Object/seal/object-seal-p-is-own-accessor-property.js @@ -19,5 +19,8 @@ Object.defineProperty(obj, "foo", { assert(Object.isExtensible(obj)); Object.seal(obj); -verifyNotConfigurable(obj, "foo"); +verifyProperty(obj, "foo", { + configurable: false, +}); + assert.sameValue(obj.foo, 10); diff --git a/test/built-ins/Object/seal/object-seal-p-is-own-data-property-that-overrides-an-inherited-accessor-property.js b/test/built-ins/Object/seal/object-seal-p-is-own-data-property-that-overrides-an-inherited-accessor-property.js index 7e9a4df12b6..c8132f5277c 100644 --- a/test/built-ins/Object/seal/object-seal-p-is-own-data-property-that-overrides-an-inherited-accessor-property.js +++ b/test/built-ins/Object/seal/object-seal-p-is-own-data-property-that-overrides-an-inherited-accessor-property.js @@ -30,5 +30,7 @@ Object.defineProperty(obj, "foo", { assert(Object.isExtensible(obj)); Object.seal(obj); -verifyNotConfigurable(obj, "foo"); -assert.sameValue(obj.foo, 10); +verifyProperty(obj, "foo", { + value: 10, + configurable: false, +}); diff --git a/test/built-ins/Object/seal/object-seal-p-is-own-data-property-that-overrides-an-inherited-data-property.js b/test/built-ins/Object/seal/object-seal-p-is-own-data-property-that-overrides-an-inherited-data-property.js index 2810f976c72..960a565f7c5 100644 --- a/test/built-ins/Object/seal/object-seal-p-is-own-data-property-that-overrides-an-inherited-data-property.js +++ b/test/built-ins/Object/seal/object-seal-p-is-own-data-property-that-overrides-an-inherited-data-property.js @@ -25,5 +25,7 @@ Object.defineProperty(obj, "foo", { assert(Object.isExtensible(obj)); Object.seal(obj); -verifyNotConfigurable(obj, "foo"); -assert.sameValue(obj.foo, 10); +verifyProperty(obj, "foo", { + value: 10, + configurable: false, +}); diff --git a/test/built-ins/Object/seal/object-seal-p-is-own-data-property.js b/test/built-ins/Object/seal/object-seal-p-is-own-data-property.js index d4277df3070..f8381797987 100644 --- a/test/built-ins/Object/seal/object-seal-p-is-own-data-property.js +++ b/test/built-ins/Object/seal/object-seal-p-is-own-data-property.js @@ -14,5 +14,7 @@ obj.foo = 10; // default [[Configurable]] attribute value of foo: true assert(Object.isExtensible(obj)); Object.seal(obj); -verifyNotConfigurable(obj, "foo"); -assert.sameValue(obj.foo, 10); +verifyProperty(obj, "foo", { + value: 10, + configurable: false, +}); diff --git a/test/built-ins/Object/seal/object-seal-p-is-own-property-of-a-boolean-object-that-uses-object-s-get-own-property.js b/test/built-ins/Object/seal/object-seal-p-is-own-property-of-a-boolean-object-that-uses-object-s-get-own-property.js index 153a874a5b2..30dc9ef22f4 100644 --- a/test/built-ins/Object/seal/object-seal-p-is-own-property-of-a-boolean-object-that-uses-object-s-get-own-property.js +++ b/test/built-ins/Object/seal/object-seal-p-is-own-property-of-a-boolean-object-that-uses-object-s-get-own-property.js @@ -16,5 +16,7 @@ obj.foo = 10; assert(Object.isExtensible(obj)); Object.seal(obj); -verifyNotConfigurable(obj, "foo"); -assert.sameValue(obj.foo, 10); +verifyProperty(obj, "foo", { + value: 10, + configurable: false, +}); diff --git a/test/built-ins/Object/seal/object-seal-p-is-own-property-of-a-date-object-that-uses-object-s-get-own-property.js b/test/built-ins/Object/seal/object-seal-p-is-own-property-of-a-date-object-that-uses-object-s-get-own-property.js index 23c9a59e5a7..57824620c08 100644 --- a/test/built-ins/Object/seal/object-seal-p-is-own-property-of-a-date-object-that-uses-object-s-get-own-property.js +++ b/test/built-ins/Object/seal/object-seal-p-is-own-property-of-a-date-object-that-uses-object-s-get-own-property.js @@ -16,5 +16,7 @@ obj.foo = 10; assert(Object.isExtensible(obj)); Object.seal(obj); -verifyNotConfigurable(obj, "foo"); -assert.sameValue(obj.foo, 10); +verifyProperty(obj, "foo", { + value: 10, + configurable: false, +}); diff --git a/test/built-ins/Object/seal/object-seal-p-is-own-property-of-a-function-object-that-uses-object-s-get-own-property.js b/test/built-ins/Object/seal/object-seal-p-is-own-property-of-a-function-object-that-uses-object-s-get-own-property.js index d62223c33c0..dc9a94aa519 100644 --- a/test/built-ins/Object/seal/object-seal-p-is-own-property-of-a-function-object-that-uses-object-s-get-own-property.js +++ b/test/built-ins/Object/seal/object-seal-p-is-own-property-of-a-function-object-that-uses-object-s-get-own-property.js @@ -16,5 +16,7 @@ obj.foo = 10; assert(Object.isExtensible(obj)); Object.seal(obj); -verifyNotConfigurable(obj, "foo"); -assert.sameValue(obj.foo, 10); +verifyProperty(obj, "foo", { + value: 10, + configurable: false, +}); diff --git a/test/built-ins/Object/seal/object-seal-p-is-own-property-of-a-number-object-that-uses-object-s-get-own-property.js b/test/built-ins/Object/seal/object-seal-p-is-own-property-of-a-number-object-that-uses-object-s-get-own-property.js index 1f306fd409f..9334bd7f752 100644 --- a/test/built-ins/Object/seal/object-seal-p-is-own-property-of-a-number-object-that-uses-object-s-get-own-property.js +++ b/test/built-ins/Object/seal/object-seal-p-is-own-property-of-a-number-object-that-uses-object-s-get-own-property.js @@ -16,5 +16,7 @@ obj.foo = 10; assert(Object.isExtensible(obj)); Object.seal(obj); -verifyNotConfigurable(obj, "foo"); -assert.sameValue(obj.foo, 10); +verifyProperty(obj, "foo", { + value: 10, + configurable: false, +}); diff --git a/test/built-ins/Object/seal/object-seal-p-is-own-property-of-a-reg-exp-object-that-uses-object-s-get-own-property.js b/test/built-ins/Object/seal/object-seal-p-is-own-property-of-a-reg-exp-object-that-uses-object-s-get-own-property.js index 64e909185b8..5c66aa4a07f 100644 --- a/test/built-ins/Object/seal/object-seal-p-is-own-property-of-a-reg-exp-object-that-uses-object-s-get-own-property.js +++ b/test/built-ins/Object/seal/object-seal-p-is-own-property-of-a-reg-exp-object-that-uses-object-s-get-own-property.js @@ -16,5 +16,7 @@ obj.foo = 10; assert(Object.isExtensible(obj)); Object.seal(obj); -verifyNotConfigurable(obj, "foo"); -assert.sameValue(obj.foo, 10); +verifyProperty(obj, "foo", { + value: 10, + configurable: false, +}); diff --git a/test/built-ins/Object/seal/object-seal-p-is-own-property-of-a-string-object-which-implements-its-own-get-own-property.js b/test/built-ins/Object/seal/object-seal-p-is-own-property-of-a-string-object-which-implements-its-own-get-own-property.js index fce6ad95348..47da25a42b3 100644 --- a/test/built-ins/Object/seal/object-seal-p-is-own-property-of-a-string-object-which-implements-its-own-get-own-property.js +++ b/test/built-ins/Object/seal/object-seal-p-is-own-property-of-a-string-object-which-implements-its-own-get-own-property.js @@ -16,5 +16,7 @@ obj.foo = 10; assert(Object.isExtensible(obj)); Object.seal(obj); -verifyNotConfigurable(obj, "foo"); -assert.sameValue(obj.foo, 10); +verifyProperty(obj, "foo", { + value: 10, + configurable: false, +}); diff --git a/test/built-ins/Object/seal/object-seal-p-is-own-property-of-an-arguments-object-which-implements-its-own-get-own-property.js b/test/built-ins/Object/seal/object-seal-p-is-own-property-of-an-arguments-object-which-implements-its-own-get-own-property.js index e12b8aebfc0..863a5566cf0 100644 --- a/test/built-ins/Object/seal/object-seal-p-is-own-property-of-an-arguments-object-which-implements-its-own-get-own-property.js +++ b/test/built-ins/Object/seal/object-seal-p-is-own-property-of-an-arguments-object-which-implements-its-own-get-own-property.js @@ -18,5 +18,7 @@ obj.foo = 10; assert(Object.isExtensible(obj)); Object.seal(obj); -verifyNotConfigurable(obj, "foo"); -assert.sameValue(obj.foo, 10); +verifyProperty(obj, "foo", { + value: 10, + configurable: false, +}); diff --git a/test/built-ins/Object/seal/object-seal-p-is-own-property-of-an-array-object-that-uses-object-s-get-own-property.js b/test/built-ins/Object/seal/object-seal-p-is-own-property-of-an-array-object-that-uses-object-s-get-own-property.js index 8be909d3fe2..7cf16581748 100644 --- a/test/built-ins/Object/seal/object-seal-p-is-own-property-of-an-array-object-that-uses-object-s-get-own-property.js +++ b/test/built-ins/Object/seal/object-seal-p-is-own-property-of-an-array-object-that-uses-object-s-get-own-property.js @@ -16,5 +16,7 @@ obj.foo = 10; assert(Object.isExtensible(obj)); Object.seal(obj); -verifyNotConfigurable(obj, "foo"); -assert.sameValue(obj.foo, 10); +verifyProperty(obj, "foo", { + value: 10, + configurable: false, +}); diff --git a/test/built-ins/Object/seal/object-seal-p-is-own-property-of-an-error-object-that-uses-object-s-get-own-property.js b/test/built-ins/Object/seal/object-seal-p-is-own-property-of-an-error-object-that-uses-object-s-get-own-property.js index baeb4a18d1e..54291f4b620 100644 --- a/test/built-ins/Object/seal/object-seal-p-is-own-property-of-an-error-object-that-uses-object-s-get-own-property.js +++ b/test/built-ins/Object/seal/object-seal-p-is-own-property-of-an-error-object-that-uses-object-s-get-own-property.js @@ -16,5 +16,7 @@ obj.foo = 10; assert(Object.isExtensible(obj)); Object.seal(obj); -verifyNotConfigurable(obj, "foo"); -assert.sameValue(obj.foo, 10); +verifyProperty(obj, "foo", { + value: 10, + configurable: false, +}); diff --git a/test/built-ins/Object/setPrototypeOf/length.js b/test/built-ins/Object/setPrototypeOf/length.js index 4be318e7464..81734482990 100644 --- a/test/built-ins/Object/setPrototypeOf/length.js +++ b/test/built-ins/Object/setPrototypeOf/length.js @@ -18,12 +18,9 @@ info: | includes: [propertyHelper.js] ---*/ -assert.sameValue( - Object.setPrototypeOf.length, - 2, - 'The value of `Object.setPrototypeOf.length` is `2`' -); - -verifyNotEnumerable(Object.setPrototypeOf, 'length'); -verifyNotWritable(Object.setPrototypeOf, 'length'); -verifyConfigurable(Object.setPrototypeOf, 'length'); +verifyProperty(Object.setPrototypeOf, "length", { + value: 2, + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/setPrototypeOf/name.js b/test/built-ins/Object/setPrototypeOf/name.js index d9cffe8f4b4..8f201bf4e0d 100644 --- a/test/built-ins/Object/setPrototypeOf/name.js +++ b/test/built-ins/Object/setPrototypeOf/name.js @@ -19,12 +19,9 @@ info: | includes: [propertyHelper.js] ---*/ -assert.sameValue( - Object.setPrototypeOf.name, - 'setPrototypeOf', - 'The value of `Object.setPrototypeOf.name` is `"setPrototypeOf"`' -); - -verifyNotEnumerable(Object.setPrototypeOf, 'name'); -verifyNotWritable(Object.setPrototypeOf, 'name'); -verifyConfigurable(Object.setPrototypeOf, 'name'); +verifyProperty(Object.setPrototypeOf, "name", { + value: "setPrototypeOf", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/setPrototypeOf/property-descriptor.js b/test/built-ins/Object/setPrototypeOf/property-descriptor.js index b45e35c84e7..efed28def7f 100644 --- a/test/built-ins/Object/setPrototypeOf/property-descriptor.js +++ b/test/built-ins/Object/setPrototypeOf/property-descriptor.js @@ -12,6 +12,8 @@ includes: [propertyHelper.js] assert.sameValue(typeof Object.setPrototypeOf, 'function'); -verifyNotEnumerable(Object, 'setPrototypeOf'); -verifyWritable(Object, 'setPrototypeOf'); -verifyConfigurable(Object, 'setPrototypeOf'); +verifyProperty(Object, "setPrototypeOf", { + writable: true, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/values/function-length.js b/test/built-ins/Object/values/function-length.js index 62bc2a6f12b..ddf22dedd9a 100644 --- a/test/built-ins/Object/values/function-length.js +++ b/test/built-ins/Object/values/function-length.js @@ -8,8 +8,9 @@ author: Jordan Harband includes: [propertyHelper.js] ---*/ -assert.sameValue(Object.values.length, 1, 'Expected Object.values.length to be 1'); - -verifyNotEnumerable(Object.values, 'length'); -verifyNotWritable(Object.values, 'length'); -verifyConfigurable(Object.values, 'length'); +verifyProperty(Object.values, "length", { + value: 1, + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/values/function-name.js b/test/built-ins/Object/values/function-name.js index 7a9c882a13b..312673c5c33 100644 --- a/test/built-ins/Object/values/function-name.js +++ b/test/built-ins/Object/values/function-name.js @@ -8,12 +8,9 @@ author: Jordan Harband includes: [propertyHelper.js] ---*/ -assert.sameValue( - Object.values.name, - 'values', - 'Expected Object.values.name to be "values"' -); - -verifyNotEnumerable(Object.values, 'name'); -verifyNotWritable(Object.values, 'name'); -verifyConfigurable(Object.values, 'name'); +verifyProperty(Object.values, "name", { + value: "values", + writable: false, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/Object/values/function-property-descriptor.js b/test/built-ins/Object/values/function-property-descriptor.js index ae8f3f3a91a..0999a8cce67 100644 --- a/test/built-ins/Object/values/function-property-descriptor.js +++ b/test/built-ins/Object/values/function-property-descriptor.js @@ -8,6 +8,8 @@ author: Jordan Harband includes: [propertyHelper.js] ---*/ -verifyNotEnumerable(Object, 'values'); -verifyWritable(Object, 'values'); -verifyConfigurable(Object, 'values'); +verifyProperty(Object, "values", { + writable: true, + enumerable: false, + configurable: true, +}); diff --git a/test/built-ins/RegExp/early-err-modifiers-code-point-repeat-i-1.js b/test/built-ins/RegExp/early-err-modifiers-code-point-repeat-i-1.js new file mode 100644 index 00000000000..3227f270fd1 --- /dev/null +++ b/test/built-ins/RegExp/early-err-modifiers-code-point-repeat-i-1.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?ii:a)", ""); +}, 'RegExp("(?ii:a)", ""): '); diff --git a/test/built-ins/RegExp/early-err-modifiers-code-point-repeat-i-2.js b/test/built-ins/RegExp/early-err-modifiers-code-point-repeat-i-2.js new file mode 100644 index 00000000000..9cde021d29d --- /dev/null +++ b/test/built-ins/RegExp/early-err-modifiers-code-point-repeat-i-2.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?imsi:a)", ""); +}, 'RegExp("(?imsi:a)", ""): '); diff --git a/test/built-ins/RegExp/early-err-modifiers-other-code-point-arbitrary.js b/test/built-ins/RegExp/early-err-modifiers-other-code-point-arbitrary.js new file mode 100644 index 00000000000..9b138c52902 --- /dev/null +++ b/test/built-ins/RegExp/early-err-modifiers-other-code-point-arbitrary.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?1:a)", ""); +}, 'RegExp("(?1:a)", ""): '); diff --git a/test/built-ins/RegExp/early-err-modifiers-other-code-point-combining-i.js b/test/built-ins/RegExp/early-err-modifiers-other-code-point-combining-i.js new file mode 100644 index 00000000000..2db823b79c4 --- /dev/null +++ b/test/built-ins/RegExp/early-err-modifiers-other-code-point-combining-i.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?iͥ:a)", ""); +}, 'RegExp("(?iͥ:a)", ""): '); diff --git a/test/built-ins/RegExp/early-err-modifiers-other-code-point-combining-m.js b/test/built-ins/RegExp/early-err-modifiers-other-code-point-combining-m.js new file mode 100644 index 00000000000..b11663f2514 --- /dev/null +++ b/test/built-ins/RegExp/early-err-modifiers-other-code-point-combining-m.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?mͫ:a)", ""); +}, 'RegExp("(?mͫ:a)", ""): '); diff --git a/test/built-ins/RegExp/early-err-modifiers-other-code-point-combining-s.js b/test/built-ins/RegExp/early-err-modifiers-other-code-point-combining-s.js new file mode 100644 index 00000000000..fba7384464e --- /dev/null +++ b/test/built-ins/RegExp/early-err-modifiers-other-code-point-combining-s.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?s̀:a)", ""); +}, 'RegExp("(?s̀:a)", ""): '); diff --git a/test/built-ins/RegExp/early-err-modifiers-other-code-point-d.js b/test/built-ins/RegExp/early-err-modifiers-other-code-point-d.js new file mode 100644 index 00000000000..9908cc2027f --- /dev/null +++ b/test/built-ins/RegExp/early-err-modifiers-other-code-point-d.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?d:a)", ""); +}, 'RegExp("(?d:a)", ""): '); diff --git a/test/built-ins/RegExp/early-err-modifiers-other-code-point-g.js b/test/built-ins/RegExp/early-err-modifiers-other-code-point-g.js new file mode 100644 index 00000000000..c7d51ff8135 --- /dev/null +++ b/test/built-ins/RegExp/early-err-modifiers-other-code-point-g.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?g:a)", ""); +}, 'RegExp("(?g:a)", ""): '); diff --git a/test/built-ins/RegExp/early-err-modifiers-other-code-point-non-display-1.js b/test/built-ins/RegExp/early-err-modifiers-other-code-point-non-display-1.js new file mode 100644 index 00000000000..d15f9c8408c Binary files /dev/null and b/test/built-ins/RegExp/early-err-modifiers-other-code-point-non-display-1.js differ diff --git a/test/built-ins/RegExp/early-err-modifiers-other-code-point-non-display-2.js b/test/built-ins/RegExp/early-err-modifiers-other-code-point-non-display-2.js new file mode 100644 index 00000000000..d8e558ee831 --- /dev/null +++ b/test/built-ins/RegExp/early-err-modifiers-other-code-point-non-display-2.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?s‎:a)", ""); +}, 'RegExp("(?s‎:a)", ""): '); diff --git a/test/built-ins/RegExp/early-err-modifiers-other-code-point-non-flag.js b/test/built-ins/RegExp/early-err-modifiers-other-code-point-non-flag.js new file mode 100644 index 00000000000..a89711345c0 --- /dev/null +++ b/test/built-ins/RegExp/early-err-modifiers-other-code-point-non-flag.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?Q:a)", ""); +}, 'RegExp("(?Q:a)", ""): '); diff --git a/test/built-ins/RegExp/early-err-modifiers-other-code-point-u.js b/test/built-ins/RegExp/early-err-modifiers-other-code-point-u.js new file mode 100644 index 00000000000..27a14d6a856 --- /dev/null +++ b/test/built-ins/RegExp/early-err-modifiers-other-code-point-u.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?u:a)", ""); +}, 'RegExp("(?u:a)", ""): '); diff --git a/test/built-ins/RegExp/early-err-modifiers-other-code-point-uppercase-I.js b/test/built-ins/RegExp/early-err-modifiers-other-code-point-uppercase-I.js new file mode 100644 index 00000000000..c9194dcdbc7 --- /dev/null +++ b/test/built-ins/RegExp/early-err-modifiers-other-code-point-uppercase-I.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?I:a)", ""); +}, 'RegExp("(?I:a)", ""): '); diff --git a/test/built-ins/RegExp/early-err-modifiers-other-code-point-y.js b/test/built-ins/RegExp/early-err-modifiers-other-code-point-y.js new file mode 100644 index 00000000000..3dddd150194 --- /dev/null +++ b/test/built-ins/RegExp/early-err-modifiers-other-code-point-y.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?y:a)", ""); +}, 'RegExp("(?y:a)", ""): '); diff --git a/test/built-ins/RegExp/early-err-modifiers-other-code-point-zwj.js b/test/built-ins/RegExp/early-err-modifiers-other-code-point-zwj.js new file mode 100644 index 00000000000..33eec9379c0 --- /dev/null +++ b/test/built-ins/RegExp/early-err-modifiers-other-code-point-zwj.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?s‍:a)", ""); +}, 'RegExp("(?s‍:a)", ""): '); diff --git a/test/built-ins/RegExp/early-err-modifiers-other-code-point-zwnbsp.js b/test/built-ins/RegExp/early-err-modifiers-other-code-point-zwnbsp.js new file mode 100644 index 00000000000..dec49e6f4e8 --- /dev/null +++ b/test/built-ins/RegExp/early-err-modifiers-other-code-point-zwnbsp.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?s:a)", ""); +}, 'RegExp("(?s:a)", ""): '); diff --git a/test/built-ins/RegExp/early-err-modifiers-other-code-point-zwnj.js b/test/built-ins/RegExp/early-err-modifiers-other-code-point-zwnj.js new file mode 100644 index 00000000000..1f9f8256e73 --- /dev/null +++ b/test/built-ins/RegExp/early-err-modifiers-other-code-point-zwnj.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?s‌:a)", ""); +}, 'RegExp("(?s‌:a)", ""): '); diff --git a/test/built-ins/RegExp/early-err-modifiers-should-not-case-fold-i.js b/test/built-ins/RegExp/early-err-modifiers-should-not-case-fold-i.js new file mode 100644 index 00000000000..045ad68d3bf --- /dev/null +++ b/test/built-ins/RegExp/early-err-modifiers-should-not-case-fold-i.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case folded to "i", "m", or "s" (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?I:a)", "i"); +}, 'RegExp("(?I:a)", "i"): '); diff --git a/test/built-ins/RegExp/early-err-modifiers-should-not-case-fold-m.js b/test/built-ins/RegExp/early-err-modifiers-should-not-case-fold-m.js new file mode 100644 index 00000000000..7e7bd7be0f4 --- /dev/null +++ b/test/built-ins/RegExp/early-err-modifiers-should-not-case-fold-m.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case folded to "i", "m", or "s" (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?M:a)", "i"); +}, 'RegExp("(?M:a)", "i"): '); diff --git a/test/built-ins/RegExp/early-err-modifiers-should-not-case-fold-s.js b/test/built-ins/RegExp/early-err-modifiers-should-not-case-fold-s.js new file mode 100644 index 00000000000..bb944fc5baf --- /dev/null +++ b/test/built-ins/RegExp/early-err-modifiers-should-not-case-fold-s.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case folded to "i", "m", or "s" (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?S:a)", "i"); +}, 'RegExp("(?S:a)", "i"): '); diff --git a/test/built-ins/RegExp/early-err-modifiers-should-not-unicode-case-fold-i.js b/test/built-ins/RegExp/early-err-modifiers-should-not-unicode-case-fold-i.js new file mode 100644 index 00000000000..f5d7e122cc7 --- /dev/null +++ b/test/built-ins/RegExp/early-err-modifiers-should-not-unicode-case-fold-i.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case-folded to "i", "m", or "s" (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?İ:a)", "iu"); +}, 'RegExp("(?İ:a)", "iu"): '); diff --git a/test/built-ins/RegExp/early-err-modifiers-should-not-unicode-case-fold-s.js b/test/built-ins/RegExp/early-err-modifiers-should-not-unicode-case-fold-s.js new file mode 100644 index 00000000000..9ca44e612f2 --- /dev/null +++ b/test/built-ins/RegExp/early-err-modifiers-should-not-unicode-case-fold-s.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case-folded to "i", "m", or "s" (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?ſ:a)", "u"); +}, 'RegExp("(?ſ:a)", "u"): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-add-remove-i.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-add-remove-i.js new file mode 100644 index 00000000000..7f06459d96e --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-add-remove-i.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the any code point in the source text matched by the first RegularExpressionFlags is also contained in the source text matched by the second RegularExpressionFlags. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?i-i:a)", ""); +}, 'RegExp("(?i-i:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-add-remove-m.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-add-remove-m.js new file mode 100644 index 00000000000..339cfab683a --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-add-remove-m.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the any code point in the source text matched by the first RegularExpressionFlags is also contained in the source text matched by the second RegularExpressionFlags. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?m-m:a)", ""); +}, 'RegExp("(?m-m:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-add-remove-multi-duplicate.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-add-remove-multi-duplicate.js new file mode 100644 index 00000000000..6c52816fb01 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-add-remove-multi-duplicate.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the any code point in the source text matched by the first RegularExpressionFlags is also contained in the source text matched by the second RegularExpressionFlags. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?ims-m:a)", ""); +}, 'RegExp("(?ims-m:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-add-remove-s-escape.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-add-remove-s-escape.js new file mode 100644 index 00000000000..39ce2deca9b --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-add-remove-s-escape.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the any code point in the source text matched by the first RegularExpressionFlags is also contained in the source text matched by the second RegularExpressionFlags. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?\u{0073}-s:a)", ""); +}, 'RegExp("(?\u{0073}-s:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-add-remove-s.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-add-remove-s.js new file mode 100644 index 00000000000..c3bd0d89b49 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-add-remove-s.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the any code point in the source text matched by the first RegularExpressionFlags is also contained in the source text matched by the second RegularExpressionFlags. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?s-s:a)", ""); +}, 'RegExp("(?s-s:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-both-empty.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-both-empty.js new file mode 100644 index 00000000000..8bf1d1e233e --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-both-empty.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by the first RegularExpressionFlags and the source text matched by the second RegularExpressionFlags are both empty. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?-:a)", ""); +}, 'RegExp("(?-:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-code-point-repeat-i-1.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-code-point-repeat-i-1.js new file mode 100644 index 00000000000..a006558bd84 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-code-point-repeat-i-1.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?-ii:a)", ""); +}, 'RegExp("(?-ii:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-code-point-repeat-i-2.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-code-point-repeat-i-2.js new file mode 100644 index 00000000000..7b303cbc3d3 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-code-point-repeat-i-2.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?-imsi:a)", ""); +}, 'RegExp("(?-imsi:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-arbitrary.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-arbitrary.js new file mode 100644 index 00000000000..314b45de6af --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-arbitrary.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?-1:a)", ""); +}, 'RegExp("(?-1:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-combining-i.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-combining-i.js new file mode 100644 index 00000000000..f3d986b2a13 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-combining-i.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?-iͥ:a)", ""); +}, 'RegExp("(?-iͥ:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-combining-m.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-combining-m.js new file mode 100644 index 00000000000..d9e3864e1da --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-combining-m.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?-mͫ:a)", ""); +}, 'RegExp("(?-mͫ:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-combining-s.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-combining-s.js new file mode 100644 index 00000000000..a2d8e6533ad --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-combining-s.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?-s̀:a)", ""); +}, 'RegExp("(?-s̀:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-d.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-d.js new file mode 100644 index 00000000000..b90bdb5bbee --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-d.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?-d:a)", ""); +}, 'RegExp("(?-d:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-g.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-g.js new file mode 100644 index 00000000000..8cefd993391 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-g.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?-g:a)", ""); +}, 'RegExp("(?-g:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-non-display-1.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-non-display-1.js new file mode 100644 index 00000000000..75e55954465 Binary files /dev/null and b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-non-display-1.js differ diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-non-display-2.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-non-display-2.js new file mode 100644 index 00000000000..a999fe41c46 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-non-display-2.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?-s‎:a)", ""); +}, 'RegExp("(?-s‎:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-non-flag.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-non-flag.js new file mode 100644 index 00000000000..aed56329420 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-non-flag.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?-Q:a)", ""); +}, 'RegExp("(?-Q:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-u.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-u.js new file mode 100644 index 00000000000..91bf17f80b3 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-u.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?-u:a)", ""); +}, 'RegExp("(?-u:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-uppercase-I.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-uppercase-I.js new file mode 100644 index 00000000000..3e3c9d0fba7 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-uppercase-I.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?-I:a)", ""); +}, 'RegExp("(?-I:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-y.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-y.js new file mode 100644 index 00000000000..0d68ab21b73 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-y.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?-y:a)", ""); +}, 'RegExp("(?-y:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-zwj.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-zwj.js new file mode 100644 index 00000000000..dbb8fed6b10 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-zwj.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?-s‍:a)", ""); +}, 'RegExp("(?-s‍:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-zwnbsp.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-zwnbsp.js new file mode 100644 index 00000000000..e8a3d0ea7fa --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-zwnbsp.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?-s:a)", ""); +}, 'RegExp("(?-s:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-zwnj.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-zwnj.js new file mode 100644 index 00000000000..f74be128e09 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-other-code-point-zwnj.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?-s‌:a)", ""); +}, 'RegExp("(?-s‌:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-add-remove-i.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-add-remove-i.js new file mode 100644 index 00000000000..7f06459d96e --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-add-remove-i.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the any code point in the source text matched by the first RegularExpressionFlags is also contained in the source text matched by the second RegularExpressionFlags. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?i-i:a)", ""); +}, 'RegExp("(?i-i:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-add-remove-m.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-add-remove-m.js new file mode 100644 index 00000000000..339cfab683a --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-add-remove-m.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the any code point in the source text matched by the first RegularExpressionFlags is also contained in the source text matched by the second RegularExpressionFlags. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?m-m:a)", ""); +}, 'RegExp("(?m-m:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-add-remove-multi-duplicate.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-add-remove-multi-duplicate.js new file mode 100644 index 00000000000..500c07eea88 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-add-remove-multi-duplicate.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the any code point in the source text matched by the first RegularExpressionFlags is also contained in the source text matched by the second RegularExpressionFlags. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?m-ims:a)", ""); +}, 'RegExp("(?m-ims:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-add-remove-s-escape.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-add-remove-s-escape.js new file mode 100644 index 00000000000..0ca3761ccf1 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-add-remove-s-escape.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the any code point in the source text matched by the first RegularExpressionFlags is also contained in the source text matched by the second RegularExpressionFlags. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?s-\u{0073}:a)", ""); +}, 'RegExp("(?s-\u{0073}:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-add-remove-s.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-add-remove-s.js new file mode 100644 index 00000000000..c3bd0d89b49 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-add-remove-s.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the any code point in the source text matched by the first RegularExpressionFlags is also contained in the source text matched by the second RegularExpressionFlags. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?s-s:a)", ""); +}, 'RegExp("(?s-s:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-code-point-repeat-i-1.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-code-point-repeat-i-1.js new file mode 100644 index 00000000000..56619aa615a --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-code-point-repeat-i-1.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?ii-:a)", ""); +}, 'RegExp("(?ii-:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-code-point-repeat-i-2.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-code-point-repeat-i-2.js new file mode 100644 index 00000000000..f6940a463ed --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-code-point-repeat-i-2.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?imsi-:a)", ""); +}, 'RegExp("(?imsi-:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-arbitrary.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-arbitrary.js new file mode 100644 index 00000000000..a4e4934fb20 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-arbitrary.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?1-:a)", ""); +}, 'RegExp("(?1-:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-combining-i.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-combining-i.js new file mode 100644 index 00000000000..9a2300b4aa6 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-combining-i.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?iͥ-:a)", ""); +}, 'RegExp("(?iͥ-:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-combining-m.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-combining-m.js new file mode 100644 index 00000000000..6ded6b09ef2 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-combining-m.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?mͫ-:a)", ""); +}, 'RegExp("(?mͫ-:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-combining-s.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-combining-s.js new file mode 100644 index 00000000000..e29679d5b3e --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-combining-s.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?s̀-:a)", ""); +}, 'RegExp("(?s̀-:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-d.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-d.js new file mode 100644 index 00000000000..ab1bca67ebb --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-d.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?d-:a)", ""); +}, 'RegExp("(?d-:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-g.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-g.js new file mode 100644 index 00000000000..9189083cb73 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-g.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?g-:a)", ""); +}, 'RegExp("(?g-:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-non-display-1.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-non-display-1.js new file mode 100644 index 00000000000..12c46aedba7 Binary files /dev/null and b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-non-display-1.js differ diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-non-display-2.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-non-display-2.js new file mode 100644 index 00000000000..5fcc2aa6bef --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-non-display-2.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?s‎-:a)", ""); +}, 'RegExp("(?s‎-:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-non-flag.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-non-flag.js new file mode 100644 index 00000000000..6eb30880b23 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-non-flag.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?Q-:a)", ""); +}, 'RegExp("(?Q-:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-u.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-u.js new file mode 100644 index 00000000000..2b20cac8361 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-u.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?u-:a)", ""); +}, 'RegExp("(?u-:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-uppercase-I.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-uppercase-I.js new file mode 100644 index 00000000000..8cb165ad805 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-uppercase-I.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?I-:a)", ""); +}, 'RegExp("(?I-:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-y.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-y.js new file mode 100644 index 00000000000..6761a044cfa --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-y.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?y-:a)", ""); +}, 'RegExp("(?y-:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-zwj.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-zwj.js new file mode 100644 index 00000000000..63c3dc3bc1f --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-zwj.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?s‍-:a)", ""); +}, 'RegExp("(?s‍-:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-zwnbsp.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-zwnbsp.js new file mode 100644 index 00000000000..3d54ed4ef67 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-zwnbsp.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?s-:a)", ""); +}, 'RegExp("(?s-:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-zwnj.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-zwnj.js new file mode 100644 index 00000000000..e9d2f7d6db7 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-other-code-point-zwnj.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?s‌-:a)", ""); +}, 'RegExp("(?s‌-:a)", ""): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-should-not-case-fold-i.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-should-not-case-fold-i.js new file mode 100644 index 00000000000..40e56a0a7a4 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-should-not-case-fold-i.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case folded to "i", "m", or "s" (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?I-:a)", "i"); +}, 'RegExp("(?I-:a)", "i"): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-should-not-case-fold-m.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-should-not-case-fold-m.js new file mode 100644 index 00000000000..f1d7e2cc74b --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-should-not-case-fold-m.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case folded to "i", "m", or "s" (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?M-:a)", "i"); +}, 'RegExp("(?M-:a)", "i"): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-should-not-case-fold-s.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-should-not-case-fold-s.js new file mode 100644 index 00000000000..078cb9b5aea --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-should-not-case-fold-s.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case folded to "i", "m", or "s" (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?S-:a)", "i"); +}, 'RegExp("(?S-:a)", "i"): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-should-not-unicode-case-fold-i.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-should-not-unicode-case-fold-i.js new file mode 100644 index 00000000000..e24b56327a5 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-should-not-unicode-case-fold-i.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case-folded to "i", "m", or "s" (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?İ-:a)", "iu"); +}, 'RegExp("(?İ-:a)", "iu"): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-should-not-unicode-case-fold-s.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-should-not-unicode-case-fold-s.js new file mode 100644 index 00000000000..eab04eb6b73 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-reverse-should-not-unicode-case-fold-s.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case-folded to "i", "m", or "s" (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?ſ-:a)", "u"); +}, 'RegExp("(?ſ-:a)", "u"): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-should-not-case-fold-i.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-should-not-case-fold-i.js new file mode 100644 index 00000000000..f0f044ad681 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-should-not-case-fold-i.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case folded to "i", "m", or "s" (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?-I:a)", "i"); +}, 'RegExp("(?-I:a)", "i"): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-should-not-case-fold-m.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-should-not-case-fold-m.js new file mode 100644 index 00000000000..e07b0997ca7 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-should-not-case-fold-m.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case folded to "i", "m", or "s" (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?-M:a)", "i"); +}, 'RegExp("(?-M:a)", "i"): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-should-not-case-fold-s.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-should-not-case-fold-s.js new file mode 100644 index 00000000000..10d3aba3b44 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-should-not-case-fold-s.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case folded to "i", "m", or "s" (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?-S:a)", "i"); +}, 'RegExp("(?-S:a)", "i"): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-should-not-unicode-case-fold-i.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-should-not-unicode-case-fold-i.js new file mode 100644 index 00000000000..110a66448f2 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-should-not-unicode-case-fold-i.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case-folded to "i", "m", or "s" (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?-İ:a)", "iu"); +}, 'RegExp("(?-İ:a)", "iu"): '); diff --git a/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-should-not-unicode-case-fold-s.js b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-should-not-unicode-case-fold-s.js new file mode 100644 index 00000000000..adf4f325ea5 --- /dev/null +++ b/test/built-ins/RegExp/syntax-err-arithmetic-modifiers-should-not-unicode-case-fold-s.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case-folded to "i", "m", or "s" (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +assert.throws(SyntaxError, function () { + RegExp("(?-ſ:a)", "u"); +}, 'RegExp("(?-ſ:a)", "u"): '); diff --git a/test/built-ins/Temporal/Calendar/prototype/weekOfYear/custom-calendar-weekofyear.js b/test/built-ins/Temporal/Calendar/prototype/weekOfYear/custom-calendar-weekofyear.js new file mode 100644 index 00000000000..c9871143617 --- /dev/null +++ b/test/built-ins/Temporal/Calendar/prototype/weekOfYear/custom-calendar-weekofyear.js @@ -0,0 +1,23 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.calendar.prototype.weekofyear +description: > + Temporal.Calendar.prototype.weekOfYear returns undefined for all + custom calendars where weekOfYear() returns undefined. +features: [Temporal] +---*/ + +class CustomCalendar extends Temporal.Calendar { + constructor() { + super("iso8601"); + } + weekOfYear() { + return undefined; + } +} + +const calendar = new CustomCalendar(); +const customCalendarDate = { month: 1, day: 1, year: 2024, calendar}; +assert.sameValue(calendar.weekOfYear({...customCalendarDate}), undefined); diff --git a/test/built-ins/Temporal/Calendar/prototype/yearOfWeek/custom-calendar-weekofyear.js b/test/built-ins/Temporal/Calendar/prototype/yearOfWeek/custom-calendar-weekofyear.js new file mode 100644 index 00000000000..0440497eb9b --- /dev/null +++ b/test/built-ins/Temporal/Calendar/prototype/yearOfWeek/custom-calendar-weekofyear.js @@ -0,0 +1,23 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.calendar.prototype.yearofweek +description: > + Temporal.Calendar.prototype.yearOfWeek returns undefined for all + custom calendars where yearOfWeek() returns undefined. +features: [Temporal] +---*/ + +class CustomCalendar extends Temporal.Calendar { + constructor() { + super("iso8601"); + } + yearOfWeek() { + return undefined; + } +} + +const calendar = new CustomCalendar(); +const customCalendarDate = { month: 1, day: 1, year: 2024, calendar}; +assert.sameValue(calendar.yearOfWeek({...customCalendarDate}), undefined); diff --git a/test/built-ins/Temporal/PlainDate/prototype/weekOfYear/custom-calendar-weekofyear.js b/test/built-ins/Temporal/PlainDate/prototype/weekOfYear/custom-calendar-weekofyear.js new file mode 100644 index 00000000000..35261207ed9 --- /dev/null +++ b/test/built-ins/Temporal/PlainDate/prototype/weekOfYear/custom-calendar-weekofyear.js @@ -0,0 +1,23 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.plaindate.prototype.weekofyear +description: > + Temporal.PlainDate.prototype.weekOfYear returns undefined for all + custom calendars where weekOfYear() returns undefined. +features: [Temporal] +---*/ + +class CustomCalendar extends Temporal.Calendar { + constructor() { + super("iso8601"); + } + weekOfYear() { + return undefined; + } +} + +const calendar = new CustomCalendar(); +const customCalendarDate = new Temporal.PlainDate(2024, 1, 1, calendar); +assert.sameValue(customCalendarDate.weekOfYear, undefined); diff --git a/test/built-ins/Temporal/PlainDate/prototype/weekOfYear/validate-calendar-value.js b/test/built-ins/Temporal/PlainDate/prototype/weekOfYear/validate-calendar-value.js index f8bcc7ecce9..0033b10161e 100644 --- a/test/built-ins/Temporal/PlainDate/prototype/weekOfYear/validate-calendar-value.js +++ b/test/built-ins/Temporal/PlainDate/prototype/weekOfYear/validate-calendar-value.js @@ -8,7 +8,6 @@ features: [Temporal] ---*/ const badResults = [ - [undefined, TypeError], [null, TypeError], [false, TypeError], [Infinity, RangeError], diff --git a/test/built-ins/Temporal/PlainDate/prototype/yearOfWeek/custom-calendar-weekofyear.js b/test/built-ins/Temporal/PlainDate/prototype/yearOfWeek/custom-calendar-weekofyear.js new file mode 100644 index 00000000000..fdb51a1b172 --- /dev/null +++ b/test/built-ins/Temporal/PlainDate/prototype/yearOfWeek/custom-calendar-weekofyear.js @@ -0,0 +1,23 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.plaindate.prototype.yearofweek +description: > + Temporal.PlainDate.prototype.yearOfWeek returns undefined for all + custom calendars where yearOfWeek() returns undefined. +features: [Temporal] +---*/ + +class CustomCalendar extends Temporal.Calendar { + constructor() { + super("iso8601"); + } + yearOfWeek() { + return undefined; + } +} + +const calendar = new CustomCalendar(); +const customCalendarDate = new Temporal.PlainDate(2024, 1, 1, calendar); +assert.sameValue(customCalendarDate.yearOfWeek, undefined); diff --git a/test/built-ins/Temporal/PlainDate/prototype/yearOfWeek/validate-calendar-value.js b/test/built-ins/Temporal/PlainDate/prototype/yearOfWeek/validate-calendar-value.js index 5a44767f6b5..e8f682dad2f 100644 --- a/test/built-ins/Temporal/PlainDate/prototype/yearOfWeek/validate-calendar-value.js +++ b/test/built-ins/Temporal/PlainDate/prototype/yearOfWeek/validate-calendar-value.js @@ -8,7 +8,6 @@ features: [Temporal] ---*/ const badResults = [ - [undefined, TypeError], [Infinity, RangeError], [-Infinity, RangeError], [Symbol("foo"), TypeError], diff --git a/test/built-ins/Temporal/PlainDateTime/prototype/weekOfYear/custom-calendar-weekofyear.js b/test/built-ins/Temporal/PlainDateTime/prototype/weekOfYear/custom-calendar-weekofyear.js new file mode 100644 index 00000000000..f9b43f88afe --- /dev/null +++ b/test/built-ins/Temporal/PlainDateTime/prototype/weekOfYear/custom-calendar-weekofyear.js @@ -0,0 +1,23 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.plaindatetime.prototype.weekofyear +description: > + Temporal.PlainDateTime.prototype.weekOfYear returns undefined for all + custom calendars where weekOfYear() returns undefined. +features: [Temporal] +---*/ + +class CustomCalendar extends Temporal.Calendar { + constructor() { + super("iso8601"); + } + weekOfYear() { + return undefined; + } +} + +const calendar = new CustomCalendar(); +const customCalendarDate = new Temporal.PlainDateTime(2024, 1, 1, 12, 34, 56, 987, 654, 321, calendar); +assert.sameValue(customCalendarDate.weekOfYear, undefined); diff --git a/test/built-ins/Temporal/PlainDateTime/prototype/weekOfYear/validate-calendar-value.js b/test/built-ins/Temporal/PlainDateTime/prototype/weekOfYear/validate-calendar-value.js index e8aeb1d742e..69ff6a2c5ce 100644 --- a/test/built-ins/Temporal/PlainDateTime/prototype/weekOfYear/validate-calendar-value.js +++ b/test/built-ins/Temporal/PlainDateTime/prototype/weekOfYear/validate-calendar-value.js @@ -8,7 +8,6 @@ features: [Temporal] ---*/ const badResults = [ - [undefined, TypeError], [null, TypeError], [false, TypeError], [Infinity, RangeError], diff --git a/test/built-ins/Temporal/PlainDateTime/prototype/yearOfWeek/custom-calendar-weekofyear.js b/test/built-ins/Temporal/PlainDateTime/prototype/yearOfWeek/custom-calendar-weekofyear.js new file mode 100644 index 00000000000..425b3a0360b --- /dev/null +++ b/test/built-ins/Temporal/PlainDateTime/prototype/yearOfWeek/custom-calendar-weekofyear.js @@ -0,0 +1,23 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.plaindatetime.prototype.yearofweek +description: > + Temporal.PlainDateTime.prototype.yearOfWeek returns undefined for all + custom calendars where yearOfWeek() returns undefined. +features: [Temporal] +---*/ + +class CustomCalendar extends Temporal.Calendar { + constructor() { + super("iso8601"); + } + yearOfWeek() { + return undefined; + } +} + +const calendar = new CustomCalendar(); +const customCalendarDate = new Temporal.PlainDateTime(2024, 1, 1, 12, 34, 56, 987, 654, 321, calendar); +assert.sameValue(customCalendarDate.yearOfWeek, undefined); diff --git a/test/built-ins/Temporal/PlainDateTime/prototype/yearOfWeek/validate-calendar-value.js b/test/built-ins/Temporal/PlainDateTime/prototype/yearOfWeek/validate-calendar-value.js index d80ce15fa1c..0efa0075acb 100644 --- a/test/built-ins/Temporal/PlainDateTime/prototype/yearOfWeek/validate-calendar-value.js +++ b/test/built-ins/Temporal/PlainDateTime/prototype/yearOfWeek/validate-calendar-value.js @@ -8,7 +8,6 @@ features: [Temporal] ---*/ const badResults = [ - [undefined, TypeError], [Infinity, RangeError], [-Infinity, RangeError], [Symbol("foo"), TypeError], diff --git a/test/built-ins/Temporal/ZonedDateTime/prototype/weekOfYear/custom-calendar-weekofyear.js b/test/built-ins/Temporal/ZonedDateTime/prototype/weekOfYear/custom-calendar-weekofyear.js new file mode 100644 index 00000000000..ed8df20d109 --- /dev/null +++ b/test/built-ins/Temporal/ZonedDateTime/prototype/weekOfYear/custom-calendar-weekofyear.js @@ -0,0 +1,24 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.zoneddatetime.prototype.weekofyear +description: > + Temporal.ZonedDateTime.prototype.weekOfYear returns undefined for all + custom calendars where weekOfYear() returns undefined. +features: [Temporal] +---*/ + +class CustomCalendar extends Temporal.Calendar { + constructor() { + super("iso8601"); + } + weekOfYear() { + return undefined; + } +} + +const calendar = new CustomCalendar(); +// Epoch Nanoseconds for new Temporal.PlainDateTime(2024, 1, 1, 12, 34, 56, 987, 654, 321, calendar); +const customCalendarDate = new Temporal.ZonedDateTime(1_704_112_496_987_654_321n, "UTC", calendar); +assert.sameValue(customCalendarDate.weekOfYear, undefined); diff --git a/test/built-ins/Temporal/ZonedDateTime/prototype/weekOfYear/validate-calendar-value.js b/test/built-ins/Temporal/ZonedDateTime/prototype/weekOfYear/validate-calendar-value.js index 9d6f448656e..fe3ba667d7c 100644 --- a/test/built-ins/Temporal/ZonedDateTime/prototype/weekOfYear/validate-calendar-value.js +++ b/test/built-ins/Temporal/ZonedDateTime/prototype/weekOfYear/validate-calendar-value.js @@ -8,7 +8,6 @@ features: [Temporal] ---*/ const badResults = [ - [undefined, TypeError], [null, TypeError], [false, TypeError], [Infinity, RangeError], diff --git a/test/built-ins/Temporal/ZonedDateTime/prototype/yearOfWeek/custom-calendar-weekofyear.js b/test/built-ins/Temporal/ZonedDateTime/prototype/yearOfWeek/custom-calendar-weekofyear.js new file mode 100644 index 00000000000..0c5c3723c79 --- /dev/null +++ b/test/built-ins/Temporal/ZonedDateTime/prototype/yearOfWeek/custom-calendar-weekofyear.js @@ -0,0 +1,24 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.zoneddatetime.prototype.yearofweek +description: > + Temporal.ZonedDateTime.prototype.yearOfWeek returns undefined for all + custom calendars where yearOfWeek() returns undefined. +features: [Temporal] +---*/ + +class CustomCalendar extends Temporal.Calendar { + constructor() { + super("iso8601"); + } + yearOfWeek() { + return undefined; + } +} + +const calendar = new CustomCalendar(); +// Epoch Nanoseconds for new Temporal.PlainDateTime(2024, 1, 1, 12, 34, 56, 987, 654, 321, calendar); +const customCalendarDate = new Temporal.ZonedDateTime(1_704_112_496_987_654_321n, "UTC", calendar); +assert.sameValue(customCalendarDate.yearOfWeek, undefined); diff --git a/test/built-ins/Temporal/ZonedDateTime/prototype/yearOfWeek/validate-calendar-value.js b/test/built-ins/Temporal/ZonedDateTime/prototype/yearOfWeek/validate-calendar-value.js index 64a027b2dd7..6b87e8a8b25 100644 --- a/test/built-ins/Temporal/ZonedDateTime/prototype/yearOfWeek/validate-calendar-value.js +++ b/test/built-ins/Temporal/ZonedDateTime/prototype/yearOfWeek/validate-calendar-value.js @@ -8,7 +8,6 @@ features: [Temporal] ---*/ const badResults = [ - [undefined, TypeError], [Infinity, RangeError], [-Infinity, RangeError], [Symbol("foo"), TypeError], diff --git a/test/intl402/Locale/prototype/calendar/canonicalize.js b/test/intl402/Locale/prototype/calendar/canonicalize.js new file mode 100644 index 00000000000..91fcc0a6ebb --- /dev/null +++ b/test/intl402/Locale/prototype/calendar/canonicalize.js @@ -0,0 +1,20 @@ +// Copyright 2024 Google Inc. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-apply-unicode-extension-to-tag +description: Checks canonicalize value of extension in ApplyUnicodeExtensionToTag. +info: | + ApplyUnicodeExtensionToTag + 1. Let _optionsUValue_ be the ASCII-lowercase of _optionsValue_. + 1. Set _value_ to the String value resulting from canonicalizing _optionsUValue_ as a value of key _key_ per Unicode Technical Standard #35 Part 1 Core, Annex C LocaleId Canonicalization Section 5 Canonicalizing Syntax, Processing LocaleIds. +features: [Intl.Locale] +---*/ + +const loc = new Intl.Locale('en', {calendar: 'islamicc'}); + +assert.sameValue(loc.toString(), "en-u-ca-islamic-civil", + "'islamicc' should be canonicalize to 'islamic-civil'"); + +assert.sameValue(loc.calendar, "islamic-civil", + "'islamicc' should be canonicalize to 'islamic-civil'"); diff --git a/test/intl402/Temporal/Calendar/prototype/weekOfYear/gregory-iso-weekofyear.js b/test/intl402/Temporal/Calendar/prototype/weekOfYear/gregory-iso-weekofyear.js new file mode 100644 index 00000000000..1b2d2d3d4b9 --- /dev/null +++ b/test/intl402/Temporal/Calendar/prototype/weekOfYear/gregory-iso-weekofyear.js @@ -0,0 +1,27 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.calendar.prototype.weekofyear +description: > + In the ISO 8601 week calendar, calendar week number 1 of a calendar year is + the week including the first Thursday of that year (based on the principle + that a week belongs to the same calendar year as the majority of its calendar + days). Because of this, some calendar days of the first calendar week of a + calendar year may be part of the preceding date calendar year, and some + calendar days of the last calendar week of a calendar year may be part of + the next calendar year. +features: [Temporal] +---*/ + +// + +let calendar = new Temporal.Calendar("gregory"); +const date = { month: 1, day: 1, year: 2021, calendar}; + +assert.sameValue(calendar.weekOfYear({...date}), 1); + +calendar = new Temporal.Calendar("iso8601"); +const isodate = { month: 1, day: 1, year: 2021, calendar}; + +assert.sameValue(calendar.weekOfYear({...isodate}), 53); diff --git a/test/intl402/Temporal/Calendar/prototype/weekOfYear/non-iso-week-of-year.js b/test/intl402/Temporal/Calendar/prototype/weekOfYear/non-iso-week-of-year.js new file mode 100644 index 00000000000..f36305b29a2 --- /dev/null +++ b/test/intl402/Temporal/Calendar/prototype/weekOfYear/non-iso-week-of-year.js @@ -0,0 +1,22 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.calendar.prototype.weekofyear +description: > + Temporal.Calendar.prototype.weekOfYear returns undefined for all + non-ISO calendars without a well-defined week numbering system. +features: [Temporal] +---*/ + +// Gregorian calendar has a well defined week-numbering system. + +let calendar = new Temporal.Calendar("gregory"); +const date = { month: 1, day: 1, year: 2024, calendar}; + +assert.sameValue(calendar.weekOfYear({...date}), 1); + +calendar = new Temporal.Calendar("hebrew"); +const nonisodate = { month: 1, day: 1, year: 2024, calendar}; + +assert.sameValue(calendar.weekOfYear({...nonisodate}), undefined); diff --git a/test/intl402/Temporal/Calendar/prototype/yearOfWeek/gregory-iso-weekofyear.js b/test/intl402/Temporal/Calendar/prototype/yearOfWeek/gregory-iso-weekofyear.js new file mode 100644 index 00000000000..65f73d7a2bc --- /dev/null +++ b/test/intl402/Temporal/Calendar/prototype/yearOfWeek/gregory-iso-weekofyear.js @@ -0,0 +1,27 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.calendar.prototype.yearofweek +description: > + In the ISO 8601 week calendar, calendar week number 1 of a calendar year is + the week including the first Thursday of that year (based on the principle + that a week belongs to the same calendar year as the majority of its calendar + days). Because of this, some calendar days of the first calendar week of a + calendar year may be part of the preceding date calendar year, and some + calendar days of the last calendar week of a calendar year may be part of + the next calendar year. +features: [Temporal] +---*/ + +// + +let calendar = new Temporal.Calendar("gregory"); +const date = { month: 1, day: 1, year: 2021, calendar}; + +assert.sameValue(calendar.yearOfWeek({...date}), 2021); + +calendar = new Temporal.Calendar("iso8601"); +const isodate = { month: 1, day: 1, year: 2021, calendar}; + +assert.sameValue(calendar.yearOfWeek({...isodate}), 2020); diff --git a/test/intl402/Temporal/Calendar/prototype/yearOfWeek/non-iso-week-of-year.js b/test/intl402/Temporal/Calendar/prototype/yearOfWeek/non-iso-week-of-year.js new file mode 100644 index 00000000000..4337ed0918e --- /dev/null +++ b/test/intl402/Temporal/Calendar/prototype/yearOfWeek/non-iso-week-of-year.js @@ -0,0 +1,22 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.calendar.prototype.yearofweek +description: > + Temporal.Calendar.prototype.yearOfWeek returns undefined for all + non-ISO calendars without a well-defined week numbering system. +features: [Temporal] +---*/ + +// Gregorian calendar has a well defined week-numbering system. + +let calendar = new Temporal.Calendar("gregory"); +const date = { month: 1, day: 1, year: 2024, calendar}; + +assert.sameValue(calendar.yearOfWeek({...date}), 2024); + +calendar = new Temporal.Calendar("hebrew"); +const nonisodate = { month: 1, day: 1, year: 2024, calendar}; + +assert.sameValue(calendar.yearOfWeek({...nonisodate}), undefined); diff --git a/test/intl402/Temporal/PlainDate/prototype/weekOfYear/gregory-iso-weekofyear.js b/test/intl402/Temporal/PlainDate/prototype/weekOfYear/gregory-iso-weekofyear.js new file mode 100644 index 00000000000..4d023823352 --- /dev/null +++ b/test/intl402/Temporal/PlainDate/prototype/weekOfYear/gregory-iso-weekofyear.js @@ -0,0 +1,27 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.plaindate.prototype.weekofyear +description: > + In the ISO 8601 week calendar, calendar week number 1 of a calendar year is + the week including the first Thursday of that year (based on the principle + that a week belongs to the same calendar year as the majority of its calendar + days). Because of this, some calendar days of the first calendar week of a + calendar year may be part of the preceding date calendar year, and some + calendar days of the last calendar week of a calendar year may be part of + the next calendar year. +features: [Temporal] +---*/ + +// + +let calendar = new Temporal.Calendar("gregory"); +const date = new Temporal.PlainDate(2021, 1, 1, calendar); + +assert.sameValue(date.weekOfYear, 1); + +calendar = new Temporal.Calendar("iso8601"); +const isodate = new Temporal.PlainDate(2021, 1, 1, calendar); + +assert.sameValue(isodate.weekOfYear, 53); diff --git a/test/intl402/Temporal/PlainDate/prototype/weekOfYear/non-iso-week-of-year.js b/test/intl402/Temporal/PlainDate/prototype/weekOfYear/non-iso-week-of-year.js new file mode 100644 index 00000000000..86c46b497d7 --- /dev/null +++ b/test/intl402/Temporal/PlainDate/prototype/weekOfYear/non-iso-week-of-year.js @@ -0,0 +1,22 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.plaindate.prototype.weekofyear +description: > + Temporal.PlainDate.prototype.weekOfYear returns undefined for all + non-ISO calendars without a well-defined week numbering system. +features: [Temporal] +---*/ + +// Gregorian calendar has a well defined week-numbering system. + +let calendar = new Temporal.Calendar("gregory"); +const date = new Temporal.PlainDate(2024, 1, 1, calendar); + +assert.sameValue(date.weekOfYear, 1); + +calendar = new Temporal.Calendar("hebrew"); +const nonisodate = new Temporal.PlainDate(2024, 1, 1, calendar); + +assert.sameValue(nonisodate.weekOfYear, undefined); diff --git a/test/intl402/Temporal/PlainDate/prototype/yearOfWeek/gregory-iso-weekofyear.js b/test/intl402/Temporal/PlainDate/prototype/yearOfWeek/gregory-iso-weekofyear.js new file mode 100644 index 00000000000..70252942e90 --- /dev/null +++ b/test/intl402/Temporal/PlainDate/prototype/yearOfWeek/gregory-iso-weekofyear.js @@ -0,0 +1,27 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.plaindate.prototype.yearofweek +description: > + In the ISO 8601 week calendar, calendar week number 1 of a calendar year is + the week including the first Thursday of that year (based on the principle + that a week belongs to the same calendar year as the majority of its calendar + days). Because of this, some calendar days of the first calendar week of a + calendar year may be part of the preceding date calendar year, and some + calendar days of the last calendar week of a calendar year may be part of + the next calendar year. +features: [Temporal] +---*/ + +// + +let calendar = new Temporal.Calendar("gregory"); +const date = new Temporal.PlainDate(2021, 1, 1, calendar); + +assert.sameValue(date.yearOfWeek, 2021); + +calendar = new Temporal.Calendar("iso8601"); +const isodate = new Temporal.PlainDate(2021, 1, 1, calendar); + +assert.sameValue(isodate.yearOfWeek, 2020); diff --git a/test/intl402/Temporal/PlainDate/prototype/yearOfWeek/non-iso-week-of-year.js b/test/intl402/Temporal/PlainDate/prototype/yearOfWeek/non-iso-week-of-year.js new file mode 100644 index 00000000000..e378c0884c4 --- /dev/null +++ b/test/intl402/Temporal/PlainDate/prototype/yearOfWeek/non-iso-week-of-year.js @@ -0,0 +1,22 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.plaindate.prototype.yearofweek +description: > + Temporal.PlainDate.prototype.yearOfWeek returns undefined for all + non-ISO calendars without a well-defined week numbering system. +features: [Temporal] +---*/ + +// Gregorian calendar has a well defined week-numbering system. + +let calendar = new Temporal.Calendar("gregory"); +const date = new Temporal.PlainDate(2024, 1, 1, calendar); + +assert.sameValue(date.yearOfWeek, 2024); + +calendar = new Temporal.Calendar("hebrew"); +const nonisodate = new Temporal.PlainDate(2024, 1, 1, calendar); + +assert.sameValue(nonisodate.yearOfWeek, undefined); diff --git a/test/intl402/Temporal/PlainDateTime/prototype/weekOfYear/gregory-iso-weekofyear.js b/test/intl402/Temporal/PlainDateTime/prototype/weekOfYear/gregory-iso-weekofyear.js new file mode 100644 index 00000000000..6f79fd1c117 --- /dev/null +++ b/test/intl402/Temporal/PlainDateTime/prototype/weekOfYear/gregory-iso-weekofyear.js @@ -0,0 +1,27 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.plaindatetime.prototype.weekofyear +description: > + In the ISO 8601 week calendar, calendar week number 1 of a calendar year is + the week including the first Thursday of that year (based on the principle + that a week belongs to the same calendar year as the majority of its calendar + days). Because of this, some calendar days of the first calendar week of a + calendar year may be part of the preceding date calendar year, and some + calendar days of the last calendar week of a calendar year may be part of + the next calendar year. +features: [Temporal] +---*/ + +// + +let calendar = new Temporal.Calendar("gregory"); +const date = new Temporal.PlainDateTime(2021, 1, 1, 12, 34, 56, 987, 654, 321, calendar); + +assert.sameValue(date.weekOfYear, 1); + +calendar = new Temporal.Calendar("iso8601"); +const isodate = new Temporal.PlainDateTime(2021, 1, 1, 12, 34, 56, 987, 654, 321, calendar); + +assert.sameValue(isodate.weekOfYear, 53); diff --git a/test/intl402/Temporal/PlainDateTime/prototype/weekOfYear/non-iso-week-of-year.js b/test/intl402/Temporal/PlainDateTime/prototype/weekOfYear/non-iso-week-of-year.js new file mode 100644 index 00000000000..1eb4e566bb6 --- /dev/null +++ b/test/intl402/Temporal/PlainDateTime/prototype/weekOfYear/non-iso-week-of-year.js @@ -0,0 +1,22 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.plaindatetime.prototype.weekofyear +description: > + Temporal.PlainDateTime.prototype.weekOfYear returns undefined for all + non-ISO calendars without a well-defined week numbering system. +features: [Temporal] +---*/ + +// Gregorian calendar has a well defined week-numbering system. + +let calendar = new Temporal.Calendar("gregory"); +const date = new Temporal.PlainDateTime(2024, 1, 1, 12, 34, 56, 987, 654, 321, calendar); + +assert.sameValue(date.weekOfYear, 1); + +calendar = new Temporal.Calendar("hebrew"); +const nonisodate = new Temporal.PlainDateTime(2024, 1, 1, 12, 34, 56, 987, 654, 321, calendar); + +assert.sameValue(nonisodate.weekOfYear, undefined); diff --git a/test/intl402/Temporal/PlainDateTime/prototype/yearOfWeek/gregory-iso-weekofyear.js b/test/intl402/Temporal/PlainDateTime/prototype/yearOfWeek/gregory-iso-weekofyear.js new file mode 100644 index 00000000000..63bd715a1b2 --- /dev/null +++ b/test/intl402/Temporal/PlainDateTime/prototype/yearOfWeek/gregory-iso-weekofyear.js @@ -0,0 +1,27 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.plaindatetime.prototype.yearofweek +description: > + In the ISO 8601 week calendar, calendar week number 1 of a calendar year is + the week including the first Thursday of that year (based on the principle + that a week belongs to the same calendar year as the majority of its calendar + days). Because of this, some calendar days of the first calendar week of a + calendar year may be part of the preceding date calendar year, and some + calendar days of the last calendar week of a calendar year may be part of + the next calendar year. +features: [Temporal] +---*/ + +// + +let calendar = new Temporal.Calendar("gregory"); +const date = new Temporal.PlainDateTime(2021, 1, 1, 12, 34, 56, 987, 654, 321, calendar); + +assert.sameValue(date.yearOfWeek, 2021); + +calendar = new Temporal.Calendar("iso8601"); +const isodate = new Temporal.PlainDateTime(2021, 1, 1, 12, 34, 56, 987, 654, 321, calendar); + +assert.sameValue(isodate.yearOfWeek, 2020); diff --git a/test/intl402/Temporal/PlainDateTime/prototype/yearOfWeek/non-iso-week-of-year.js b/test/intl402/Temporal/PlainDateTime/prototype/yearOfWeek/non-iso-week-of-year.js new file mode 100644 index 00000000000..35c1b13f18d --- /dev/null +++ b/test/intl402/Temporal/PlainDateTime/prototype/yearOfWeek/non-iso-week-of-year.js @@ -0,0 +1,22 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.plaindatetime.prototype.yearofweek +description: > + Temporal.PlainDateTime.prototype.yearOfWeek returns undefined for all + non-ISO calendars without a well-defined week numbering system. +features: [Temporal] +---*/ + +// Gregorian calendar has a well defined week-numbering system. + +let calendar = new Temporal.Calendar("gregory"); +const date = new Temporal.PlainDateTime(2024, 1, 1, 12, 34, 56, 987, 654, 321, calendar); + +assert.sameValue(date.yearOfWeek, 2024); + +calendar = new Temporal.Calendar("hebrew"); +const nonisodate = new Temporal.PlainDateTime(2024, 1, 1, 12, 34, 56, 987, 654, 321, calendar); + +assert.sameValue(nonisodate.yearOfWeek, undefined); diff --git a/test/intl402/Temporal/ZonedDateTime/prototype/weekOfYear/gregory-iso-weekofyear.js b/test/intl402/Temporal/ZonedDateTime/prototype/weekOfYear/gregory-iso-weekofyear.js new file mode 100644 index 00000000000..c02e49a0b4d --- /dev/null +++ b/test/intl402/Temporal/ZonedDateTime/prototype/weekOfYear/gregory-iso-weekofyear.js @@ -0,0 +1,27 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.zoneddatetime.prototype.weekofyear +description: > + In the ISO 8601 week calendar, calendar week number 1 of a calendar year is + the week including the first Thursday of that year (based on the principle + that a week belongs to the same calendar year as the majority of its calendar + days). Because of this, some calendar days of the first calendar week of a + calendar year may be part of the preceding date calendar year, and some + calendar days of the last calendar week of a calendar year may be part of + the next calendar year. +features: [Temporal] +---*/ + +// + +let calendar = new Temporal.Calendar("gregory"); +const date = new Temporal.ZonedDateTime(1_609_504_496_987_654_321n, "UTC", calendar); + +assert.sameValue(date.weekOfYear, 1); + +calendar = new Temporal.Calendar("iso8601"); +const isodate = new Temporal.ZonedDateTime(1_609_504_496_987_654_321n, "UTC", calendar); + +assert.sameValue(isodate.weekOfYear, 53); diff --git a/test/intl402/Temporal/ZonedDateTime/prototype/weekOfYear/non-iso-week-of-year.js b/test/intl402/Temporal/ZonedDateTime/prototype/weekOfYear/non-iso-week-of-year.js new file mode 100644 index 00000000000..c5f23944169 --- /dev/null +++ b/test/intl402/Temporal/ZonedDateTime/prototype/weekOfYear/non-iso-week-of-year.js @@ -0,0 +1,24 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.zoneddatetime.prototype.weekofyear +description: > + Temporal.ZonedDateTime.prototype.weekOfYear returns undefined for all + non-ISO calendars without a well-defined week numbering system. +features: [Temporal] +---*/ + +// Gregorian calendar has a well defined week-numbering system. + +let calendar = new Temporal.Calendar("gregory"); + +// Epoch Nanoseconds for new Temporal.PlainDateTime(2024, 1, 1, 12, 34, 56, 987, 654, 321, calendar); +const date = new Temporal.ZonedDateTime(1_704_112_496_987_654_321n, "UTC", calendar); + +assert.sameValue(date.weekOfYear, 1); + +calendar = new Temporal.Calendar("hebrew"); +const nonisodate = new Temporal.ZonedDateTime(1_704_112_496_987_654_321n, "UTC", calendar); + +assert.sameValue(nonisodate.weekOfYear, undefined); diff --git a/test/intl402/Temporal/ZonedDateTime/prototype/yearOfWeek/gregory-iso-weekofyear.js b/test/intl402/Temporal/ZonedDateTime/prototype/yearOfWeek/gregory-iso-weekofyear.js new file mode 100644 index 00000000000..439a5173d11 --- /dev/null +++ b/test/intl402/Temporal/ZonedDateTime/prototype/yearOfWeek/gregory-iso-weekofyear.js @@ -0,0 +1,27 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.zoneddatetime.prototype.yearofweek +description: > + In the ISO 8601 week calendar, calendar week number 1 of a calendar year is + the week including the first Thursday of that year (based on the principle + that a week belongs to the same calendar year as the majority of its calendar + days). Because of this, some calendar days of the first calendar week of a + calendar year may be part of the preceding date calendar year, and some + calendar days of the last calendar week of a calendar year may be part of + the next calendar year. +features: [Temporal] +---*/ + +// + +let calendar = new Temporal.Calendar("gregory"); +const date = new Temporal.ZonedDateTime(1_609_504_496_987_654_321n, "UTC", calendar); + +assert.sameValue(date.yearOfWeek, 2021); + +calendar = new Temporal.Calendar("iso8601"); +const isodate = new Temporal.ZonedDateTime(1_609_504_496_987_654_321n, "UTC", calendar); + +assert.sameValue(isodate.yearOfWeek, 2020); diff --git a/test/intl402/Temporal/ZonedDateTime/prototype/yearOfWeek/non-iso-week-of-year.js b/test/intl402/Temporal/ZonedDateTime/prototype/yearOfWeek/non-iso-week-of-year.js new file mode 100644 index 00000000000..7e163fa529d --- /dev/null +++ b/test/intl402/Temporal/ZonedDateTime/prototype/yearOfWeek/non-iso-week-of-year.js @@ -0,0 +1,24 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.zoneddatetime.prototype.yearofweek +description: > + Temporal.ZonedDateTime.prototype.yearOfWeek returns undefined for all + non-ISO calendars without a well-defined week numbering system. +features: [Temporal] +---*/ + +// Gregorian calendar has a well defined week-numbering system. + +let calendar = new Temporal.Calendar("gregory"); + +// Epoch Nanoseconds for new Temporal.PlainDateTime(2024, 1, 1, 12, 34, 56, 987, 654, 321, calendar); +const date = new Temporal.ZonedDateTime(1_704_112_496_987_654_321n, "UTC", calendar); + +assert.sameValue(date.yearOfWeek, 2024); + +calendar = new Temporal.Calendar("hebrew"); +const nonisodate = new Temporal.ZonedDateTime(1_704_112_496_987_654_321n, "UTC", calendar); + +assert.sameValue(nonisodate.yearOfWeek, undefined); diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-add-remove-i.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-add-remove-i.js new file mode 100644 index 00000000000..ec9451c9de8 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-add-remove-i.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the any code point in the source text matched by the first RegularExpressionFlags is also contained in the source text matched by the second RegularExpressionFlags. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?i-i:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-add-remove-m.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-add-remove-m.js new file mode 100644 index 00000000000..cd21baa13c0 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-add-remove-m.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the any code point in the source text matched by the first RegularExpressionFlags is also contained in the source text matched by the second RegularExpressionFlags. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?m-m:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-add-remove-multi-duplicate.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-add-remove-multi-duplicate.js new file mode 100644 index 00000000000..1380146f052 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-add-remove-multi-duplicate.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the any code point in the source text matched by the first RegularExpressionFlags is also contained in the source text matched by the second RegularExpressionFlags. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?ims-m:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-add-remove-s-escape.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-add-remove-s-escape.js new file mode 100644 index 00000000000..de7a50ec732 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-add-remove-s-escape.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the any code point in the source text matched by the first RegularExpressionFlags is also contained in the source text matched by the second RegularExpressionFlags. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?\u{0073}-s:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-add-remove-s.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-add-remove-s.js new file mode 100644 index 00000000000..b4ad3a4382f --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-add-remove-s.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the any code point in the source text matched by the first RegularExpressionFlags is also contained in the source text matched by the second RegularExpressionFlags. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?s-s:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-both-empty.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-both-empty.js new file mode 100644 index 00000000000..7beb7d9a042 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-both-empty.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by the first RegularExpressionFlags and the source text matched by the second RegularExpressionFlags are both empty. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?-:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-code-point-repeat-i-1.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-code-point-repeat-i-1.js new file mode 100644 index 00000000000..c5dd23326c6 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-code-point-repeat-i-1.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?-ii:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-code-point-repeat-i-2.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-code-point-repeat-i-2.js new file mode 100644 index 00000000000..3779db063b7 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-code-point-repeat-i-2.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?-imsi:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-no-colon-1.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-no-colon-1.js new file mode 100644 index 00000000000..a506febbb11 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-no-colon-1.js @@ -0,0 +1,18 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Regular expression modifiers should not parse without the colon. +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... +---*/ + +$DONOTEVALUATE(); + +/(?ms-i)/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-no-colon-2.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-no-colon-2.js new file mode 100644 index 00000000000..890fb235a8c --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-no-colon-2.js @@ -0,0 +1,18 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Regular expression modifiers should not parse without the colon. +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... +---*/ + +$DONOTEVALUATE(); + +/(?-s)/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-no-colon-3.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-no-colon-3.js new file mode 100644 index 00000000000..21cac0fdc4a --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-no-colon-3.js @@ -0,0 +1,18 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Regular expression modifiers should not parse without the colon. +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... +---*/ + +$DONOTEVALUATE(); + +/(?i-)/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-arbitrary.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-arbitrary.js new file mode 100644 index 00000000000..74d91a7d434 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-arbitrary.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?-1:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-combining-i.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-combining-i.js new file mode 100644 index 00000000000..15ea531f65b --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-combining-i.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?-iͥ:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-combining-m.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-combining-m.js new file mode 100644 index 00000000000..5fd580b277e --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-combining-m.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?-mͫ:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-combining-s.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-combining-s.js new file mode 100644 index 00000000000..cb2743e0956 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-combining-s.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?-s̀:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-d.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-d.js new file mode 100644 index 00000000000..475ddfef8d5 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-d.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?-d:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-g.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-g.js new file mode 100644 index 00000000000..899a2c23a93 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-g.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?-g:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-non-display-1.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-non-display-1.js new file mode 100644 index 00000000000..bcf7d7ddd9b Binary files /dev/null and b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-non-display-1.js differ diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-non-display-2.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-non-display-2.js new file mode 100644 index 00000000000..33e73f9f0ee --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-non-display-2.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?-s‎:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-non-flag.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-non-flag.js new file mode 100644 index 00000000000..c0ca48145a1 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-non-flag.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?-Q:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-u.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-u.js new file mode 100644 index 00000000000..48827116fd9 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-u.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?-u:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-uppercase-I.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-uppercase-I.js new file mode 100644 index 00000000000..768777f6a1c --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-uppercase-I.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?-I:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-y.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-y.js new file mode 100644 index 00000000000..04e47aab628 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-y.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?-y:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-zwj.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-zwj.js new file mode 100644 index 00000000000..b16e6367bb7 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-zwj.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?-s‍:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-zwnbsp.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-zwnbsp.js new file mode 100644 index 00000000000..c5ed9f15c71 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-zwnbsp.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?-s:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-zwnj.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-zwnj.js new file mode 100644 index 00000000000..068894fd9b8 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-other-code-point-zwnj.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?-s‌:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-add-remove-i.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-add-remove-i.js new file mode 100644 index 00000000000..ec9451c9de8 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-add-remove-i.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the any code point in the source text matched by the first RegularExpressionFlags is also contained in the source text matched by the second RegularExpressionFlags. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?i-i:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-add-remove-m.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-add-remove-m.js new file mode 100644 index 00000000000..cd21baa13c0 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-add-remove-m.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the any code point in the source text matched by the first RegularExpressionFlags is also contained in the source text matched by the second RegularExpressionFlags. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?m-m:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-add-remove-multi-duplicate.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-add-remove-multi-duplicate.js new file mode 100644 index 00000000000..2f129ed8694 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-add-remove-multi-duplicate.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the any code point in the source text matched by the first RegularExpressionFlags is also contained in the source text matched by the second RegularExpressionFlags. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?m-ims:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-add-remove-s-escape.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-add-remove-s-escape.js new file mode 100644 index 00000000000..baf393b70db --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-add-remove-s-escape.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the any code point in the source text matched by the first RegularExpressionFlags is also contained in the source text matched by the second RegularExpressionFlags. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?s-\u{0073}:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-add-remove-s.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-add-remove-s.js new file mode 100644 index 00000000000..b4ad3a4382f --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-add-remove-s.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the any code point in the source text matched by the first RegularExpressionFlags is also contained in the source text matched by the second RegularExpressionFlags. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?s-s:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-code-point-repeat-i-1.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-code-point-repeat-i-1.js new file mode 100644 index 00000000000..87ed3784054 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-code-point-repeat-i-1.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?ii-:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-code-point-repeat-i-2.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-code-point-repeat-i-2.js new file mode 100644 index 00000000000..5677224bb4a --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-code-point-repeat-i-2.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?imsi-:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-arbitrary.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-arbitrary.js new file mode 100644 index 00000000000..d36e8c9cccf --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-arbitrary.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?1-:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-combining-i.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-combining-i.js new file mode 100644 index 00000000000..6107b05c1bc --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-combining-i.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?iͥ-:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-combining-m.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-combining-m.js new file mode 100644 index 00000000000..34f0e20d9c4 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-combining-m.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?mͫ-:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-combining-s.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-combining-s.js new file mode 100644 index 00000000000..00b69cdbbc2 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-combining-s.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?s̀-:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-d.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-d.js new file mode 100644 index 00000000000..5b40223d6dc --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-d.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?d-:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-g.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-g.js new file mode 100644 index 00000000000..59588f6ad8d --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-g.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?g-:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-non-display-1.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-non-display-1.js new file mode 100644 index 00000000000..be6937a6772 Binary files /dev/null and b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-non-display-1.js differ diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-non-display-2.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-non-display-2.js new file mode 100644 index 00000000000..2c7e79681bf --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-non-display-2.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?s‎-:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-non-flag.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-non-flag.js new file mode 100644 index 00000000000..6a155c358e1 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-non-flag.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?Q-:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-u.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-u.js new file mode 100644 index 00000000000..7547a55e9dd --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-u.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?u-:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-uppercase-I.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-uppercase-I.js new file mode 100644 index 00000000000..43a9748d6c4 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-uppercase-I.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?I-:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-y.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-y.js new file mode 100644 index 00000000000..717e5d3bb5d --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-y.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?y-:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-zwj.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-zwj.js new file mode 100644 index 00000000000..c6ea84d5a76 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-zwj.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?s‍-:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-zwnbsp.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-zwnbsp.js new file mode 100644 index 00000000000..3e24656e13a --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-zwnbsp.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?s-:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-zwnj.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-zwnj.js new file mode 100644 index 00000000000..d6bf3a8dd8b --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-other-code-point-zwnj.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?s‌-:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-should-not-case-fold-i.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-should-not-case-fold-i.js new file mode 100644 index 00000000000..2dfbef0f315 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-should-not-case-fold-i.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case folded to "i", "m", or "s" (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?I-:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-should-not-case-fold-m.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-should-not-case-fold-m.js new file mode 100644 index 00000000000..22f58a54b00 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-should-not-case-fold-m.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case folded to "i", "m", or "s" (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?M-:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-should-not-case-fold-s.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-should-not-case-fold-s.js new file mode 100644 index 00000000000..a5a41be57b1 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-should-not-case-fold-s.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case folded to "i", "m", or "s" (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?S-:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-should-not-unicode-case-fold-i.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-should-not-unicode-case-fold-i.js new file mode 100644 index 00000000000..9bfa2e26bb5 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-should-not-unicode-case-fold-i.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case-folded to "i", "m", or "s" (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?İ-:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-should-not-unicode-case-fold-s.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-should-not-unicode-case-fold-s.js new file mode 100644 index 00000000000..216d1a1d1eb --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-reverse-should-not-unicode-case-fold-s.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case-folded to "i", "m", or "s" (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?ſ-:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-should-not-case-fold-i.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-should-not-case-fold-i.js new file mode 100644 index 00000000000..70861ad8c0a --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-should-not-case-fold-i.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case folded to "i", "m", or "s" (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?-I:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-should-not-case-fold-m.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-should-not-case-fold-m.js new file mode 100644 index 00000000000..4a39c339462 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-should-not-case-fold-m.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case folded to "i", "m", or "s" (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?-M:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-should-not-case-fold-s.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-should-not-case-fold-s.js new file mode 100644 index 00000000000..1616aa96383 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-should-not-case-fold-s.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case folded to "i", "m", or "s" (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?-S:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-should-not-unicode-case-fold-i.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-should-not-unicode-case-fold-i.js new file mode 100644 index 00000000000..75bcec6c1c4 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-should-not-unicode-case-fold-i.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case-folded to "i", "m", or "s" (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?-İ:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-arithmetic-modifiers-should-not-unicode-case-fold-s.js b/test/language/literals/regexp/early-err-arithmetic-modifiers-should-not-unicode-case-fold-s.js new file mode 100644 index 00000000000..eb60a15f6a7 --- /dev/null +++ b/test/language/literals/regexp/early-err-arithmetic-modifiers-should-not-unicode-case-fold-s.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case-folded to "i", "m", or "s" (arithmetic regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + ... + +---*/ + +$DONOTEVALUATE(); + +/(?-ſ:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-modifiers-code-point-repeat-i-1.js b/test/language/literals/regexp/early-err-modifiers-code-point-repeat-i-1.js new file mode 100644 index 00000000000..055cebc72a9 --- /dev/null +++ b/test/language/literals/regexp/early-err-modifiers-code-point-repeat-i-1.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +$DONOTEVALUATE(); + +/(?ii:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-modifiers-code-point-repeat-i-2.js b/test/language/literals/regexp/early-err-modifiers-code-point-repeat-i-2.js new file mode 100644 index 00000000000..b84dc7bfc33 --- /dev/null +++ b/test/language/literals/regexp/early-err-modifiers-code-point-repeat-i-2.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +$DONOTEVALUATE(); + +/(?imsi:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-modifiers-other-code-point-arbitrary.js b/test/language/literals/regexp/early-err-modifiers-other-code-point-arbitrary.js new file mode 100644 index 00000000000..8eda84761f5 --- /dev/null +++ b/test/language/literals/regexp/early-err-modifiers-other-code-point-arbitrary.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +$DONOTEVALUATE(); + +/(?1:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-modifiers-other-code-point-combining-i.js b/test/language/literals/regexp/early-err-modifiers-other-code-point-combining-i.js new file mode 100644 index 00000000000..4cf9b166456 --- /dev/null +++ b/test/language/literals/regexp/early-err-modifiers-other-code-point-combining-i.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +$DONOTEVALUATE(); + +/(?iͥ:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-modifiers-other-code-point-combining-m.js b/test/language/literals/regexp/early-err-modifiers-other-code-point-combining-m.js new file mode 100644 index 00000000000..ca5f47647de --- /dev/null +++ b/test/language/literals/regexp/early-err-modifiers-other-code-point-combining-m.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +$DONOTEVALUATE(); + +/(?mͫ:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-modifiers-other-code-point-combining-s.js b/test/language/literals/regexp/early-err-modifiers-other-code-point-combining-s.js new file mode 100644 index 00000000000..edd6ba0b068 --- /dev/null +++ b/test/language/literals/regexp/early-err-modifiers-other-code-point-combining-s.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +$DONOTEVALUATE(); + +/(?s̀:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-modifiers-other-code-point-d.js b/test/language/literals/regexp/early-err-modifiers-other-code-point-d.js new file mode 100644 index 00000000000..0e4994a3dbd --- /dev/null +++ b/test/language/literals/regexp/early-err-modifiers-other-code-point-d.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +$DONOTEVALUATE(); + +/(?d:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-modifiers-other-code-point-g.js b/test/language/literals/regexp/early-err-modifiers-other-code-point-g.js new file mode 100644 index 00000000000..2139eef7448 --- /dev/null +++ b/test/language/literals/regexp/early-err-modifiers-other-code-point-g.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +$DONOTEVALUATE(); + +/(?g:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-modifiers-other-code-point-non-display-1.js b/test/language/literals/regexp/early-err-modifiers-other-code-point-non-display-1.js new file mode 100644 index 00000000000..6879864eb79 Binary files /dev/null and b/test/language/literals/regexp/early-err-modifiers-other-code-point-non-display-1.js differ diff --git a/test/language/literals/regexp/early-err-modifiers-other-code-point-non-display-2.js b/test/language/literals/regexp/early-err-modifiers-other-code-point-non-display-2.js new file mode 100644 index 00000000000..17f1d722861 --- /dev/null +++ b/test/language/literals/regexp/early-err-modifiers-other-code-point-non-display-2.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +$DONOTEVALUATE(); + +/(?s‎:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-modifiers-other-code-point-non-flag.js b/test/language/literals/regexp/early-err-modifiers-other-code-point-non-flag.js new file mode 100644 index 00000000000..75d28616f9e --- /dev/null +++ b/test/language/literals/regexp/early-err-modifiers-other-code-point-non-flag.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +$DONOTEVALUATE(); + +/(?Q:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-modifiers-other-code-point-u.js b/test/language/literals/regexp/early-err-modifiers-other-code-point-u.js new file mode 100644 index 00000000000..f207d8cbf79 --- /dev/null +++ b/test/language/literals/regexp/early-err-modifiers-other-code-point-u.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +$DONOTEVALUATE(); + +/(?u:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-modifiers-other-code-point-uppercase-I.js b/test/language/literals/regexp/early-err-modifiers-other-code-point-uppercase-I.js new file mode 100644 index 00000000000..73474568d97 --- /dev/null +++ b/test/language/literals/regexp/early-err-modifiers-other-code-point-uppercase-I.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +$DONOTEVALUATE(); + +/(?I:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-modifiers-other-code-point-y.js b/test/language/literals/regexp/early-err-modifiers-other-code-point-y.js new file mode 100644 index 00000000000..d43c8c5a6d3 --- /dev/null +++ b/test/language/literals/regexp/early-err-modifiers-other-code-point-y.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +$DONOTEVALUATE(); + +/(?y:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-modifiers-other-code-point-zwj.js b/test/language/literals/regexp/early-err-modifiers-other-code-point-zwj.js new file mode 100644 index 00000000000..085d7887e6f --- /dev/null +++ b/test/language/literals/regexp/early-err-modifiers-other-code-point-zwj.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +$DONOTEVALUATE(); + +/(?s‍:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-modifiers-other-code-point-zwnbsp.js b/test/language/literals/regexp/early-err-modifiers-other-code-point-zwnbsp.js new file mode 100644 index 00000000000..3d9b27c379b --- /dev/null +++ b/test/language/literals/regexp/early-err-modifiers-other-code-point-zwnbsp.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +$DONOTEVALUATE(); + +/(?s:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-modifiers-other-code-point-zwnj.js b/test/language/literals/regexp/early-err-modifiers-other-code-point-zwnj.js new file mode 100644 index 00000000000..529f8718b04 --- /dev/null +++ b/test/language/literals/regexp/early-err-modifiers-other-code-point-zwnj.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code point other than i, m, or s, or if it contains the same code point more than once. (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +$DONOTEVALUATE(); + +/(?s‌:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-modifiers-should-not-case-fold-i.js b/test/language/literals/regexp/early-err-modifiers-should-not-case-fold-i.js new file mode 100644 index 00000000000..1b281ff9c48 --- /dev/null +++ b/test/language/literals/regexp/early-err-modifiers-should-not-case-fold-i.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case folded to "i", "m", or "s" (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +$DONOTEVALUATE(); + +/(?I:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-modifiers-should-not-case-fold-m.js b/test/language/literals/regexp/early-err-modifiers-should-not-case-fold-m.js new file mode 100644 index 00000000000..ce1be053079 --- /dev/null +++ b/test/language/literals/regexp/early-err-modifiers-should-not-case-fold-m.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case folded to "i", "m", or "s" (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +$DONOTEVALUATE(); + +/(?M:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-modifiers-should-not-case-fold-s.js b/test/language/literals/regexp/early-err-modifiers-should-not-case-fold-s.js new file mode 100644 index 00000000000..89e471ee53c --- /dev/null +++ b/test/language/literals/regexp/early-err-modifiers-should-not-case-fold-s.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case folded to "i", "m", or "s" (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +$DONOTEVALUATE(); + +/(?S:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-modifiers-should-not-unicode-case-fold-i.js b/test/language/literals/regexp/early-err-modifiers-should-not-unicode-case-fold-i.js new file mode 100644 index 00000000000..d81c10e574f --- /dev/null +++ b/test/language/literals/regexp/early-err-modifiers-should-not-unicode-case-fold-i.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case-folded to "i", "m", or "s" (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +$DONOTEVALUATE(); + +/(?İ:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-modifiers-should-not-unicode-case-fold-s.js b/test/language/literals/regexp/early-err-modifiers-should-not-unicode-case-fold-s.js new file mode 100644 index 00000000000..8e6823feb21 --- /dev/null +++ b/test/language/literals/regexp/early-err-modifiers-should-not-unicode-case-fold-s.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Code points other than "i", "m", "s" should not be case-folded to "i", "m", or "s" (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +$DONOTEVALUATE(); + +/(?ſ:a)//*{ global-modifiers }*/; diff --git a/test/language/literals/regexp/early-err-modifiers-should-not-unicode-escape-i.js b/test/language/literals/regexp/early-err-modifiers-should-not-unicode-escape-i.js new file mode 100644 index 00000000000..10e1883996f --- /dev/null +++ b/test/language/literals/regexp/early-err-modifiers-should-not-unicode-escape-i.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Source text cannot use unicode escape sequences to express code points "i", "m", "s" (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +$DONOTEVALUATE(); + +/(?\u0069:a)/u /* i */; diff --git a/test/language/literals/regexp/early-err-modifiers-should-not-unicode-escape-m.js b/test/language/literals/regexp/early-err-modifiers-should-not-unicode-escape-m.js new file mode 100644 index 00000000000..4916997fbfa --- /dev/null +++ b/test/language/literals/regexp/early-err-modifiers-should-not-unicode-escape-m.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Source text cannot use unicode escape sequences to express code points "i", "m", "s" (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +$DONOTEVALUATE(); + +/(?\u006D:a)/u /* m */; diff --git a/test/language/literals/regexp/early-err-modifiers-should-not-unicode-escape-s.js b/test/language/literals/regexp/early-err-modifiers-should-not-unicode-escape-s.js new file mode 100644 index 00000000000..4e91d5bb51b --- /dev/null +++ b/test/language/literals/regexp/early-err-modifiers-should-not-unicode-escape-s.js @@ -0,0 +1,19 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Source text cannot use unicode escape sequences to express code points "i", "m", "s" (regular expression flags) +esid: sec-patterns-static-semantics-early-errors +features: [regexp-modifiers] +negative: + phase: parse + type: SyntaxError +info: | + Atom :: ( ? RegularExpresisonFlags : Disjunction ) + It is a Syntax Error if the source text matched by RegularExpressionFlags contains any code points other than "i", "m", "s", or if it contains the same code point more than once. + +---*/ + +$DONOTEVALUATE(); + +/(?\u0073:a)/u /* s */; diff --git a/test/language/module-code/top-level-await/async-module-does-not-block-sibling-modules.js b/test/language/module-code/top-level-await/async-module-does-not-block-sibling-modules.js new file mode 100644 index 00000000000..709dc6fd549 --- /dev/null +++ b/test/language/module-code/top-level-await/async-module-does-not-block-sibling-modules.js @@ -0,0 +1,16 @@ +// Copyright (C) 2023 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-innermoduleevaluation +description: > + While an asynchronous module is waiting for a promise resolution, + sibling modules in the modules graph must be evaluated. +flags: [module, async] +features: [top-level-await] +---*/ + +import "./async-module-tla_FIXTURE.js"; +import { check } from "./async-module-sync_FIXTURE.js"; +assert.sameValue(check, false); +$DONE(); diff --git a/test/language/module-code/top-level-await/async-module-sync_FIXTURE.js b/test/language/module-code/top-level-await/async-module-sync_FIXTURE.js new file mode 100644 index 00000000000..67f815b3da4 --- /dev/null +++ b/test/language/module-code/top-level-await/async-module-sync_FIXTURE.js @@ -0,0 +1,4 @@ +// Copyright (C) 2023 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +export const { check } = globalThis; diff --git a/test/language/module-code/top-level-await/async-module-tla_FIXTURE.js b/test/language/module-code/top-level-await/async-module-tla_FIXTURE.js new file mode 100644 index 00000000000..309281782b3 --- /dev/null +++ b/test/language/module-code/top-level-await/async-module-tla_FIXTURE.js @@ -0,0 +1,6 @@ +// Copyright (C) 2023 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +globalThis.check = false; +await 0; +globalThis.check = true; diff --git a/test/staging/built-ins/RegExp/named-groups/duplicate-named-groups-replace.js b/test/staging/built-ins/RegExp/named-groups/duplicate-named-groups-replace.js new file mode 100644 index 00000000000..cf4d9e5368f --- /dev/null +++ b/test/staging/built-ins/RegExp/named-groups/duplicate-named-groups-replace.js @@ -0,0 +1,28 @@ +// Copyright (C) 2024 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Test replace function with duplicate names in alteration. +features: [regexp-duplicate-named-groups] +includes: [compareArray.js] +---*/ + +assert.compareArray( + '2xyy', 'xxyy'.replace(/(?:(?:(?x)|(?y))\k)/, '2$')); +assert.compareArray( + 'x2zyyxxy', + 'xzzyyxxy'.replace( + /(?:(?:(?x)|(?y)|(a)|(?b)|(?z))\k)/, '2$')); +assert.compareArray( + '2x(x,)yy', 'xxyy'.replace(/(?:(?:(?x)|(?y))\k)/, '2$($1,$2)')); +assert.compareArray( + 'x2z(,,,,z)yyxxy', + 'xzzyyxxy'.replace( + /(?:(?:(?x)|(?y)|(a)|(?b)|(?z))\k)/, + '2$($1,$2,$3,$4,$5)')); +assert.compareArray( + '2x2y', 'xxyy'.replace(/(?:(?:(?x)|(?y))\k)/g, '2$')); +assert.compareArray( + 'x2z2y2xy', + 'xzzyyxxy'.replace( + /(?:(?:(?x)|(?y)|(a)|(?b)|(?z))\k)/g, '2$')); diff --git a/test/staging/built-ins/RegExp/named-groups/duplicate-named-groups-search.js b/test/staging/built-ins/RegExp/named-groups/duplicate-named-groups-search.js new file mode 100644 index 00000000000..3796b5bc41c --- /dev/null +++ b/test/staging/built-ins/RegExp/named-groups/duplicate-named-groups-search.js @@ -0,0 +1,13 @@ +// Copyright (C) 2024 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Test search function with duplicate names in alteration. +features: [regexp-duplicate-named-groups] +includes: [compareArray.js] +---*/ + +assert.compareArray(3, 'abcxyz'.search(/(?x)|(?y)/)); +assert.compareArray(3, 'abcxyz'.search(/(?y)|(?x)/)); +assert.compareArray(1, 'aybcxyz'.search(/(?x)|(?y)/)); +assert.compareArray(1, 'aybcxyz'.search(/(?y)|(?x)/)); diff --git a/test/staging/built-ins/RegExp/named-groups/duplicate-named-groups.js b/test/staging/built-ins/RegExp/named-groups/duplicate-named-groups.js new file mode 100644 index 00000000000..96aeb1a4d33 --- /dev/null +++ b/test/staging/built-ins/RegExp/named-groups/duplicate-named-groups.js @@ -0,0 +1,16 @@ +// Copyright (C) 2024 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Test different functions with duplicate names in alteration. +features: [regexp-duplicate-named-groups] +includes: [compareArray.js] +---*/ + +assert.compareArray( + ['xxyy', undefined, 'y'], /(?:(?:(?x)|(?y))\k){2}/.exec('xxyy')); +assert.compareArray( + ['zzyyxx', 'x', undefined, undefined, undefined, undefined], + /(?:(?:(?x)|(?y)|(a)|(?b)|(?z))\k){3}/.exec('xzzyyxxy')); +assert.compareArray( + ['xxyy', undefined, 'y'], 'xxyy'.match(/(?:(?:(?x)|(?y))\k){2}/));