diff --git a/test/language/arguments-object/10.6-6-2.js b/test/language/arguments-object/10.6-6-2.js index 977aca9dc8..e3a7e4ed70 100644 --- a/test/language/arguments-object/10.6-6-2.js +++ b/test/language/arguments-object/10.6-6-2.js @@ -4,13 +4,14 @@ /*--- es5id: 10.6-6-2 description: "'length' property of arguments object has correct attributes" +includes: [propertyHelper.js] ---*/ function testcase() { - var desc = Object.getOwnPropertyDescriptor(arguments,"length"); - - assert.sameValue(desc.configurable, true, 'desc.configurable'); - assert.sameValue(desc.enumerable, false, 'desc.enumerable'); - assert.sameValue(desc.writable, true, 'desc.writable'); + verifyProperty(arguments, "length", { + writable: true, + enumerable: false, + configurable: true, + }); } testcase(); diff --git a/test/language/arguments-object/mapped/Symbol.iterator.js b/test/language/arguments-object/mapped/Symbol.iterator.js index daee2779d2..ceeeac5ee8 100644 --- a/test/language/arguments-object/mapped/Symbol.iterator.js +++ b/test/language/arguments-object/mapped/Symbol.iterator.js @@ -11,11 +11,10 @@ features: [Symbol.iterator] ---*/ (function() { - var descriptor = Object.getOwnPropertyDescriptor(arguments, Symbol.iterator); - - assert.sameValue(arguments[Symbol.iterator], [][Symbol.iterator]); - - verifyNotEnumerable(Array.prototype, Symbol.iterator); - verifyWritable(Array.prototype, Symbol.iterator); - verifyConfigurable(Array.prototype, Symbol.iterator); + verifyProperty(arguments, Symbol.iterator, { + value: [][Symbol.iterator], + writable: true, + enumerable: false, + configurable: true, + }); }()); diff --git a/test/language/arguments-object/mapped/nonconfigurable-descriptors-basic.js b/test/language/arguments-object/mapped/nonconfigurable-descriptors-basic.js index 76afb835e9..72cf142d27 100644 --- a/test/language/arguments-object/mapped/nonconfigurable-descriptors-basic.js +++ b/test/language/arguments-object/mapped/nonconfigurable-descriptors-basic.js @@ -13,10 +13,11 @@ includes: [propertyHelper.js] function argumentsNonConfigurable(a) { Object.defineProperty(arguments, "0", {configurable: false}); - let propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 1); - verifyEnumerable(arguments, "0"); - verifyWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + value: 1, + writable: true, + enumerable: true, + configurable: false, + }); } argumentsNonConfigurable(1); diff --git a/test/language/arguments-object/mapped/nonconfigurable-descriptors-set-value-by-arguments.js b/test/language/arguments-object/mapped/nonconfigurable-descriptors-set-value-by-arguments.js index 3324203233..f9569ed290 100644 --- a/test/language/arguments-object/mapped/nonconfigurable-descriptors-set-value-by-arguments.js +++ b/test/language/arguments-object/mapped/nonconfigurable-descriptors-set-value-by-arguments.js @@ -16,12 +16,14 @@ function argumentsAndSetByIndex(a) { arguments[0] = 2; - let propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 2); assert.sameValue(a, 2); - verifyEnumerable(arguments, "0"); - verifyWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + + verifyProperty(arguments, "0", { + value: 2, + writable: true, + enumerable: true, + configurable: false, + }); } argumentsAndSetByIndex(1); diff --git a/test/language/arguments-object/mapped/nonconfigurable-descriptors-set-value-with-define-property.js b/test/language/arguments-object/mapped/nonconfigurable-descriptors-set-value-with-define-property.js index b3577d3bc6..3e1b3477db 100644 --- a/test/language/arguments-object/mapped/nonconfigurable-descriptors-set-value-with-define-property.js +++ b/test/language/arguments-object/mapped/nonconfigurable-descriptors-set-value-with-define-property.js @@ -16,12 +16,14 @@ function setArgumentValueWithDefineOwnProperty(a) { Object.defineProperty(arguments, "0", {value: 2}); - let propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 2); assert.sameValue(a, 2); - verifyEnumerable(arguments, "0"); - verifyWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + + verifyProperty(arguments, "0", { + value: 2, + writable: true, + enumerable: true, + configurable: false, + }); } setArgumentValueWithDefineOwnProperty(1); diff --git a/test/language/arguments-object/mapped/nonconfigurable-descriptors-with-param-assign.js b/test/language/arguments-object/mapped/nonconfigurable-descriptors-with-param-assign.js index 6f6ce58ab1..22abfa22dc 100644 --- a/test/language/arguments-object/mapped/nonconfigurable-descriptors-with-param-assign.js +++ b/test/language/arguments-object/mapped/nonconfigurable-descriptors-with-param-assign.js @@ -15,11 +15,13 @@ function argumentsAndSetMutableBinding(a) { Object.defineProperty(arguments, "0", {configurable: false}); a = 2; - let propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 2); - verifyEnumerable(arguments, "0"); - verifyWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + + verifyProperty(arguments, "0", { + value: 2, + writable: true, + enumerable: true, + configurable: false, + }); } argumentsAndSetMutableBinding(1); diff --git a/test/language/arguments-object/mapped/nonconfigurable-nonenumerable-nonwritable-descriptors-basic.js b/test/language/arguments-object/mapped/nonconfigurable-nonenumerable-nonwritable-descriptors-basic.js index 506214e56e..994f932a1a 100644 --- a/test/language/arguments-object/mapped/nonconfigurable-nonenumerable-nonwritable-descriptors-basic.js +++ b/test/language/arguments-object/mapped/nonconfigurable-nonenumerable-nonwritable-descriptors-basic.js @@ -17,11 +17,12 @@ function fn(a) { // Postcondition: Arguments mapping is removed. a = 2; - let propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 1); - verifyNotEnumerable(arguments, "0"); - verifyNotWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + value: 1, + writable: false, + enumerable: false, + configurable: false, + }); } fn(1); diff --git a/test/language/arguments-object/mapped/nonconfigurable-nonenumerable-nonwritable-descriptors-set-by-arguments.js b/test/language/arguments-object/mapped/nonconfigurable-nonenumerable-nonwritable-descriptors-set-by-arguments.js index d167504b77..6abc34d80e 100644 --- a/test/language/arguments-object/mapped/nonconfigurable-nonenumerable-nonwritable-descriptors-set-by-arguments.js +++ b/test/language/arguments-object/mapped/nonconfigurable-nonenumerable-nonwritable-descriptors-set-by-arguments.js @@ -17,20 +17,24 @@ function fn(a) { arguments[0] = 2; Object.defineProperty(arguments, "0", {writable: false}); - let propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 2); assert.sameValue(a, 2); - verifyNotEnumerable(arguments, "0"); - verifyNotWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + + verifyProperty(arguments, "0", { + value: 2, + writable: false, + enumerable: false, + configurable: false, + }); // Postcondition: Arguments mapping is removed. a = 3; - propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 2); - verifyNotEnumerable(arguments, "0"); - verifyNotWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + + verifyProperty(arguments, "0", { + value: 2, + writable: false, + enumerable: false, + configurable: false, + }); } fn(1); diff --git a/test/language/arguments-object/mapped/nonconfigurable-nonenumerable-nonwritable-descriptors-set-by-param.js b/test/language/arguments-object/mapped/nonconfigurable-nonenumerable-nonwritable-descriptors-set-by-param.js index 28638c3061..b7f0340e55 100644 --- a/test/language/arguments-object/mapped/nonconfigurable-nonenumerable-nonwritable-descriptors-set-by-param.js +++ b/test/language/arguments-object/mapped/nonconfigurable-nonenumerable-nonwritable-descriptors-set-by-param.js @@ -18,19 +18,22 @@ function fn(a) { a = 2; Object.defineProperty(arguments, "0", {writable: false}); - let propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 2); - verifyNotEnumerable(arguments, "0"); - verifyNotWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + value: 2, + writable: false, + enumerable: false, + configurable: false, + }); // Postcondition: Arguments mapping is removed. a = 3; - propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 2); - verifyNotEnumerable(arguments, "0"); - verifyNotWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + + verifyProperty(arguments, "0", { + value: 2, + writable: false, + enumerable: false, + configurable: false, + }); } fn(1); diff --git a/test/language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-basic.js b/test/language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-basic.js index 40ad353b07..1c31cd0824 100644 --- a/test/language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-basic.js +++ b/test/language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-basic.js @@ -18,11 +18,12 @@ function fn(a) { // Postcondition: Arguments mapping is removed. a = 2; - let propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 1); - verifyEnumerable(arguments, "0"); - verifyNotWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + value: 1, + writable: false, + enumerable: true, + configurable: false, + }); } fn(1); diff --git a/test/language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-define-property-consecutive.js b/test/language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-define-property-consecutive.js index ee041fced0..bf295adc7a 100644 --- a/test/language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-define-property-consecutive.js +++ b/test/language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-define-property-consecutive.js @@ -16,19 +16,22 @@ function fn(a) { Object.defineProperty(arguments, "0", {configurable: false}); Object.defineProperty(arguments, "0", {writable: false}); - let propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 1); - verifyEnumerable(arguments, "0"); - verifyNotWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + value: 1, + writable: false, + enumerable: true, + configurable: false, + }); // Postcondition: Arguments mapping is removed. a = 2; - propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 1); - verifyEnumerable(arguments, "0"); - verifyNotWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + + verifyProperty(arguments, "0", { + value: 1, + writable: false, + enumerable: true, + configurable: false, + }); } fn(1); diff --git a/test/language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-set-by-arguments.js b/test/language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-set-by-arguments.js index 2a7dc9ba27..d3da25fb4e 100644 --- a/test/language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-set-by-arguments.js +++ b/test/language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-set-by-arguments.js @@ -18,20 +18,25 @@ function fn(a) { Object.defineProperty(arguments, "0", {configurable: false}); arguments[0] = 2; Object.defineProperty(arguments, "0", {writable: false}); - let propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 2); + assert.sameValue(a, 2) - verifyEnumerable(arguments, "0"); - verifyNotWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + + verifyProperty(arguments, "0", { + value: 2, + writable: false, + enumerable: true, + configurable: false, + }); // Postcondition: Arguments mapping is removed. a = 3; - propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 2); - verifyEnumerable(arguments, "0"); - verifyNotWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + + verifyProperty(arguments, "0", { + value: 2, + writable: false, + enumerable: true, + configurable: false, + }); } fn(1); diff --git a/test/language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-set-by-param.js b/test/language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-set-by-param.js index 808aaedb29..8d6a8bcb8e 100644 --- a/test/language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-set-by-param.js +++ b/test/language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-set-by-param.js @@ -18,19 +18,22 @@ function fn(a) { a = 2; Object.defineProperty(arguments, "0", {writable: false}); - let propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 2); - verifyEnumerable(arguments, "0"); - verifyNotWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + value: 2, + writable: false, + enumerable: true, + configurable: false, + }); // Postcondition: Arguments mapping is removed. a = 3; - propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 2); - verifyEnumerable(arguments, "0"); - verifyNotWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + + verifyProperty(arguments, "0", { + value: 2, + writable: false, + enumerable: true, + configurable: false, + }); } fn(1); diff --git a/test/language/arguments-object/mapped/nonwritable-nonconfigurable-descriptors-basic.js b/test/language/arguments-object/mapped/nonwritable-nonconfigurable-descriptors-basic.js index 298c44b504..6af358ad39 100644 --- a/test/language/arguments-object/mapped/nonwritable-nonconfigurable-descriptors-basic.js +++ b/test/language/arguments-object/mapped/nonwritable-nonconfigurable-descriptors-basic.js @@ -17,20 +17,24 @@ includes: [propertyHelper.js] function fn(a) { Object.defineProperty(arguments, "0", {writable: false}); Object.defineProperty(arguments, "0", {configurable: false}); - let propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 1); - verifyEnumerable(arguments, "0"); - verifyNotWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + + verifyProperty(arguments, "0", { + value: 1, + writable: false, + enumerable: true, + configurable: false, + }); // Postcondition: Arguments mapping is removed. Descriptors need to be the same // as above. a = 2; - propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 1); - verifyEnumerable(arguments, "0"); - verifyNotWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + + verifyProperty(arguments, "0", { + value: 1, + writable: false, + enumerable: true, + configurable: false, + }); } fn(1); diff --git a/test/language/arguments-object/mapped/nonwritable-nonconfigurable-descriptors-set-by-arguments.js b/test/language/arguments-object/mapped/nonwritable-nonconfigurable-descriptors-set-by-arguments.js index 40a226adec..99a439f6ac 100644 --- a/test/language/arguments-object/mapped/nonwritable-nonconfigurable-descriptors-set-by-arguments.js +++ b/test/language/arguments-object/mapped/nonwritable-nonconfigurable-descriptors-set-by-arguments.js @@ -18,20 +18,25 @@ function fn(a) { Object.defineProperty(arguments, "0", {writable: false}); arguments[0] = 2; Object.defineProperty(arguments, "0", {configurable: false}); - let propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 1); + assert.sameValue(a, 1); - verifyEnumerable(arguments, "0"); - verifyNotWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + + verifyProperty(arguments, "0", { + value: 1, + writable: false, + enumerable: true, + configurable: false, + }); // Postcondition: Arguments mapping is removed. a = 3; - propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 1); - verifyEnumerable(arguments, "0"); - verifyNotWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + + verifyProperty(arguments, "0", { + value: 1, + writable: false, + enumerable: true, + configurable: false, + }); } fn(1); diff --git a/test/language/arguments-object/mapped/nonwritable-nonconfigurable-descriptors-set-by-param.js b/test/language/arguments-object/mapped/nonwritable-nonconfigurable-descriptors-set-by-param.js index 25fc3296e8..1e797953e8 100644 --- a/test/language/arguments-object/mapped/nonwritable-nonconfigurable-descriptors-set-by-param.js +++ b/test/language/arguments-object/mapped/nonwritable-nonconfigurable-descriptors-set-by-param.js @@ -18,11 +18,13 @@ function fn(a) { Object.defineProperty(arguments, "0", {writable: false}); a = 2; Object.defineProperty(arguments, "0", {configurable: false}); - let propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 1); - verifyEnumerable(arguments, "0"); - verifyNotWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + + verifyProperty(arguments, "0", { + value: 1, + writable: false, + enumerable: true, + configurable: false, + }); } fn(1); diff --git a/test/language/arguments-object/mapped/nonwritable-nonenumerable-nonconfigurable-descriptors-basic.js b/test/language/arguments-object/mapped/nonwritable-nonenumerable-nonconfigurable-descriptors-basic.js index b73875039f..30472115f6 100644 --- a/test/language/arguments-object/mapped/nonwritable-nonenumerable-nonconfigurable-descriptors-basic.js +++ b/test/language/arguments-object/mapped/nonwritable-nonenumerable-nonconfigurable-descriptors-basic.js @@ -18,18 +18,21 @@ function fn(a) { Object.defineProperty(arguments, "0", {writable: false, enumerable: false}); Object.defineProperty(arguments, "0", {configurable: false}); - let propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 1); - verifyNotEnumerable(arguments, "0"); - verifyNotWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + value: 1, + writable: false, + enumerable: false, + configurable: false, + }); // Postcondition: Arguments mapping is removed. a = 2; - propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 1); - verifyNotEnumerable(arguments, "0"); - verifyNotWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + + verifyProperty(arguments, "0", { + value: 1, + writable: false, + enumerable: false, + configurable: false, + }); } fn(1); diff --git a/test/language/arguments-object/mapped/nonwritable-nonenumerable-nonconfigurable-descriptors-set-by-arguments.js b/test/language/arguments-object/mapped/nonwritable-nonenumerable-nonconfigurable-descriptors-set-by-arguments.js index c1b2e49c6c..c8cdd9ed19 100644 --- a/test/language/arguments-object/mapped/nonwritable-nonenumerable-nonconfigurable-descriptors-set-by-arguments.js +++ b/test/language/arguments-object/mapped/nonwritable-nonenumerable-nonconfigurable-descriptors-set-by-arguments.js @@ -17,18 +17,21 @@ function fn(a) { arguments[0] = 2; Object.defineProperty(arguments, "0", {configurable: false}); - let propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 1); - verifyNotEnumerable(arguments, "0"); - verifyNotWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + value: 1, + writable: false, + enumerable: false, + configurable: false, + }); // Postcondition: Arguments mapping is removed. a = 3; - propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 1); - verifyNotEnumerable(arguments, "0"); - verifyNotWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + + verifyProperty(arguments, "0", { + value: 1, + writable: false, + enumerable: false, + configurable: false, + }); } fn(1); diff --git a/test/language/arguments-object/mapped/nonwritable-nonenumerable-nonconfigurable-descriptors-set-by-define-property.js b/test/language/arguments-object/mapped/nonwritable-nonenumerable-nonconfigurable-descriptors-set-by-define-property.js index 9002a7a0a5..29c06b69d8 100644 --- a/test/language/arguments-object/mapped/nonwritable-nonenumerable-nonconfigurable-descriptors-set-by-define-property.js +++ b/test/language/arguments-object/mapped/nonwritable-nonenumerable-nonconfigurable-descriptors-set-by-define-property.js @@ -17,11 +17,11 @@ includes: [propertyHelper.js] function fn(a) { Object.defineProperty(arguments, "0", {writable: false, enumerable: false, value: 2, configurable: false}); - let propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 2); - assert.sameValue(arguments[0], 2); - verifyNotEnumerable(arguments, "0"); - verifyNotWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + value: 2, + writable: false, + enumerable: false, + configurable: false, + }); } fn(1); diff --git a/test/language/arguments-object/mapped/nonwritable-nonenumerable-nonconfigurable-descriptors-set-by-param.js b/test/language/arguments-object/mapped/nonwritable-nonenumerable-nonconfigurable-descriptors-set-by-param.js index 2452d57b1c..4d85e60aa4 100644 --- a/test/language/arguments-object/mapped/nonwritable-nonenumerable-nonconfigurable-descriptors-set-by-param.js +++ b/test/language/arguments-object/mapped/nonwritable-nonenumerable-nonconfigurable-descriptors-set-by-param.js @@ -18,18 +18,21 @@ function fn(a) { a = 2; Object.defineProperty(arguments, "0", {configurable: false}); - let propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 1); - verifyNotEnumerable(arguments, "0"); - verifyNotWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + verifyProperty(arguments, "0", { + value: 1, + writable: false, + enumerable: false, + configurable: false, + }); // Postcondition: Arguments mapping is removed. a = 3; - propertyDescriptor = Object.getOwnPropertyDescriptor(arguments, "0"); - assert.sameValue(propertyDescriptor.value, 1); - verifyNotEnumerable(arguments, "0"); - verifyNotWritable(arguments, "0"); - verifyNotConfigurable(arguments, "0"); + + verifyProperty(arguments, "0", { + value: 1, + writable: false, + enumerable: false, + configurable: false, + }); } fn(1); diff --git a/test/language/arguments-object/unmapped/Symbol.iterator.js b/test/language/arguments-object/unmapped/Symbol.iterator.js index 51c345f125..033c5fb2d7 100644 --- a/test/language/arguments-object/unmapped/Symbol.iterator.js +++ b/test/language/arguments-object/unmapped/Symbol.iterator.js @@ -12,11 +12,11 @@ features: [Symbol.iterator] (function() { 'use strict'; - var descriptor = Object.getOwnPropertyDescriptor(arguments, Symbol.iterator); - assert.sameValue(arguments[Symbol.iterator], [][Symbol.iterator]); - - verifyNotEnumerable(Array.prototype, Symbol.iterator); - verifyWritable(Array.prototype, Symbol.iterator); - verifyConfigurable(Array.prototype, Symbol.iterator); + verifyProperty(arguments, Symbol.iterator, { + value: [][Symbol.iterator], + writable: true, + enumerable: false, + configurable: true, + }); }());