diff --git a/test/annexB/language/eval-code/direct/global-block-decl-eval-global-existing-global-init.js b/test/annexB/language/eval-code/direct/global-block-decl-eval-global-existing-global-init.js index 2044d5c797..2a13d176d6 100644 --- a/test/annexB/language/eval-code/direct/global-block-decl-eval-global-existing-global-init.js +++ b/test/annexB/language/eval-code/direct/global-block-decl-eval-global-existing-global-init.js @@ -37,7 +37,9 @@ eval( 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyNotConfigurable(global, "f");{ function f() { } }' + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: false\ + });{ function f() { } }' ); diff --git a/test/annexB/language/eval-code/direct/global-block-decl-eval-global-init.js b/test/annexB/language/eval-code/direct/global-block-decl-eval-global-init.js index ac9ec0b0b0..067806b83f 100644 --- a/test/annexB/language/eval-code/direct/global-block-decl-eval-global-init.js +++ b/test/annexB/language/eval-code/direct/global-block-decl-eval-global-init.js @@ -21,8 +21,9 @@ eval( 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyConfigurable(global, "f");\ -{ function f() { } }' + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: true\ + });{ function f() { } }' ); diff --git a/test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-existing-global-init.js b/test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-existing-global-init.js index 1e7409ff90..00ea957a05 100644 --- a/test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-existing-global-init.js +++ b/test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-existing-global-init.js @@ -46,7 +46,9 @@ eval( 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyNotConfigurable(global, "f");if (true) function f() { } else function _f() {}' + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: false\ + });if (true) function f() { } else function _f() {}' ); diff --git a/test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-init.js b/test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-init.js index f3961ddd68..d9ac831919 100644 --- a/test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-init.js +++ b/test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-init.js @@ -30,8 +30,9 @@ eval( 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyConfigurable(global, "f");\ -if (true) function f() { } else function _f() {}' + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: true\ + });if (true) function f() { } else function _f() {}' ); diff --git a/test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-existing-global-init.js b/test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-existing-global-init.js index 7d1b3425cc..5f7133f00a 100644 --- a/test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-existing-global-init.js +++ b/test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-existing-global-init.js @@ -46,7 +46,9 @@ eval( 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyNotConfigurable(global, "f");if (false) function _f() {} else function f() { }' + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: false\ + });if (false) function _f() {} else function f() { }' ); diff --git a/test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-init.js b/test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-init.js index 1663c6b989..75282c2eee 100644 --- a/test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-init.js +++ b/test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-init.js @@ -30,8 +30,9 @@ eval( 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyConfigurable(global, "f");\ -if (false) function _f() {} else function f() { }' + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: true\ + });if (false) function _f() {} else function f() { }' ); diff --git a/test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-existing-global-init.js b/test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-existing-global-init.js index a52e1a451c..43d20ce0f3 100644 --- a/test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-existing-global-init.js +++ b/test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-existing-global-init.js @@ -46,7 +46,9 @@ eval( 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyNotConfigurable(global, "f");if (true) function f() { } else ;' + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: false\ + });if (true) function f() { } else ;' ); diff --git a/test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-init.js b/test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-init.js index a9f6001baa..0167cc02ad 100644 --- a/test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-init.js +++ b/test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-init.js @@ -30,8 +30,9 @@ eval( 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyConfigurable(global, "f");\ -if (true) function f() { } else ;' + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: true\ + });if (true) function f() { } else ;' ); diff --git a/test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-existing-global-init.js b/test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-existing-global-init.js index 5d672f36f1..00018f0333 100644 --- a/test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-existing-global-init.js +++ b/test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-existing-global-init.js @@ -46,7 +46,9 @@ eval( 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyNotConfigurable(global, "f");if (true) function f() { }' + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: false\ + });if (true) function f() { }' ); diff --git a/test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-init.js b/test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-init.js index f3f99ed9c9..3db481848e 100644 --- a/test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-init.js +++ b/test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-init.js @@ -30,8 +30,9 @@ eval( 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyConfigurable(global, "f");\ -if (true) function f() { }' + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: true\ + });if (true) function f() { }' ); diff --git a/test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-existing-global-init.js b/test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-existing-global-init.js index 67ab825c9c..6162b8fa9d 100644 --- a/test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-existing-global-init.js +++ b/test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-existing-global-init.js @@ -46,7 +46,9 @@ eval( 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyNotConfigurable(global, "f");if (false) ; else function f() { }' + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: false\ + });if (false) ; else function f() { }' ); diff --git a/test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-init.js b/test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-init.js index f7ac6d81a2..8b216af064 100644 --- a/test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-init.js +++ b/test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-init.js @@ -30,8 +30,9 @@ eval( 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyConfigurable(global, "f");\ -if (false) ; else function f() { }' + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: true\ + });if (false) ; else function f() { }' ); diff --git a/test/annexB/language/eval-code/direct/global-switch-case-eval-global-existing-global-init.js b/test/annexB/language/eval-code/direct/global-switch-case-eval-global-existing-global-init.js index b6e236a11f..2fcad46604 100644 --- a/test/annexB/language/eval-code/direct/global-switch-case-eval-global-existing-global-init.js +++ b/test/annexB/language/eval-code/direct/global-switch-case-eval-global-existing-global-init.js @@ -37,9 +37,11 @@ eval( 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyNotConfigurable(global, "f");switch (1) {' + + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: false\ + });switch (1) {' + ' case 1:' + ' function f() { }' + '}\ diff --git a/test/annexB/language/eval-code/direct/global-switch-case-eval-global-init.js b/test/annexB/language/eval-code/direct/global-switch-case-eval-global-init.js index aaf3b02192..88b202e6bd 100644 --- a/test/annexB/language/eval-code/direct/global-switch-case-eval-global-init.js +++ b/test/annexB/language/eval-code/direct/global-switch-case-eval-global-init.js @@ -21,10 +21,11 @@ eval( 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyConfigurable(global, "f");\ -switch (1) {' + + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: true\ + });switch (1) {' + ' case 1:' + ' function f() { }' + '}\ diff --git a/test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-existing-global-init.js b/test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-existing-global-init.js index 6aa5bcf91b..2648596bd8 100644 --- a/test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-existing-global-init.js +++ b/test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-existing-global-init.js @@ -37,9 +37,11 @@ eval( 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyNotConfigurable(global, "f");switch (1) {' + + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: false\ + });switch (1) {' + ' default:' + ' function f() { }' + '}\ diff --git a/test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-init.js b/test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-init.js index 7401507727..43a4bed3ba 100644 --- a/test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-init.js +++ b/test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-init.js @@ -21,10 +21,11 @@ eval( 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyConfigurable(global, "f");\ -switch (1) {' + + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: true\ + });switch (1) {' + ' default:' + ' function f() { }' + '}\ diff --git a/test/annexB/language/eval-code/indirect/global-block-decl-eval-global-existing-global-init.js b/test/annexB/language/eval-code/indirect/global-block-decl-eval-global-existing-global-init.js index 87065e476d..e4b70a43b2 100644 --- a/test/annexB/language/eval-code/indirect/global-block-decl-eval-global-existing-global-init.js +++ b/test/annexB/language/eval-code/indirect/global-block-decl-eval-global-existing-global-init.js @@ -37,7 +37,9 @@ Object.defineProperty(fnGlobalObject(), 'f', { 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyNotConfigurable(global, "f");{ function f() { } }' + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: false\ + });{ function f() { } }' ); diff --git a/test/annexB/language/eval-code/indirect/global-block-decl-eval-global-init.js b/test/annexB/language/eval-code/indirect/global-block-decl-eval-global-init.js index 250df9f718..d017d2d688 100644 --- a/test/annexB/language/eval-code/indirect/global-block-decl-eval-global-init.js +++ b/test/annexB/language/eval-code/indirect/global-block-decl-eval-global-init.js @@ -21,8 +21,9 @@ info: | 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyConfigurable(global, "f");\ -{ function f() { } }' + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: true\ + });{ function f() { } }' ); diff --git a/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-existing-global-init.js b/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-existing-global-init.js index 6785d32e02..c4bfe800e7 100644 --- a/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-existing-global-init.js +++ b/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-existing-global-init.js @@ -46,7 +46,9 @@ Object.defineProperty(fnGlobalObject(), 'f', { 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyNotConfigurable(global, "f");if (true) function f() { } else function _f() {}' + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: false\ + });if (true) function f() { } else function _f() {}' ); diff --git a/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-init.js b/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-init.js index a3f9371216..9b286bedfd 100644 --- a/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-init.js +++ b/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-init.js @@ -30,8 +30,9 @@ info: | 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyConfigurable(global, "f");\ -if (true) function f() { } else function _f() {}' + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: true\ + });if (true) function f() { } else function _f() {}' ); diff --git a/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-existing-global-init.js b/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-existing-global-init.js index a9942a6146..c5944b8a60 100644 --- a/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-existing-global-init.js +++ b/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-existing-global-init.js @@ -46,7 +46,9 @@ Object.defineProperty(fnGlobalObject(), 'f', { 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyNotConfigurable(global, "f");if (false) function _f() {} else function f() { }' + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: false\ + });if (false) function _f() {} else function f() { }' ); diff --git a/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-init.js b/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-init.js index 7054756a4c..601e55ca19 100644 --- a/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-init.js +++ b/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-init.js @@ -30,8 +30,9 @@ info: | 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyConfigurable(global, "f");\ -if (false) function _f() {} else function f() { }' + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: true\ + });if (false) function _f() {} else function f() { }' ); diff --git a/test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-existing-global-init.js b/test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-existing-global-init.js index 857b16085a..380d46bac2 100644 --- a/test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-existing-global-init.js +++ b/test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-existing-global-init.js @@ -46,7 +46,9 @@ Object.defineProperty(fnGlobalObject(), 'f', { 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyNotConfigurable(global, "f");if (true) function f() { } else ;' + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: false\ + });if (true) function f() { } else ;' ); diff --git a/test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-init.js b/test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-init.js index 7208aa7730..331e8320b2 100644 --- a/test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-init.js +++ b/test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-init.js @@ -30,8 +30,9 @@ info: | 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyConfigurable(global, "f");\ -if (true) function f() { } else ;' + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: true\ + });if (true) function f() { } else ;' ); diff --git a/test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-existing-global-init.js b/test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-existing-global-init.js index 997d8c0aab..7663f96807 100644 --- a/test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-existing-global-init.js +++ b/test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-existing-global-init.js @@ -46,7 +46,9 @@ Object.defineProperty(fnGlobalObject(), 'f', { 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyNotConfigurable(global, "f");if (true) function f() { }' + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: false\ + });if (true) function f() { }' ); diff --git a/test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-init.js b/test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-init.js index bb889ccd93..69c202b69d 100644 --- a/test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-init.js +++ b/test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-init.js @@ -30,8 +30,9 @@ info: | 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyConfigurable(global, "f");\ -if (true) function f() { }' + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: true\ + });if (true) function f() { }' ); diff --git a/test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-existing-global-init.js b/test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-existing-global-init.js index e9795212d2..d78d1c1aa9 100644 --- a/test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-existing-global-init.js +++ b/test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-existing-global-init.js @@ -46,7 +46,9 @@ Object.defineProperty(fnGlobalObject(), 'f', { 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyNotConfigurable(global, "f");if (false) ; else function f() { }' + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: false\ + });if (false) ; else function f() { }' ); diff --git a/test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-init.js b/test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-init.js index a223be102e..56d476a895 100644 --- a/test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-init.js +++ b/test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-init.js @@ -30,8 +30,9 @@ info: | 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyConfigurable(global, "f");\ -if (false) ; else function f() { }' + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: true\ + });if (false) ; else function f() { }' ); diff --git a/test/annexB/language/eval-code/indirect/global-switch-case-eval-global-existing-global-init.js b/test/annexB/language/eval-code/indirect/global-switch-case-eval-global-existing-global-init.js index 375aa8eb0c..8efb7cfe1c 100644 --- a/test/annexB/language/eval-code/indirect/global-switch-case-eval-global-existing-global-init.js +++ b/test/annexB/language/eval-code/indirect/global-switch-case-eval-global-existing-global-init.js @@ -37,9 +37,11 @@ Object.defineProperty(fnGlobalObject(), 'f', { 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyNotConfigurable(global, "f");switch (1) {' + + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: false\ + });switch (1) {' + ' case 1:' + ' function f() { }' + '}\ diff --git a/test/annexB/language/eval-code/indirect/global-switch-case-eval-global-init.js b/test/annexB/language/eval-code/indirect/global-switch-case-eval-global-init.js index 9e05d398f8..84aec24965 100644 --- a/test/annexB/language/eval-code/indirect/global-switch-case-eval-global-init.js +++ b/test/annexB/language/eval-code/indirect/global-switch-case-eval-global-init.js @@ -21,10 +21,11 @@ info: | 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyConfigurable(global, "f");\ -switch (1) {' + + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: true\ + });switch (1) {' + ' case 1:' + ' function f() { }' + '}\ diff --git a/test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-existing-global-init.js b/test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-existing-global-init.js index c30b5ac426..5f48593b44 100644 --- a/test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-existing-global-init.js +++ b/test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-existing-global-init.js @@ -37,9 +37,11 @@ Object.defineProperty(fnGlobalObject(), 'f', { 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyNotConfigurable(global, "f");switch (1) {' + + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: false\ + });switch (1) {' + ' default:' + ' function f() { }' + '}\ diff --git a/test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-init.js b/test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-init.js index c9eb03bc77..8791768943 100644 --- a/test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-init.js +++ b/test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-init.js @@ -21,10 +21,11 @@ info: | 'var global = fnGlobalObject();\ assert.sameValue(f, undefined, "binding is initialized to `undefined`");\ \ - verifyEnumerable(global, "f");\ - verifyWritable(global, "f");\ - verifyConfigurable(global, "f");\ -switch (1) {' + + verifyProperty(global, "f", {\ + enumerable: true,\ + writable: true,\ + configurable: true\ + });switch (1) {' + ' default:' + ' function f() { }' + '}\ diff --git a/test/annexB/language/global-code/block-decl-global-init.js b/test/annexB/language/global-code/block-decl-global-init.js index e0563878ce..3f859f9ce1 100644 --- a/test/annexB/language/global-code/block-decl-global-init.js +++ b/test/annexB/language/global-code/block-decl-global-init.js @@ -20,9 +20,11 @@ info: | var global = fnGlobalObject(); assert.sameValue(f, undefined, 'binding is initialized to `undefined`'); -verifyEnumerable(global, 'f'); -verifyWritable(global, 'f'); -verifyNotConfigurable(global, 'f'); +verifyProperty(global, "f", { + enumerable: true, + writable: true, + configurable: false +}); { function f() { } diff --git a/test/annexB/language/global-code/if-decl-else-decl-a-global-init.js b/test/annexB/language/global-code/if-decl-else-decl-a-global-init.js index 496b989e24..26e0a54108 100644 --- a/test/annexB/language/global-code/if-decl-else-decl-a-global-init.js +++ b/test/annexB/language/global-code/if-decl-else-decl-a-global-init.js @@ -29,8 +29,10 @@ info: | var global = fnGlobalObject(); assert.sameValue(f, undefined, 'binding is initialized to `undefined`'); -verifyEnumerable(global, 'f'); -verifyWritable(global, 'f'); -verifyNotConfigurable(global, 'f'); +verifyProperty(global, "f", { + enumerable: true, + writable: true, + configurable: false +}); if (true) function f() { } else function _f() {} diff --git a/test/annexB/language/global-code/if-decl-else-decl-b-global-init.js b/test/annexB/language/global-code/if-decl-else-decl-b-global-init.js index 0bb7e9b49b..edb5dcfa3a 100644 --- a/test/annexB/language/global-code/if-decl-else-decl-b-global-init.js +++ b/test/annexB/language/global-code/if-decl-else-decl-b-global-init.js @@ -29,8 +29,10 @@ info: | var global = fnGlobalObject(); assert.sameValue(f, undefined, 'binding is initialized to `undefined`'); -verifyEnumerable(global, 'f'); -verifyWritable(global, 'f'); -verifyNotConfigurable(global, 'f'); +verifyProperty(global, "f", { + enumerable: true, + writable: true, + configurable: false +}); if (false) function _f() {} else function f() { } diff --git a/test/annexB/language/global-code/if-decl-else-stmt-global-init.js b/test/annexB/language/global-code/if-decl-else-stmt-global-init.js index ed41226240..be89159ebd 100644 --- a/test/annexB/language/global-code/if-decl-else-stmt-global-init.js +++ b/test/annexB/language/global-code/if-decl-else-stmt-global-init.js @@ -29,8 +29,10 @@ info: | var global = fnGlobalObject(); assert.sameValue(f, undefined, 'binding is initialized to `undefined`'); -verifyEnumerable(global, 'f'); -verifyWritable(global, 'f'); -verifyNotConfigurable(global, 'f'); +verifyProperty(global, "f", { + enumerable: true, + writable: true, + configurable: false +}); if (true) function f() { } else ; diff --git a/test/annexB/language/global-code/if-decl-no-else-global-init.js b/test/annexB/language/global-code/if-decl-no-else-global-init.js index 85748a57c9..c084fdb4c6 100644 --- a/test/annexB/language/global-code/if-decl-no-else-global-init.js +++ b/test/annexB/language/global-code/if-decl-no-else-global-init.js @@ -29,8 +29,10 @@ info: | var global = fnGlobalObject(); assert.sameValue(f, undefined, 'binding is initialized to `undefined`'); -verifyEnumerable(global, 'f'); -verifyWritable(global, 'f'); -verifyNotConfigurable(global, 'f'); +verifyProperty(global, "f", { + enumerable: true, + writable: true, + configurable: false +}); if (true) function f() { } diff --git a/test/annexB/language/global-code/if-stmt-else-decl-global-init.js b/test/annexB/language/global-code/if-stmt-else-decl-global-init.js index c4b27987c1..5c7849b0cd 100644 --- a/test/annexB/language/global-code/if-stmt-else-decl-global-init.js +++ b/test/annexB/language/global-code/if-stmt-else-decl-global-init.js @@ -29,8 +29,10 @@ info: | var global = fnGlobalObject(); assert.sameValue(f, undefined, 'binding is initialized to `undefined`'); -verifyEnumerable(global, 'f'); -verifyWritable(global, 'f'); -verifyNotConfigurable(global, 'f'); +verifyProperty(global, "f", { + enumerable: true, + writable: true, + configurable: false +}); if (false) ; else function f() { } diff --git a/test/annexB/language/global-code/switch-case-global-init.js b/test/annexB/language/global-code/switch-case-global-init.js index 38a3e928b4..3c917accc2 100644 --- a/test/annexB/language/global-code/switch-case-global-init.js +++ b/test/annexB/language/global-code/switch-case-global-init.js @@ -20,9 +20,11 @@ info: | var global = fnGlobalObject(); assert.sameValue(f, undefined, 'binding is initialized to `undefined`'); -verifyEnumerable(global, 'f'); -verifyWritable(global, 'f'); -verifyNotConfigurable(global, 'f'); +verifyProperty(global, "f", { + enumerable: true, + writable: true, + configurable: false +}); switch (1) { case 1: diff --git a/test/annexB/language/global-code/switch-dflt-global-init.js b/test/annexB/language/global-code/switch-dflt-global-init.js index d9eb1c035f..cf49af4982 100644 --- a/test/annexB/language/global-code/switch-dflt-global-init.js +++ b/test/annexB/language/global-code/switch-dflt-global-init.js @@ -20,9 +20,11 @@ info: | var global = fnGlobalObject(); assert.sameValue(f, undefined, 'binding is initialized to `undefined`'); -verifyEnumerable(global, 'f'); -verifyWritable(global, 'f'); -verifyNotConfigurable(global, 'f'); +verifyProperty(global, "f", { + enumerable: true, + writable: true, + configurable: false +}); switch (1) { default: diff --git a/test/language/expressions/array/spread-mult-obj-ident.js b/test/language/expressions/array/spread-mult-obj-ident.js index db0ca9ae97..5d0303b6f1 100644 --- a/test/language/expressions/array/spread-mult-obj-ident.js +++ b/test/language/expressions/array/spread-mult-obj-ident.js @@ -40,27 +40,35 @@ let o = {c: 3, d: 4}; var callCount = 0; (function(obj) { - assert.sameValue(obj.a, 1); - assert.sameValue(obj.b, 2); - assert.sameValue(obj.c, 3); - assert.sameValue(obj.d, 4); assert.sameValue(Object.keys(obj).length, 4); - verifyEnumerable(obj, "a"); - verifyWritable(obj, "a"); - verifyConfigurable(obj, "a"); + verifyProperty(obj, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); - verifyEnumerable(obj, "b"); - verifyWritable(obj, "b"); - verifyConfigurable(obj, "b"); + verifyProperty(obj, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); - verifyEnumerable(obj, "c"); - verifyWritable(obj, "c"); - verifyConfigurable(obj, "c"); + verifyProperty(obj, "c", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); - verifyEnumerable(obj, "d"); - verifyWritable(obj, "d"); - verifyConfigurable(obj, "d"); + verifyProperty(obj, "d", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount += 1; }.apply(null, [{a: 1, b: 2, ...o}])); diff --git a/test/language/expressions/array/spread-obj-getter-descriptor.js b/test/language/expressions/array/spread-obj-getter-descriptor.js index cc4da71bd3..b2a00e3897 100644 --- a/test/language/expressions/array/spread-obj-getter-descriptor.js +++ b/test/language/expressions/array/spread-obj-getter-descriptor.js @@ -44,14 +44,16 @@ let o = { var callCount = 0; (function(obj) { - assert.sameValue(Object.getOwnPropertyDescriptor(obj, "a").value, 42); assert.sameValue(obj.c, 4); assert.sameValue(obj.d, 5); assert.sameValue(Object.keys(obj).length, 3); - verifyEnumerable(obj, "a"); - verifyWritable(obj, "a"); - verifyConfigurable(obj, "a"); + verifyProperty(obj, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 42 + }); callCount += 1; }.apply(null, [{...o, c: 4, d: 5}])); diff --git a/test/language/expressions/array/spread-obj-override-immutable.js b/test/language/expressions/array/spread-obj-override-immutable.js index b03695a23e..bf9c98f1df 100644 --- a/test/language/expressions/array/spread-obj-override-immutable.js +++ b/test/language/expressions/array/spread-obj-override-immutable.js @@ -34,14 +34,19 @@ var callCount = 0; assert.sameValue(obj.a, 3) assert.sameValue(obj.b, 2); - verifyEnumerable(obj, "a"); - verifyWritable(obj, "a"); - verifyConfigurable(obj, "a"); - - verifyEnumerable(obj, "b"); - verifyWritable(obj, "b"); - verifyConfigurable(obj, "b"); + verifyProperty(obj, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(obj, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount += 1; }.apply(null, [{...o, a: 3}])); diff --git a/test/language/expressions/array/spread-sngl-obj-ident.js b/test/language/expressions/array/spread-sngl-obj-ident.js index 453bf2ff1b..69ebaf870f 100644 --- a/test/language/expressions/array/spread-sngl-obj-ident.js +++ b/test/language/expressions/array/spread-sngl-obj-ident.js @@ -40,17 +40,21 @@ let o = {c: 3, d: 4}; var callCount = 0; (function(obj) { - assert.sameValue(obj.c, 3); - assert.sameValue(obj.d, 4); assert.sameValue(Object.keys(obj).length, 2); - verifyEnumerable(obj, "c"); - verifyWritable(obj, "c"); - verifyConfigurable(obj, "c"); + verifyProperty(obj, "c", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); - verifyEnumerable(obj, "d"); - verifyWritable(obj, "d"); - verifyConfigurable(obj, "d"); + verifyProperty(obj, "d", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount += 1; }.apply(null, [{...o}])); diff --git a/test/language/expressions/arrow-function/dstr-dflt-obj-ptrn-rest-getter.js b/test/language/expressions/arrow-function/dstr-dflt-obj-ptrn-rest-getter.js index 097d99a91a..5e2f25f34f 100644 --- a/test/language/expressions/arrow-function/dstr-dflt-obj-ptrn-rest-getter.js +++ b/test/language/expressions/arrow-function/dstr-dflt-obj-ptrn-rest-getter.js @@ -43,13 +43,14 @@ var count = 0; var callCount = 0; var f; f = ({...x} = { get v() { count++; return 2; } }) => { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/arrow-function/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/arrow-function/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js index e043646443..fe44372eee 100644 --- a/test/language/expressions/arrow-function/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/arrow-function/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js @@ -44,18 +44,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var f; f = ({...rest} = o) => { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/arrow-function/dstr-dflt-obj-ptrn-rest-val-obj.js b/test/language/expressions/arrow-function/dstr-dflt-obj-ptrn-rest-val-obj.js index b77e9644b8..f7ede42f35 100644 --- a/test/language/expressions/arrow-function/dstr-dflt-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/arrow-function/dstr-dflt-obj-ptrn-rest-val-obj.js @@ -42,19 +42,22 @@ info: | var callCount = 0; var f; f = ({a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}) => { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/arrow-function/dstr-obj-ptrn-rest-getter.js b/test/language/expressions/arrow-function/dstr-obj-ptrn-rest-getter.js index 8cffd061fc..7776d658d6 100644 --- a/test/language/expressions/arrow-function/dstr-obj-ptrn-rest-getter.js +++ b/test/language/expressions/arrow-function/dstr-obj-ptrn-rest-getter.js @@ -43,13 +43,14 @@ var count = 0; var callCount = 0; var f; f = ({...x}) => { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/arrow-function/dstr-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/arrow-function/dstr-obj-ptrn-rest-skip-non-enumerable.js index b196810dff..0fe3bd824b 100644 --- a/test/language/expressions/arrow-function/dstr-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/arrow-function/dstr-obj-ptrn-rest-skip-non-enumerable.js @@ -44,18 +44,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var f; f = ({...rest}) => { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/arrow-function/dstr-obj-ptrn-rest-val-obj.js b/test/language/expressions/arrow-function/dstr-obj-ptrn-rest-val-obj.js index 19e12d6db5..378c44be81 100644 --- a/test/language/expressions/arrow-function/dstr-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/arrow-function/dstr-obj-ptrn-rest-val-obj.js @@ -42,19 +42,22 @@ info: | var callCount = 0; var f; f = ({a, b, ...rest}) => { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/assignment/dstr-array-elem-init-fn-name-arrow.js b/test/language/expressions/assignment/dstr-array-elem-init-fn-name-arrow.js index 5a07af0e6d..daa9682cce 100644 --- a/test/language/expressions/assignment/dstr-array-elem-init-fn-name-arrow.js +++ b/test/language/expressions/assignment/dstr-array-elem-init-fn-name-arrow.js @@ -34,9 +34,11 @@ var vals = []; result = [ arrow = () => {} ] = vals; -assert.sameValue(arrow.name, 'arrow'); -verifyNotEnumerable(arrow, 'name'); -verifyNotWritable(arrow, 'name'); -verifyConfigurable(arrow, 'name'); +verifyProperty(arrow, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'arrow' +}); assert.sameValue(result, vals); diff --git a/test/language/expressions/assignment/dstr-array-elem-init-fn-name-class.js b/test/language/expressions/assignment/dstr-array-elem-init-fn-name-class.js index 5fd497ba43..6891edbf8d 100644 --- a/test/language/expressions/assignment/dstr-array-elem-init-fn-name-class.js +++ b/test/language/expressions/assignment/dstr-array-elem-init-fn-name-class.js @@ -37,9 +37,11 @@ result = [ xCls = class x {}, cls = class {}, xCls2 = class { static name() {} } assert(xCls.name !== 'xCls'); assert(xCls2.name !== 'xCls2'); -assert.sameValue(cls.name, 'cls'); -verifyNotEnumerable(cls, 'name'); -verifyNotWritable(cls, 'name'); -verifyConfigurable(cls, 'name'); +verifyProperty(cls, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'cls' +}); assert.sameValue(result, vals); diff --git a/test/language/expressions/assignment/dstr-array-elem-init-fn-name-cover.js b/test/language/expressions/assignment/dstr-array-elem-init-fn-name-cover.js index b252e27c14..60c99cdc2d 100644 --- a/test/language/expressions/assignment/dstr-array-elem-init-fn-name-cover.js +++ b/test/language/expressions/assignment/dstr-array-elem-init-fn-name-cover.js @@ -36,9 +36,11 @@ result = [ xCover = (0, function() {}), cover = (function() {}) ] = vals; assert(xCover.name !== 'xCover'); -assert.sameValue(cover.name, 'cover'); -verifyNotEnumerable(cover, 'name'); -verifyNotWritable(cover, 'name'); -verifyConfigurable(cover, 'name'); +verifyProperty(cover, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'cover' +}); assert.sameValue(result, vals); diff --git a/test/language/expressions/assignment/dstr-array-elem-init-fn-name-fn.js b/test/language/expressions/assignment/dstr-array-elem-init-fn-name-fn.js index e52e9adce4..96c292c498 100644 --- a/test/language/expressions/assignment/dstr-array-elem-init-fn-name-fn.js +++ b/test/language/expressions/assignment/dstr-array-elem-init-fn-name-fn.js @@ -36,9 +36,11 @@ result = [ xFn = function x() {}, fn = function() {} ] = vals; assert(xFn.name !== 'xFn'); -assert.sameValue(fn.name, 'fn'); -verifyNotEnumerable(fn, 'name'); -verifyNotWritable(fn, 'name'); -verifyConfigurable(fn, 'name'); +verifyProperty(fn, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'fn' +}); assert.sameValue(result, vals); diff --git a/test/language/expressions/assignment/dstr-array-elem-init-fn-name-gen.js b/test/language/expressions/assignment/dstr-array-elem-init-fn-name-gen.js index b60cf0dbad..1959ad60fa 100644 --- a/test/language/expressions/assignment/dstr-array-elem-init-fn-name-gen.js +++ b/test/language/expressions/assignment/dstr-array-elem-init-fn-name-gen.js @@ -36,9 +36,11 @@ result = [ xGen = function* x() {}, gen = function*() {} ] = vals; assert.notSameValue(xGen.name, 'xGen'); -assert.sameValue(gen.name, 'gen'); -verifyNotEnumerable(gen, 'name'); -verifyNotWritable(gen, 'name'); -verifyConfigurable(gen, 'name'); +verifyProperty(gen, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'gen' +}); assert.sameValue(result, vals); diff --git a/test/language/expressions/assignment/dstr-obj-id-init-fn-name-arrow.js b/test/language/expressions/assignment/dstr-obj-id-init-fn-name-arrow.js index e723f4acc7..dc21ba6b1f 100644 --- a/test/language/expressions/assignment/dstr-obj-id-init-fn-name-arrow.js +++ b/test/language/expressions/assignment/dstr-obj-id-init-fn-name-arrow.js @@ -33,9 +33,11 @@ var vals = {}; result = { arrow = () => {} } = vals; -assert.sameValue(arrow.name, 'arrow'); -verifyNotEnumerable(arrow, 'name'); -verifyNotWritable(arrow, 'name'); -verifyConfigurable(arrow, 'name'); +verifyProperty(arrow, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'arrow' +}); assert.sameValue(result, vals); diff --git a/test/language/expressions/assignment/dstr-obj-id-init-fn-name-class.js b/test/language/expressions/assignment/dstr-obj-id-init-fn-name-class.js index bdefcab831..3fd2006468 100644 --- a/test/language/expressions/assignment/dstr-obj-id-init-fn-name-class.js +++ b/test/language/expressions/assignment/dstr-obj-id-init-fn-name-class.js @@ -36,9 +36,11 @@ result = { xCls = class x {}, cls = class {}, xCls2 = class { static name() {} } assert.notSameValue(xCls.name, 'xCls'); assert.notSameValue(xCls2.name, 'xCls2'); -assert.sameValue(cls.name, 'cls'); -verifyNotEnumerable(cls, 'name'); -verifyNotWritable(cls, 'name'); -verifyConfigurable(cls, 'name'); +verifyProperty(cls, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'cls' +}); assert.sameValue(result, vals); diff --git a/test/language/expressions/assignment/dstr-obj-id-init-fn-name-cover.js b/test/language/expressions/assignment/dstr-obj-id-init-fn-name-cover.js index b178e1d7b4..c0cfa2e1ca 100644 --- a/test/language/expressions/assignment/dstr-obj-id-init-fn-name-cover.js +++ b/test/language/expressions/assignment/dstr-obj-id-init-fn-name-cover.js @@ -35,9 +35,11 @@ result = { xCover = (0, function() {}), cover = (function() {}) } = vals; assert.notSameValue(xCover.name, 'xCover'); -assert.sameValue(cover.name, 'cover'); -verifyNotEnumerable(cover, 'name'); -verifyNotWritable(cover, 'name'); -verifyConfigurable(cover, 'name'); +verifyProperty(cover, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'cover' +}); assert.sameValue(result, vals); diff --git a/test/language/expressions/assignment/dstr-obj-id-init-fn-name-fn.js b/test/language/expressions/assignment/dstr-obj-id-init-fn-name-fn.js index e8ba1aacce..f1730eafdc 100644 --- a/test/language/expressions/assignment/dstr-obj-id-init-fn-name-fn.js +++ b/test/language/expressions/assignment/dstr-obj-id-init-fn-name-fn.js @@ -35,9 +35,11 @@ result = { xFn = function x() {}, fn = function() {} } = vals; assert.notSameValue(xFn.name, 'xFn'); -assert.sameValue(fn.name, 'fn'); -verifyNotEnumerable(fn, 'name'); -verifyNotWritable(fn, 'name'); -verifyConfigurable(fn, 'name'); +verifyProperty(fn, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'fn' +}); assert.sameValue(result, vals); diff --git a/test/language/expressions/assignment/dstr-obj-id-init-fn-name-gen.js b/test/language/expressions/assignment/dstr-obj-id-init-fn-name-gen.js index 800c2183ab..4da615fcd3 100644 --- a/test/language/expressions/assignment/dstr-obj-id-init-fn-name-gen.js +++ b/test/language/expressions/assignment/dstr-obj-id-init-fn-name-gen.js @@ -35,9 +35,11 @@ result = { xGen = function* x() {}, gen = function*() {} } = vals; assert.notSameValue(xGen.name, 'xGen'); -assert.sameValue(gen.name, 'gen'); -verifyNotEnumerable(gen, 'name'); -verifyNotWritable(gen, 'name'); -verifyConfigurable(gen, 'name'); +verifyProperty(gen, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'gen' +}); assert.sameValue(result, vals); diff --git a/test/language/expressions/assignment/dstr-obj-prop-elem-init-fn-name-arrow.js b/test/language/expressions/assignment/dstr-obj-prop-elem-init-fn-name-arrow.js index d40f3fc2a4..a24b196eca 100644 --- a/test/language/expressions/assignment/dstr-obj-prop-elem-init-fn-name-arrow.js +++ b/test/language/expressions/assignment/dstr-obj-prop-elem-init-fn-name-arrow.js @@ -34,9 +34,11 @@ var vals = {}; result = { x: arrow = () => {} } = vals; -assert.sameValue(arrow.name, 'arrow'); -verifyNotEnumerable(arrow, 'name'); -verifyNotWritable(arrow, 'name'); -verifyConfigurable(arrow, 'name'); +verifyProperty(arrow, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'arrow' +}); assert.sameValue(result, vals); diff --git a/test/language/expressions/assignment/dstr-obj-prop-elem-init-fn-name-class.js b/test/language/expressions/assignment/dstr-obj-prop-elem-init-fn-name-class.js index 782b5f6d07..f206869d57 100644 --- a/test/language/expressions/assignment/dstr-obj-prop-elem-init-fn-name-class.js +++ b/test/language/expressions/assignment/dstr-obj-prop-elem-init-fn-name-class.js @@ -37,9 +37,11 @@ result = { x: xCls = class x {}, x: cls = class {}, x: xCls2 = class { static na assert.notSameValue(xCls.name, 'xCls'); assert.notSameValue(xCls2.name, 'xCls2'); -assert.sameValue(cls.name, 'cls'); -verifyNotEnumerable(cls, 'name'); -verifyNotWritable(cls, 'name'); -verifyConfigurable(cls, 'name'); +verifyProperty(cls, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'cls' +}); assert.sameValue(result, vals); diff --git a/test/language/expressions/assignment/dstr-obj-prop-elem-init-fn-name-cover.js b/test/language/expressions/assignment/dstr-obj-prop-elem-init-fn-name-cover.js index 6ee0e71820..229cef4472 100644 --- a/test/language/expressions/assignment/dstr-obj-prop-elem-init-fn-name-cover.js +++ b/test/language/expressions/assignment/dstr-obj-prop-elem-init-fn-name-cover.js @@ -36,9 +36,11 @@ result = { x: xCover = (0, function() {}), x: cover = (function() {}) } = vals; assert.notSameValue(xCover.name, 'xCover'); -assert.sameValue(cover.name, 'cover'); -verifyNotEnumerable(cover, 'name'); -verifyNotWritable(cover, 'name'); -verifyConfigurable(cover, 'name'); +verifyProperty(cover, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'cover' +}); assert.sameValue(result, vals); diff --git a/test/language/expressions/assignment/dstr-obj-prop-elem-init-fn-name-fn.js b/test/language/expressions/assignment/dstr-obj-prop-elem-init-fn-name-fn.js index 1697f6b118..9da34a4205 100644 --- a/test/language/expressions/assignment/dstr-obj-prop-elem-init-fn-name-fn.js +++ b/test/language/expressions/assignment/dstr-obj-prop-elem-init-fn-name-fn.js @@ -36,9 +36,11 @@ result = { x: xFn = function x() {}, x: fn = function() {} } = vals; assert.notSameValue(xFn.name, 'xFn'); -assert.sameValue(fn.name, 'fn'); -verifyNotEnumerable(fn, 'name'); -verifyNotWritable(fn, 'name'); -verifyConfigurable(fn, 'name'); +verifyProperty(fn, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'fn' +}); assert.sameValue(result, vals); diff --git a/test/language/expressions/assignment/dstr-obj-prop-elem-init-fn-name-gen.js b/test/language/expressions/assignment/dstr-obj-prop-elem-init-fn-name-gen.js index 07a9755273..859ae3ad33 100644 --- a/test/language/expressions/assignment/dstr-obj-prop-elem-init-fn-name-gen.js +++ b/test/language/expressions/assignment/dstr-obj-prop-elem-init-fn-name-gen.js @@ -36,9 +36,11 @@ result = { x: xGen = function* x() {}, x: gen = function*() {} } = vals; assert.notSameValue(xGen.name, 'xGen'); -assert.sameValue(gen.name, 'gen'); -verifyNotEnumerable(gen, 'name'); -verifyNotWritable(gen, 'name'); -verifyConfigurable(gen, 'name'); +verifyProperty(gen, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'gen' +}); assert.sameValue(result, vals); diff --git a/test/language/expressions/assignment/dstr-obj-rest-descriptors.js b/test/language/expressions/assignment/dstr-obj-rest-descriptors.js index 6ade3441fd..25bc72e5cf 100644 --- a/test/language/expressions/assignment/dstr-obj-rest-descriptors.js +++ b/test/language/expressions/assignment/dstr-obj-rest-descriptors.js @@ -27,16 +27,19 @@ var vals = obj; result = {...rest} = vals; -assert.sameValue(rest.a, 3); -assert.sameValue(rest.b, 4); +verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 +}); -verifyEnumerable(rest, "a"); -verifyWritable(rest, "a"); -verifyConfigurable(rest, "a"); - -verifyEnumerable(rest, "b"); -verifyWritable(rest, "b"); -verifyConfigurable(rest, "b"); +verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 +}); assert.sameValue(result, vals); diff --git a/test/language/expressions/assignment/dstr-obj-rest-getter.js b/test/language/expressions/assignment/dstr-obj-rest-getter.js index f8127311a2..eea68ef425 100644 --- a/test/language/expressions/assignment/dstr-obj-rest-getter.js +++ b/test/language/expressions/assignment/dstr-obj-rest-getter.js @@ -25,12 +25,13 @@ var vals = { get v() { count++; return 2; } }; result = {...x} = vals; -assert.sameValue(x.v, 2); assert.sameValue(count, 1); -verifyEnumerable(x, "v"); -verifyWritable(x, "v"); -verifyConfigurable(x, "v"); - +verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 +}); assert.sameValue(result, vals); diff --git a/test/language/expressions/assignment/dstr-obj-rest-skip-non-enumerable.js b/test/language/expressions/assignment/dstr-obj-rest-skip-non-enumerable.js index 750d34ce98..10b5549283 100644 --- a/test/language/expressions/assignment/dstr-obj-rest-skip-non-enumerable.js +++ b/test/language/expressions/assignment/dstr-obj-rest-skip-non-enumerable.js @@ -26,17 +26,20 @@ var vals = obj; result = {...rest} = vals; -assert.sameValue(rest.a, 3); -assert.sameValue(rest.b, 4); assert.sameValue(Object.getOwnPropertyDescriptor(rest, "x"), undefined); -verifyEnumerable(rest, "a"); -verifyWritable(rest, "a"); -verifyConfigurable(rest, "a"); - -verifyEnumerable(rest, "b"); -verifyWritable(rest, "b"); -verifyConfigurable(rest, "b"); +verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 +}); +verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 +}); assert.sameValue(result, vals); diff --git a/test/language/expressions/assignment/dstr-obj-rest-to-property.js b/test/language/expressions/assignment/dstr-obj-rest-to-property.js index 8c98d2868c..502fea45bc 100644 --- a/test/language/expressions/assignment/dstr-obj-rest-to-property.js +++ b/test/language/expressions/assignment/dstr-obj-rest-to-property.js @@ -27,9 +27,10 @@ result = {...src.y} = vals; assert.sameValue(src.y.x, 1); assert.sameValue(src.y.y, 2); -verifyEnumerable(src, "y"); -verifyWritable(src, "y"); -verifyConfigurable(src, "y"); - +verifyProperty(src, "y", { + enumerable: true, + writable: true, + configurable: true +}); assert.sameValue(result, vals); diff --git a/test/language/expressions/assignment/dstr-obj-rest-valid-object.js b/test/language/expressions/assignment/dstr-obj-rest-valid-object.js index 95052ccc83..6ea758c4fa 100644 --- a/test/language/expressions/assignment/dstr-obj-rest-valid-object.js +++ b/test/language/expressions/assignment/dstr-obj-rest-valid-object.js @@ -25,18 +25,21 @@ var vals = {x: 1, y: 2, a: 5, b: 3}; result = {a, b, ...rest} = vals; -assert.sameValue(rest.x, 1); -assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); -verifyEnumerable(rest, "x"); -verifyWritable(rest, "x"); -verifyConfigurable(rest, "x"); - -verifyEnumerable(rest, "y"); -verifyWritable(rest, "y"); -verifyConfigurable(rest, "y"); +verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 +}); +verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 +}); assert.sameValue(result, vals); diff --git a/test/language/expressions/async-generator/dstr-dflt-obj-ptrn-rest-getter.js b/test/language/expressions/async-generator/dstr-dflt-obj-ptrn-rest-getter.js index 74ba003d3d..0b939e6291 100644 --- a/test/language/expressions/async-generator/dstr-dflt-obj-ptrn-rest-getter.js +++ b/test/language/expressions/async-generator/dstr-dflt-obj-ptrn-rest-getter.js @@ -23,13 +23,14 @@ var count = 0; var callCount = 0; var f; f = async function*({...x} = { get v() { count++; return 2; } }) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/async-generator/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/async-generator/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js index cc0c978d6d..bc9d498278 100644 --- a/test/language/expressions/async-generator/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/async-generator/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js @@ -24,18 +24,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var f; f = async function*({...rest} = o) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/async-generator/dstr-dflt-obj-ptrn-rest-val-obj.js b/test/language/expressions/async-generator/dstr-dflt-obj-ptrn-rest-val-obj.js index 08c8595a6d..9033888687 100644 --- a/test/language/expressions/async-generator/dstr-dflt-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/async-generator/dstr-dflt-obj-ptrn-rest-val-obj.js @@ -22,19 +22,22 @@ info: | var callCount = 0; var f; f = async function*({a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/async-generator/dstr-named-dflt-obj-ptrn-rest-getter.js b/test/language/expressions/async-generator/dstr-named-dflt-obj-ptrn-rest-getter.js index 6864224861..aeab7cf306 100644 --- a/test/language/expressions/async-generator/dstr-named-dflt-obj-ptrn-rest-getter.js +++ b/test/language/expressions/async-generator/dstr-named-dflt-obj-ptrn-rest-getter.js @@ -23,13 +23,14 @@ var count = 0; var callCount = 0; var f; f = async function* h({...x} = { get v() { count++; return 2; } }) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/async-generator/dstr-named-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/async-generator/dstr-named-dflt-obj-ptrn-rest-skip-non-enumerable.js index c80810c212..245655139c 100644 --- a/test/language/expressions/async-generator/dstr-named-dflt-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/async-generator/dstr-named-dflt-obj-ptrn-rest-skip-non-enumerable.js @@ -24,18 +24,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var f; f = async function* h({...rest} = o) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/async-generator/dstr-named-dflt-obj-ptrn-rest-val-obj.js b/test/language/expressions/async-generator/dstr-named-dflt-obj-ptrn-rest-val-obj.js index 35794a96b8..a68be49d36 100644 --- a/test/language/expressions/async-generator/dstr-named-dflt-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/async-generator/dstr-named-dflt-obj-ptrn-rest-val-obj.js @@ -22,19 +22,22 @@ info: | var callCount = 0; var f; f = async function* h({a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/async-generator/dstr-named-obj-ptrn-rest-getter.js b/test/language/expressions/async-generator/dstr-named-obj-ptrn-rest-getter.js index 4dcfb80a99..29a109fa4c 100644 --- a/test/language/expressions/async-generator/dstr-named-obj-ptrn-rest-getter.js +++ b/test/language/expressions/async-generator/dstr-named-obj-ptrn-rest-getter.js @@ -23,13 +23,14 @@ var count = 0; var callCount = 0; var f; f = async function* h({...x}) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/async-generator/dstr-named-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/async-generator/dstr-named-obj-ptrn-rest-skip-non-enumerable.js index 833b8efddf..c9dd2ee2d2 100644 --- a/test/language/expressions/async-generator/dstr-named-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/async-generator/dstr-named-obj-ptrn-rest-skip-non-enumerable.js @@ -24,18 +24,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var f; f = async function* h({...rest}) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/async-generator/dstr-named-obj-ptrn-rest-val-obj.js b/test/language/expressions/async-generator/dstr-named-obj-ptrn-rest-val-obj.js index c4bdab50f5..5042c1bc60 100644 --- a/test/language/expressions/async-generator/dstr-named-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/async-generator/dstr-named-obj-ptrn-rest-val-obj.js @@ -22,19 +22,22 @@ info: | var callCount = 0; var f; f = async function* h({a, b, ...rest}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/async-generator/dstr-obj-ptrn-rest-getter.js b/test/language/expressions/async-generator/dstr-obj-ptrn-rest-getter.js index c0608dd190..2a2b879aea 100644 --- a/test/language/expressions/async-generator/dstr-obj-ptrn-rest-getter.js +++ b/test/language/expressions/async-generator/dstr-obj-ptrn-rest-getter.js @@ -23,13 +23,14 @@ var count = 0; var callCount = 0; var f; f = async function*({...x}) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/async-generator/dstr-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/async-generator/dstr-obj-ptrn-rest-skip-non-enumerable.js index 79c3bf1a1e..618646324e 100644 --- a/test/language/expressions/async-generator/dstr-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/async-generator/dstr-obj-ptrn-rest-skip-non-enumerable.js @@ -24,18 +24,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var f; f = async function*({...rest}) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/async-generator/dstr-obj-ptrn-rest-val-obj.js b/test/language/expressions/async-generator/dstr-obj-ptrn-rest-val-obj.js index 9b24916c04..fcd861d4fd 100644 --- a/test/language/expressions/async-generator/dstr-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/async-generator/dstr-obj-ptrn-rest-val-obj.js @@ -22,19 +22,22 @@ info: | var callCount = 0; var f; f = async function*({a, b, ...rest}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/call/spread-mult-obj-ident.js b/test/language/expressions/call/spread-mult-obj-ident.js index 4222e37adc..0d055b143b 100644 --- a/test/language/expressions/call/spread-mult-obj-ident.js +++ b/test/language/expressions/call/spread-mult-obj-ident.js @@ -38,27 +38,35 @@ let o = {c: 3, d: 4}; var callCount = 0; (function(obj) { - assert.sameValue(obj.a, 1); - assert.sameValue(obj.b, 2); - assert.sameValue(obj.c, 3); - assert.sameValue(obj.d, 4); assert.sameValue(Object.keys(obj).length, 4); - verifyEnumerable(obj, "a"); - verifyWritable(obj, "a"); - verifyConfigurable(obj, "a"); + verifyProperty(obj, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); - verifyEnumerable(obj, "b"); - verifyWritable(obj, "b"); - verifyConfigurable(obj, "b"); + verifyProperty(obj, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); - verifyEnumerable(obj, "c"); - verifyWritable(obj, "c"); - verifyConfigurable(obj, "c"); + verifyProperty(obj, "c", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); - verifyEnumerable(obj, "d"); - verifyWritable(obj, "d"); - verifyConfigurable(obj, "d"); + verifyProperty(obj, "d", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount += 1; }({a: 1, b: 2, ...o})); diff --git a/test/language/expressions/call/spread-obj-getter-descriptor.js b/test/language/expressions/call/spread-obj-getter-descriptor.js index 2f6524d5b7..cdf3bd2fe3 100644 --- a/test/language/expressions/call/spread-obj-getter-descriptor.js +++ b/test/language/expressions/call/spread-obj-getter-descriptor.js @@ -42,14 +42,16 @@ let o = { var callCount = 0; (function(obj) { - assert.sameValue(Object.getOwnPropertyDescriptor(obj, "a").value, 42); assert.sameValue(obj.c, 4); assert.sameValue(obj.d, 5); assert.sameValue(Object.keys(obj).length, 3); - verifyEnumerable(obj, "a"); - verifyWritable(obj, "a"); - verifyConfigurable(obj, "a"); + verifyProperty(obj, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 42 + }); callCount += 1; }({...o, c: 4, d: 5})); diff --git a/test/language/expressions/call/spread-obj-override-immutable.js b/test/language/expressions/call/spread-obj-override-immutable.js index 6453311aff..e00ff58c25 100644 --- a/test/language/expressions/call/spread-obj-override-immutable.js +++ b/test/language/expressions/call/spread-obj-override-immutable.js @@ -32,14 +32,19 @@ var callCount = 0; assert.sameValue(obj.a, 3) assert.sameValue(obj.b, 2); - verifyEnumerable(obj, "a"); - verifyWritable(obj, "a"); - verifyConfigurable(obj, "a"); - - verifyEnumerable(obj, "b"); - verifyWritable(obj, "b"); - verifyConfigurable(obj, "b"); + verifyProperty(obj, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(obj, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount += 1; }({...o, a: 3})); diff --git a/test/language/expressions/call/spread-sngl-obj-ident.js b/test/language/expressions/call/spread-sngl-obj-ident.js index 754ba9d565..530df15bf5 100644 --- a/test/language/expressions/call/spread-sngl-obj-ident.js +++ b/test/language/expressions/call/spread-sngl-obj-ident.js @@ -38,17 +38,21 @@ let o = {c: 3, d: 4}; var callCount = 0; (function(obj) { - assert.sameValue(obj.c, 3); - assert.sameValue(obj.d, 4); assert.sameValue(Object.keys(obj).length, 2); - verifyEnumerable(obj, "c"); - verifyWritable(obj, "c"); - verifyConfigurable(obj, "c"); + verifyProperty(obj, "c", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); - verifyEnumerable(obj, "d"); - verifyWritable(obj, "d"); - verifyConfigurable(obj, "d"); + verifyProperty(obj, "d", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount += 1; }({...o})); diff --git a/test/language/expressions/class/dstr-async-gen-meth-dflt-obj-ptrn-rest-getter.js b/test/language/expressions/class/dstr-async-gen-meth-dflt-obj-ptrn-rest-getter.js index 74f4f020a5..d93034905f 100644 --- a/test/language/expressions/class/dstr-async-gen-meth-dflt-obj-ptrn-rest-getter.js +++ b/test/language/expressions/class/dstr-async-gen-meth-dflt-obj-ptrn-rest-getter.js @@ -47,13 +47,14 @@ var count = 0; var callCount = 0; var C = class { async *method({...x} = { get v() { count++; return 2; } }) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-async-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/class/dstr-async-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js index 0dffbac4b6..7fb9b72056 100644 --- a/test/language/expressions/class/dstr-async-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/class/dstr-async-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js @@ -48,18 +48,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var C = class { async *method({...rest} = o) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-async-gen-meth-dflt-obj-ptrn-rest-val-obj.js b/test/language/expressions/class/dstr-async-gen-meth-dflt-obj-ptrn-rest-val-obj.js index a8e336590a..c6ad22a24a 100644 --- a/test/language/expressions/class/dstr-async-gen-meth-dflt-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/class/dstr-async-gen-meth-dflt-obj-ptrn-rest-val-obj.js @@ -46,19 +46,22 @@ info: | var callCount = 0; var C = class { async *method({a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-async-gen-meth-obj-ptrn-rest-getter.js b/test/language/expressions/class/dstr-async-gen-meth-obj-ptrn-rest-getter.js index f64dbbd5bb..3aa06629d0 100644 --- a/test/language/expressions/class/dstr-async-gen-meth-obj-ptrn-rest-getter.js +++ b/test/language/expressions/class/dstr-async-gen-meth-obj-ptrn-rest-getter.js @@ -47,13 +47,14 @@ var count = 0; var callCount = 0; var C = class { async *method({...x}) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-async-gen-meth-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/class/dstr-async-gen-meth-obj-ptrn-rest-skip-non-enumerable.js index 4e75c079c1..f6cae3d371 100644 --- a/test/language/expressions/class/dstr-async-gen-meth-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/class/dstr-async-gen-meth-obj-ptrn-rest-skip-non-enumerable.js @@ -48,18 +48,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var C = class { async *method({...rest}) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-async-gen-meth-obj-ptrn-rest-val-obj.js b/test/language/expressions/class/dstr-async-gen-meth-obj-ptrn-rest-val-obj.js index a161061696..cc289d476d 100644 --- a/test/language/expressions/class/dstr-async-gen-meth-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/class/dstr-async-gen-meth-obj-ptrn-rest-val-obj.js @@ -46,19 +46,22 @@ info: | var callCount = 0; var C = class { async *method({a, b, ...rest}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-async-gen-meth-static-dflt-obj-ptrn-rest-getter.js b/test/language/expressions/class/dstr-async-gen-meth-static-dflt-obj-ptrn-rest-getter.js index 90e220af63..a3b4839074 100644 --- a/test/language/expressions/class/dstr-async-gen-meth-static-dflt-obj-ptrn-rest-getter.js +++ b/test/language/expressions/class/dstr-async-gen-meth-static-dflt-obj-ptrn-rest-getter.js @@ -47,13 +47,14 @@ var count = 0; var callCount = 0; var C = class { static async *method({...x} = { get v() { count++; return 2; } }) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-async-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/class/dstr-async-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js index 7ccb9c47ea..2fde3ca1fc 100644 --- a/test/language/expressions/class/dstr-async-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/class/dstr-async-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js @@ -48,18 +48,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var C = class { static async *method({...rest} = o) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-async-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js b/test/language/expressions/class/dstr-async-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js index f408077df3..604716d02c 100644 --- a/test/language/expressions/class/dstr-async-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/class/dstr-async-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js @@ -46,19 +46,22 @@ info: | var callCount = 0; var C = class { static async *method({a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-async-gen-meth-static-obj-ptrn-rest-getter.js b/test/language/expressions/class/dstr-async-gen-meth-static-obj-ptrn-rest-getter.js index 0c5f003f5a..4198352b8c 100644 --- a/test/language/expressions/class/dstr-async-gen-meth-static-obj-ptrn-rest-getter.js +++ b/test/language/expressions/class/dstr-async-gen-meth-static-obj-ptrn-rest-getter.js @@ -47,13 +47,14 @@ var count = 0; var callCount = 0; var C = class { static async *method({...x}) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-async-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/class/dstr-async-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js index fec8f0e3d0..c6cee2e075 100644 --- a/test/language/expressions/class/dstr-async-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/class/dstr-async-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js @@ -48,18 +48,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var C = class { static async *method({...rest}) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-async-gen-meth-static-obj-ptrn-rest-val-obj.js b/test/language/expressions/class/dstr-async-gen-meth-static-obj-ptrn-rest-val-obj.js index dc6963eacd..3efa2bec1d 100644 --- a/test/language/expressions/class/dstr-async-gen-meth-static-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/class/dstr-async-gen-meth-static-obj-ptrn-rest-val-obj.js @@ -46,19 +46,22 @@ info: | var callCount = 0; var C = class { static async *method({a, b, ...rest}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js index 97cafc5822..26506eab21 100644 --- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js +++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js @@ -67,13 +67,14 @@ var count = 0; var callCount = 0; var C = class { *method({...x} = { get v() { count++; return 2; } }) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js index 520235c42e..6734b5f3df 100644 --- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js @@ -68,18 +68,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var C = class { *method({...rest} = o) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js index 2b1aff736d..ec6b8dc167 100644 --- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js @@ -66,19 +66,22 @@ info: | var callCount = 0; var C = class { *method({a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-getter.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-getter.js index 213fa9d196..ef9428c674 100644 --- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-getter.js +++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-getter.js @@ -67,13 +67,14 @@ var count = 0; var callCount = 0; var C = class { *method({...x}) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js index 05b576705c..8bb170f478 100644 --- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js @@ -68,18 +68,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var C = class { *method({...rest}) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-val-obj.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-val-obj.js index 4adc9cdcd0..ad6b0246dc 100644 --- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-val-obj.js @@ -66,19 +66,22 @@ info: | var callCount = 0; var C = class { *method({a, b, ...rest}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-getter.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-getter.js index d731f65009..c34f21ac95 100644 --- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-getter.js +++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-getter.js @@ -67,13 +67,14 @@ var count = 0; var callCount = 0; var C = class { static *method({...x} = { get v() { count++; return 2; } }) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js index 1fecf9c645..b59974c9bc 100644 --- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js @@ -68,18 +68,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var C = class { static *method({...rest} = o) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js index 24ac97c2b9..afdb1bda9a 100644 --- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js @@ -66,19 +66,22 @@ info: | var callCount = 0; var C = class { static *method({a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-getter.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-getter.js index 282d377b2b..d987839796 100644 --- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-getter.js +++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-getter.js @@ -67,13 +67,14 @@ var count = 0; var callCount = 0; var C = class { static *method({...x}) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js index a1557f6e53..e53d199578 100644 --- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js @@ -68,18 +68,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var C = class { static *method({...rest}) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-val-obj.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-val-obj.js index d6ad7d7628..18cec0c1c3 100644 --- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-val-obj.js @@ -66,19 +66,22 @@ info: | var callCount = 0; var C = class { static *method({a, b, ...rest}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-meth-dflt-obj-ptrn-rest-getter.js b/test/language/expressions/class/dstr-meth-dflt-obj-ptrn-rest-getter.js index a4f0dcb856..6f0fb01930 100644 --- a/test/language/expressions/class/dstr-meth-dflt-obj-ptrn-rest-getter.js +++ b/test/language/expressions/class/dstr-meth-dflt-obj-ptrn-rest-getter.js @@ -64,13 +64,14 @@ var count = 0; var callCount = 0; var C = class { method({...x} = { get v() { count++; return 2; } }) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/class/dstr-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js index 3d740e4e16..109b3d1c62 100644 --- a/test/language/expressions/class/dstr-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/class/dstr-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js @@ -65,18 +65,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var C = class { method({...rest} = o) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-meth-dflt-obj-ptrn-rest-val-obj.js b/test/language/expressions/class/dstr-meth-dflt-obj-ptrn-rest-val-obj.js index 67a3a5a1f1..a22db358ff 100644 --- a/test/language/expressions/class/dstr-meth-dflt-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/class/dstr-meth-dflt-obj-ptrn-rest-val-obj.js @@ -63,19 +63,22 @@ info: | var callCount = 0; var C = class { method({a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-meth-obj-ptrn-rest-getter.js b/test/language/expressions/class/dstr-meth-obj-ptrn-rest-getter.js index b30e2d01bd..502b11677c 100644 --- a/test/language/expressions/class/dstr-meth-obj-ptrn-rest-getter.js +++ b/test/language/expressions/class/dstr-meth-obj-ptrn-rest-getter.js @@ -64,13 +64,14 @@ var count = 0; var callCount = 0; var C = class { method({...x}) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-meth-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/class/dstr-meth-obj-ptrn-rest-skip-non-enumerable.js index ba6fe17c81..d764b34076 100644 --- a/test/language/expressions/class/dstr-meth-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/class/dstr-meth-obj-ptrn-rest-skip-non-enumerable.js @@ -65,18 +65,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var C = class { method({...rest}) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-meth-obj-ptrn-rest-val-obj.js b/test/language/expressions/class/dstr-meth-obj-ptrn-rest-val-obj.js index 0231c198ec..9599a7c8b8 100644 --- a/test/language/expressions/class/dstr-meth-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/class/dstr-meth-obj-ptrn-rest-val-obj.js @@ -63,19 +63,22 @@ info: | var callCount = 0; var C = class { method({a, b, ...rest}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-meth-static-dflt-obj-ptrn-rest-getter.js b/test/language/expressions/class/dstr-meth-static-dflt-obj-ptrn-rest-getter.js index 6e594dcbd2..3edbc01ba5 100644 --- a/test/language/expressions/class/dstr-meth-static-dflt-obj-ptrn-rest-getter.js +++ b/test/language/expressions/class/dstr-meth-static-dflt-obj-ptrn-rest-getter.js @@ -64,13 +64,14 @@ var count = 0; var callCount = 0; var C = class { static method({...x} = { get v() { count++; return 2; } }) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/class/dstr-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js index 939633bff8..963483c388 100644 --- a/test/language/expressions/class/dstr-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/class/dstr-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js @@ -65,18 +65,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var C = class { static method({...rest} = o) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-meth-static-dflt-obj-ptrn-rest-val-obj.js b/test/language/expressions/class/dstr-meth-static-dflt-obj-ptrn-rest-val-obj.js index c03eade41a..f1086e7584 100644 --- a/test/language/expressions/class/dstr-meth-static-dflt-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/class/dstr-meth-static-dflt-obj-ptrn-rest-val-obj.js @@ -63,19 +63,22 @@ info: | var callCount = 0; var C = class { static method({a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-meth-static-obj-ptrn-rest-getter.js b/test/language/expressions/class/dstr-meth-static-obj-ptrn-rest-getter.js index c2347a2574..2552dbd8e5 100644 --- a/test/language/expressions/class/dstr-meth-static-obj-ptrn-rest-getter.js +++ b/test/language/expressions/class/dstr-meth-static-obj-ptrn-rest-getter.js @@ -64,13 +64,14 @@ var count = 0; var callCount = 0; var C = class { static method({...x}) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-meth-static-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/class/dstr-meth-static-obj-ptrn-rest-skip-non-enumerable.js index f15350e515..07b6532478 100644 --- a/test/language/expressions/class/dstr-meth-static-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/class/dstr-meth-static-obj-ptrn-rest-skip-non-enumerable.js @@ -65,18 +65,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var C = class { static method({...rest}) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/class/dstr-meth-static-obj-ptrn-rest-val-obj.js b/test/language/expressions/class/dstr-meth-static-obj-ptrn-rest-val-obj.js index 76bc36bd40..984c894010 100644 --- a/test/language/expressions/class/dstr-meth-static-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/class/dstr-meth-static-obj-ptrn-rest-val-obj.js @@ -63,19 +63,22 @@ info: | var callCount = 0; var C = class { static method({a, b, ...rest}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/function/dstr-dflt-obj-ptrn-rest-getter.js b/test/language/expressions/function/dstr-dflt-obj-ptrn-rest-getter.js index dc447331da..1e9d9da151 100644 --- a/test/language/expressions/function/dstr-dflt-obj-ptrn-rest-getter.js +++ b/test/language/expressions/function/dstr-dflt-obj-ptrn-rest-getter.js @@ -44,13 +44,14 @@ var count = 0; var callCount = 0; var f; f = function({...x} = { get v() { count++; return 2; } }) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/function/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/function/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js index 8623d4f5f4..829540e961 100644 --- a/test/language/expressions/function/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/function/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js @@ -45,18 +45,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var f; f = function({...rest} = o) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/function/dstr-dflt-obj-ptrn-rest-val-obj.js b/test/language/expressions/function/dstr-dflt-obj-ptrn-rest-val-obj.js index a580a565ae..00a5ea9afb 100644 --- a/test/language/expressions/function/dstr-dflt-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/function/dstr-dflt-obj-ptrn-rest-val-obj.js @@ -43,19 +43,22 @@ info: | var callCount = 0; var f; f = function({a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/function/dstr-obj-ptrn-rest-getter.js b/test/language/expressions/function/dstr-obj-ptrn-rest-getter.js index 433bcbfaa7..269decb172 100644 --- a/test/language/expressions/function/dstr-obj-ptrn-rest-getter.js +++ b/test/language/expressions/function/dstr-obj-ptrn-rest-getter.js @@ -44,13 +44,14 @@ var count = 0; var callCount = 0; var f; f = function({...x}) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/function/dstr-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/function/dstr-obj-ptrn-rest-skip-non-enumerable.js index 989cedf661..d8023c80bf 100644 --- a/test/language/expressions/function/dstr-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/function/dstr-obj-ptrn-rest-skip-non-enumerable.js @@ -45,18 +45,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var f; f = function({...rest}) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/function/dstr-obj-ptrn-rest-val-obj.js b/test/language/expressions/function/dstr-obj-ptrn-rest-val-obj.js index 0f77c11c8d..b3eed1434e 100644 --- a/test/language/expressions/function/dstr-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/function/dstr-obj-ptrn-rest-val-obj.js @@ -43,19 +43,22 @@ info: | var callCount = 0; var f; f = function({a, b, ...rest}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-getter.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-getter.js index 8ebfd2c355..9e53ea8c5c 100644 --- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-getter.js +++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-getter.js @@ -44,13 +44,14 @@ var count = 0; var callCount = 0; var f; f = function*({...x} = { get v() { count++; return 2; } }) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js index 79be9ff7af..bbb228f659 100644 --- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js @@ -45,18 +45,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var f; f = function*({...rest} = o) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-val-obj.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-val-obj.js index 890142f083..5a38670cdb 100644 --- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-val-obj.js @@ -43,19 +43,22 @@ info: | var callCount = 0; var f; f = function*({a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/generators/dstr-obj-ptrn-rest-getter.js b/test/language/expressions/generators/dstr-obj-ptrn-rest-getter.js index 426af12caf..9ffbee0e0f 100644 --- a/test/language/expressions/generators/dstr-obj-ptrn-rest-getter.js +++ b/test/language/expressions/generators/dstr-obj-ptrn-rest-getter.js @@ -44,13 +44,14 @@ var count = 0; var callCount = 0; var f; f = function*({...x}) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/generators/dstr-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/generators/dstr-obj-ptrn-rest-skip-non-enumerable.js index 2fa4830ec1..4b1858a0b8 100644 --- a/test/language/expressions/generators/dstr-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/generators/dstr-obj-ptrn-rest-skip-non-enumerable.js @@ -45,18 +45,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var f; f = function*({...rest}) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/generators/dstr-obj-ptrn-rest-val-obj.js b/test/language/expressions/generators/dstr-obj-ptrn-rest-val-obj.js index 7f84d50eb6..3043dd5244 100644 --- a/test/language/expressions/generators/dstr-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/generators/dstr-obj-ptrn-rest-val-obj.js @@ -43,19 +43,22 @@ info: | var callCount = 0; var f; f = function*({a, b, ...rest}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; diff --git a/test/language/expressions/new/spread-mult-obj-ident.js b/test/language/expressions/new/spread-mult-obj-ident.js index 1387567b0a..b0d14bd474 100644 --- a/test/language/expressions/new/spread-mult-obj-ident.js +++ b/test/language/expressions/new/spread-mult-obj-ident.js @@ -37,27 +37,35 @@ let o = {c: 3, d: 4}; var callCount = 0; new function(obj) { - assert.sameValue(obj.a, 1); - assert.sameValue(obj.b, 2); - assert.sameValue(obj.c, 3); - assert.sameValue(obj.d, 4); assert.sameValue(Object.keys(obj).length, 4); - verifyEnumerable(obj, "a"); - verifyWritable(obj, "a"); - verifyConfigurable(obj, "a"); + verifyProperty(obj, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); - verifyEnumerable(obj, "b"); - verifyWritable(obj, "b"); - verifyConfigurable(obj, "b"); + verifyProperty(obj, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); - verifyEnumerable(obj, "c"); - verifyWritable(obj, "c"); - verifyConfigurable(obj, "c"); + verifyProperty(obj, "c", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); - verifyEnumerable(obj, "d"); - verifyWritable(obj, "d"); - verifyConfigurable(obj, "d"); + verifyProperty(obj, "d", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount += 1; }({a: 1, b: 2, ...o}); diff --git a/test/language/expressions/new/spread-obj-getter-descriptor.js b/test/language/expressions/new/spread-obj-getter-descriptor.js index 2ed552d92a..c3a3051877 100644 --- a/test/language/expressions/new/spread-obj-getter-descriptor.js +++ b/test/language/expressions/new/spread-obj-getter-descriptor.js @@ -41,14 +41,16 @@ let o = { var callCount = 0; new function(obj) { - assert.sameValue(Object.getOwnPropertyDescriptor(obj, "a").value, 42); assert.sameValue(obj.c, 4); assert.sameValue(obj.d, 5); assert.sameValue(Object.keys(obj).length, 3); - verifyEnumerable(obj, "a"); - verifyWritable(obj, "a"); - verifyConfigurable(obj, "a"); + verifyProperty(obj, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 42 + }); callCount += 1; }({...o, c: 4, d: 5}); diff --git a/test/language/expressions/new/spread-obj-override-immutable.js b/test/language/expressions/new/spread-obj-override-immutable.js index 3462cf0c11..aecd798f30 100644 --- a/test/language/expressions/new/spread-obj-override-immutable.js +++ b/test/language/expressions/new/spread-obj-override-immutable.js @@ -31,14 +31,19 @@ new function(obj) { assert.sameValue(obj.a, 3) assert.sameValue(obj.b, 2); - verifyEnumerable(obj, "a"); - verifyWritable(obj, "a"); - verifyConfigurable(obj, "a"); - - verifyEnumerable(obj, "b"); - verifyWritable(obj, "b"); - verifyConfigurable(obj, "b"); + verifyProperty(obj, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(obj, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount += 1; }({...o, a: 3}); diff --git a/test/language/expressions/new/spread-sngl-obj-ident.js b/test/language/expressions/new/spread-sngl-obj-ident.js index 5db69a0325..580df90666 100644 --- a/test/language/expressions/new/spread-sngl-obj-ident.js +++ b/test/language/expressions/new/spread-sngl-obj-ident.js @@ -37,17 +37,21 @@ let o = {c: 3, d: 4}; var callCount = 0; new function(obj) { - assert.sameValue(obj.c, 3); - assert.sameValue(obj.d, 4); assert.sameValue(Object.keys(obj).length, 2); - verifyEnumerable(obj, "c"); - verifyWritable(obj, "c"); - verifyConfigurable(obj, "c"); + verifyProperty(obj, "c", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); - verifyEnumerable(obj, "d"); - verifyWritable(obj, "d"); - verifyConfigurable(obj, "d"); + verifyProperty(obj, "d", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount += 1; }({...o}); diff --git a/test/language/expressions/object/dstr-async-gen-meth-dflt-obj-ptrn-rest-getter.js b/test/language/expressions/object/dstr-async-gen-meth-dflt-obj-ptrn-rest-getter.js index 13c2a09a65..8fcfa434e2 100644 --- a/test/language/expressions/object/dstr-async-gen-meth-dflt-obj-ptrn-rest-getter.js +++ b/test/language/expressions/object/dstr-async-gen-meth-dflt-obj-ptrn-rest-getter.js @@ -28,13 +28,14 @@ var count = 0; var callCount = 0; var obj = { async *method({...x} = { get v() { count++; return 2; } }) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/object/dstr-async-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/object/dstr-async-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js index b9f233cd99..a4f9d617b4 100644 --- a/test/language/expressions/object/dstr-async-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/object/dstr-async-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js @@ -29,18 +29,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var obj = { async *method({...rest} = o) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/object/dstr-async-gen-meth-dflt-obj-ptrn-rest-val-obj.js b/test/language/expressions/object/dstr-async-gen-meth-dflt-obj-ptrn-rest-val-obj.js index 90298cbb07..a1d5f45dca 100644 --- a/test/language/expressions/object/dstr-async-gen-meth-dflt-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/object/dstr-async-gen-meth-dflt-obj-ptrn-rest-val-obj.js @@ -27,19 +27,22 @@ info: | var callCount = 0; var obj = { async *method({a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/object/dstr-async-gen-meth-obj-ptrn-rest-getter.js b/test/language/expressions/object/dstr-async-gen-meth-obj-ptrn-rest-getter.js index ac2c46c265..ad96d17dff 100644 --- a/test/language/expressions/object/dstr-async-gen-meth-obj-ptrn-rest-getter.js +++ b/test/language/expressions/object/dstr-async-gen-meth-obj-ptrn-rest-getter.js @@ -28,13 +28,14 @@ var count = 0; var callCount = 0; var obj = { async *method({...x}) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/object/dstr-async-gen-meth-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/object/dstr-async-gen-meth-obj-ptrn-rest-skip-non-enumerable.js index 511deb6909..a98006273e 100644 --- a/test/language/expressions/object/dstr-async-gen-meth-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/object/dstr-async-gen-meth-obj-ptrn-rest-skip-non-enumerable.js @@ -29,18 +29,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var obj = { async *method({...rest}) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/object/dstr-async-gen-meth-obj-ptrn-rest-val-obj.js b/test/language/expressions/object/dstr-async-gen-meth-obj-ptrn-rest-val-obj.js index bc7f9a37c4..d07cfc9077 100644 --- a/test/language/expressions/object/dstr-async-gen-meth-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/object/dstr-async-gen-meth-obj-ptrn-rest-val-obj.js @@ -27,19 +27,22 @@ info: | var callCount = 0; var obj = { async *method({a, b, ...rest}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js index 259a29f00a..37fa32fe80 100644 --- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js +++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js @@ -49,13 +49,14 @@ var count = 0; var callCount = 0; var obj = { *method({...x} = { get v() { count++; return 2; } }) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js index a4f94da936..6bb033325a 100644 --- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js @@ -50,18 +50,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var obj = { *method({...rest} = o) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js index 34b870fc66..ff98c249cf 100644 --- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js @@ -48,19 +48,22 @@ info: | var callCount = 0; var obj = { *method({a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-getter.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-getter.js index c3b88af845..2aae1d4acf 100644 --- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-getter.js +++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-getter.js @@ -49,13 +49,14 @@ var count = 0; var callCount = 0; var obj = { *method({...x}) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js index 1f19e09127..5b4bd12391 100644 --- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js @@ -50,18 +50,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var obj = { *method({...rest}) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-val-obj.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-val-obj.js index b5cbb319b1..fe98c40331 100644 --- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-val-obj.js @@ -48,19 +48,22 @@ info: | var callCount = 0; var obj = { *method({a, b, ...rest}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/object/dstr-meth-dflt-obj-ptrn-rest-getter.js b/test/language/expressions/object/dstr-meth-dflt-obj-ptrn-rest-getter.js index 7832ada7c4..8ab5dfcc99 100644 --- a/test/language/expressions/object/dstr-meth-dflt-obj-ptrn-rest-getter.js +++ b/test/language/expressions/object/dstr-meth-dflt-obj-ptrn-rest-getter.js @@ -46,13 +46,14 @@ var count = 0; var callCount = 0; var obj = { method({...x} = { get v() { count++; return 2; } }) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/object/dstr-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/object/dstr-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js index 71d257f44b..f890febfb0 100644 --- a/test/language/expressions/object/dstr-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/object/dstr-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js @@ -47,18 +47,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var obj = { method({...rest} = o) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/object/dstr-meth-dflt-obj-ptrn-rest-val-obj.js b/test/language/expressions/object/dstr-meth-dflt-obj-ptrn-rest-val-obj.js index d99390f730..4a9589de2b 100644 --- a/test/language/expressions/object/dstr-meth-dflt-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/object/dstr-meth-dflt-obj-ptrn-rest-val-obj.js @@ -45,19 +45,22 @@ info: | var callCount = 0; var obj = { method({a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/object/dstr-meth-obj-ptrn-rest-getter.js b/test/language/expressions/object/dstr-meth-obj-ptrn-rest-getter.js index e797c36534..ec1da31383 100644 --- a/test/language/expressions/object/dstr-meth-obj-ptrn-rest-getter.js +++ b/test/language/expressions/object/dstr-meth-obj-ptrn-rest-getter.js @@ -46,13 +46,14 @@ var count = 0; var callCount = 0; var obj = { method({...x}) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/object/dstr-meth-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/object/dstr-meth-obj-ptrn-rest-skip-non-enumerable.js index c5af6b3c83..dc89536765 100644 --- a/test/language/expressions/object/dstr-meth-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/expressions/object/dstr-meth-obj-ptrn-rest-skip-non-enumerable.js @@ -47,18 +47,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; var obj = { method({...rest}) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/object/dstr-meth-obj-ptrn-rest-val-obj.js b/test/language/expressions/object/dstr-meth-obj-ptrn-rest-val-obj.js index 965f0ac1a1..2e8d904fa6 100644 --- a/test/language/expressions/object/dstr-meth-obj-ptrn-rest-val-obj.js +++ b/test/language/expressions/object/dstr-meth-obj-ptrn-rest-val-obj.js @@ -45,19 +45,22 @@ info: | var callCount = 0; var obj = { method({a, b, ...rest}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/expressions/super/call-spread-mult-obj-ident.js b/test/language/expressions/super/call-spread-mult-obj-ident.js index 28dd553495..8b056640ab 100644 --- a/test/language/expressions/super/call-spread-mult-obj-ident.js +++ b/test/language/expressions/super/call-spread-mult-obj-ident.js @@ -36,27 +36,35 @@ var callCount = 0; class Test262ParentClass { constructor(obj) { - assert.sameValue(obj.a, 1); - assert.sameValue(obj.b, 2); - assert.sameValue(obj.c, 3); - assert.sameValue(obj.d, 4); assert.sameValue(Object.keys(obj).length, 4); - verifyEnumerable(obj, "a"); - verifyWritable(obj, "a"); - verifyConfigurable(obj, "a"); + verifyProperty(obj, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); - verifyEnumerable(obj, "b"); - verifyWritable(obj, "b"); - verifyConfigurable(obj, "b"); + verifyProperty(obj, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); - verifyEnumerable(obj, "c"); - verifyWritable(obj, "c"); - verifyConfigurable(obj, "c"); + verifyProperty(obj, "c", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); - verifyEnumerable(obj, "d"); - verifyWritable(obj, "d"); - verifyConfigurable(obj, "d"); + verifyProperty(obj, "d", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount += 1; } } diff --git a/test/language/expressions/super/call-spread-obj-getter-descriptor.js b/test/language/expressions/super/call-spread-obj-getter-descriptor.js index 4653231053..2bc471acd9 100644 --- a/test/language/expressions/super/call-spread-obj-getter-descriptor.js +++ b/test/language/expressions/super/call-spread-obj-getter-descriptor.js @@ -40,14 +40,16 @@ var callCount = 0; class Test262ParentClass { constructor(obj) { - assert.sameValue(Object.getOwnPropertyDescriptor(obj, "a").value, 42); assert.sameValue(obj.c, 4); assert.sameValue(obj.d, 5); assert.sameValue(Object.keys(obj).length, 3); - verifyEnumerable(obj, "a"); - verifyWritable(obj, "a"); - verifyConfigurable(obj, "a"); + verifyProperty(obj, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 42 + }); callCount += 1; } } diff --git a/test/language/expressions/super/call-spread-obj-override-immutable.js b/test/language/expressions/super/call-spread-obj-override-immutable.js index 18df6b85da..666b9ff4da 100644 --- a/test/language/expressions/super/call-spread-obj-override-immutable.js +++ b/test/language/expressions/super/call-spread-obj-override-immutable.js @@ -30,14 +30,19 @@ class Test262ParentClass { assert.sameValue(obj.a, 3) assert.sameValue(obj.b, 2); - verifyEnumerable(obj, "a"); - verifyWritable(obj, "a"); - verifyConfigurable(obj, "a"); - - verifyEnumerable(obj, "b"); - verifyWritable(obj, "b"); - verifyConfigurable(obj, "b"); + verifyProperty(obj, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(obj, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount += 1; } } diff --git a/test/language/expressions/super/call-spread-sngl-obj-ident.js b/test/language/expressions/super/call-spread-sngl-obj-ident.js index c680387dab..fb5246c074 100644 --- a/test/language/expressions/super/call-spread-sngl-obj-ident.js +++ b/test/language/expressions/super/call-spread-sngl-obj-ident.js @@ -36,17 +36,21 @@ var callCount = 0; class Test262ParentClass { constructor(obj) { - assert.sameValue(obj.c, 3); - assert.sameValue(obj.d, 4); assert.sameValue(Object.keys(obj).length, 2); - verifyEnumerable(obj, "c"); - verifyWritable(obj, "c"); - verifyConfigurable(obj, "c"); + verifyProperty(obj, "c", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); - verifyEnumerable(obj, "d"); - verifyWritable(obj, "d"); - verifyConfigurable(obj, "d"); + verifyProperty(obj, "d", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount += 1; } } diff --git a/test/language/statements/async-generator/dstr-dflt-obj-ptrn-rest-getter.js b/test/language/statements/async-generator/dstr-dflt-obj-ptrn-rest-getter.js index aac4639ab6..4389b2381c 100644 --- a/test/language/statements/async-generator/dstr-dflt-obj-ptrn-rest-getter.js +++ b/test/language/statements/async-generator/dstr-dflt-obj-ptrn-rest-getter.js @@ -22,13 +22,14 @@ var count = 0; var callCount = 0; async function* f({...x} = { get v() { count++; return 2; } }) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; f().next().then(() => { diff --git a/test/language/statements/async-generator/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/async-generator/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js index 2552e67952..2616e52e92 100644 --- a/test/language/statements/async-generator/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/async-generator/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js @@ -23,18 +23,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; async function* f({...rest} = o) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; }; f().next().then(() => { diff --git a/test/language/statements/async-generator/dstr-dflt-obj-ptrn-rest-val-obj.js b/test/language/statements/async-generator/dstr-dflt-obj-ptrn-rest-val-obj.js index 4ffc3dc8bb..aaa1f28f65 100644 --- a/test/language/statements/async-generator/dstr-dflt-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/async-generator/dstr-dflt-obj-ptrn-rest-val-obj.js @@ -21,19 +21,22 @@ info: | var callCount = 0; async function* f({a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; f().next().then(() => { diff --git a/test/language/statements/async-generator/dstr-obj-ptrn-rest-getter.js b/test/language/statements/async-generator/dstr-obj-ptrn-rest-getter.js index 81030955e9..78eef1681d 100644 --- a/test/language/statements/async-generator/dstr-obj-ptrn-rest-getter.js +++ b/test/language/statements/async-generator/dstr-obj-ptrn-rest-getter.js @@ -22,13 +22,14 @@ var count = 0; var callCount = 0; async function* f({...x}) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; f({ get v() { count++; return 2; } }).next().then(() => { diff --git a/test/language/statements/async-generator/dstr-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/async-generator/dstr-obj-ptrn-rest-skip-non-enumerable.js index 33be4f3ad0..674cf2ae51 100644 --- a/test/language/statements/async-generator/dstr-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/async-generator/dstr-obj-ptrn-rest-skip-non-enumerable.js @@ -23,18 +23,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; async function* f({...rest}) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; }; f(o).next().then(() => { diff --git a/test/language/statements/async-generator/dstr-obj-ptrn-rest-val-obj.js b/test/language/statements/async-generator/dstr-obj-ptrn-rest-val-obj.js index 7421ff0e72..7e1d23529a 100644 --- a/test/language/statements/async-generator/dstr-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/async-generator/dstr-obj-ptrn-rest-val-obj.js @@ -21,19 +21,22 @@ info: | var callCount = 0; async function* f({a, b, ...rest}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; f({x: 1, y: 2, a: 5, b: 3}).next().then(() => { diff --git a/test/language/statements/class/dstr-async-gen-meth-dflt-obj-ptrn-rest-getter.js b/test/language/statements/class/dstr-async-gen-meth-dflt-obj-ptrn-rest-getter.js index 59d9f0da3c..15b4824a91 100644 --- a/test/language/statements/class/dstr-async-gen-meth-dflt-obj-ptrn-rest-getter.js +++ b/test/language/statements/class/dstr-async-gen-meth-dflt-obj-ptrn-rest-getter.js @@ -46,13 +46,14 @@ var count = 0; var callCount = 0; class C { async *method({...x} = { get v() { count++; return 2; } }) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-async-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/class/dstr-async-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js index 883c1d3aa5..342a1e6461 100644 --- a/test/language/statements/class/dstr-async-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/class/dstr-async-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js @@ -47,18 +47,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; class C { async *method({...rest} = o) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-async-gen-meth-dflt-obj-ptrn-rest-val-obj.js b/test/language/statements/class/dstr-async-gen-meth-dflt-obj-ptrn-rest-val-obj.js index 02e82a3be9..8ec94df6a3 100644 --- a/test/language/statements/class/dstr-async-gen-meth-dflt-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/class/dstr-async-gen-meth-dflt-obj-ptrn-rest-val-obj.js @@ -45,19 +45,22 @@ info: | var callCount = 0; class C { async *method({a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-async-gen-meth-obj-ptrn-rest-getter.js b/test/language/statements/class/dstr-async-gen-meth-obj-ptrn-rest-getter.js index c39b3f70df..0f147f520e 100644 --- a/test/language/statements/class/dstr-async-gen-meth-obj-ptrn-rest-getter.js +++ b/test/language/statements/class/dstr-async-gen-meth-obj-ptrn-rest-getter.js @@ -46,13 +46,14 @@ var count = 0; var callCount = 0; class C { async *method({...x}) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-async-gen-meth-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/class/dstr-async-gen-meth-obj-ptrn-rest-skip-non-enumerable.js index f2a3237224..970e18d101 100644 --- a/test/language/statements/class/dstr-async-gen-meth-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/class/dstr-async-gen-meth-obj-ptrn-rest-skip-non-enumerable.js @@ -47,18 +47,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; class C { async *method({...rest}) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-async-gen-meth-obj-ptrn-rest-val-obj.js b/test/language/statements/class/dstr-async-gen-meth-obj-ptrn-rest-val-obj.js index 2599b5d88a..80340f21e4 100644 --- a/test/language/statements/class/dstr-async-gen-meth-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/class/dstr-async-gen-meth-obj-ptrn-rest-val-obj.js @@ -45,19 +45,22 @@ info: | var callCount = 0; class C { async *method({a, b, ...rest}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-async-gen-meth-static-dflt-obj-ptrn-rest-getter.js b/test/language/statements/class/dstr-async-gen-meth-static-dflt-obj-ptrn-rest-getter.js index 0cc2d2487d..0d3e142ccc 100644 --- a/test/language/statements/class/dstr-async-gen-meth-static-dflt-obj-ptrn-rest-getter.js +++ b/test/language/statements/class/dstr-async-gen-meth-static-dflt-obj-ptrn-rest-getter.js @@ -46,13 +46,14 @@ var count = 0; var callCount = 0; class C { static async *method({...x} = { get v() { count++; return 2; } }) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-async-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/class/dstr-async-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js index 573173d47b..85ceaff861 100644 --- a/test/language/statements/class/dstr-async-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/class/dstr-async-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js @@ -47,18 +47,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; class C { static async *method({...rest} = o) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-async-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js b/test/language/statements/class/dstr-async-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js index ad540b09d6..da672cf601 100644 --- a/test/language/statements/class/dstr-async-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/class/dstr-async-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js @@ -45,19 +45,22 @@ info: | var callCount = 0; class C { static async *method({a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-async-gen-meth-static-obj-ptrn-rest-getter.js b/test/language/statements/class/dstr-async-gen-meth-static-obj-ptrn-rest-getter.js index 3ba6dcb8b7..b2f6c4d0f1 100644 --- a/test/language/statements/class/dstr-async-gen-meth-static-obj-ptrn-rest-getter.js +++ b/test/language/statements/class/dstr-async-gen-meth-static-obj-ptrn-rest-getter.js @@ -46,13 +46,14 @@ var count = 0; var callCount = 0; class C { static async *method({...x}) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-async-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/class/dstr-async-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js index 7b8514046c..0dc5879038 100644 --- a/test/language/statements/class/dstr-async-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/class/dstr-async-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js @@ -47,18 +47,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; class C { static async *method({...rest}) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-async-gen-meth-static-obj-ptrn-rest-val-obj.js b/test/language/statements/class/dstr-async-gen-meth-static-obj-ptrn-rest-val-obj.js index 22205f924e..3e0362cbef 100644 --- a/test/language/statements/class/dstr-async-gen-meth-static-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/class/dstr-async-gen-meth-static-obj-ptrn-rest-val-obj.js @@ -45,19 +45,22 @@ info: | var callCount = 0; class C { static async *method({a, b, ...rest}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js index b4019f0a2c..3ae0abf4b8 100644 --- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js +++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js @@ -65,13 +65,14 @@ var count = 0; var callCount = 0; class C { *method({...x} = { get v() { count++; return 2; } }) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js index 527b34281d..49f298594c 100644 --- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js @@ -66,18 +66,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; class C { *method({...rest} = o) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js index 1eff40a88c..d7ee3fae78 100644 --- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js @@ -64,19 +64,22 @@ info: | var callCount = 0; class C { *method({a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-getter.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-getter.js index 26f7651d0f..9c6ea7737c 100644 --- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-getter.js +++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-getter.js @@ -65,13 +65,14 @@ var count = 0; var callCount = 0; class C { *method({...x}) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js index fb5637901f..b5e51e2071 100644 --- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js @@ -66,18 +66,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; class C { *method({...rest}) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-val-obj.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-val-obj.js index dd7ef5ad5b..1303ddc0e2 100644 --- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-val-obj.js @@ -64,19 +64,22 @@ info: | var callCount = 0; class C { *method({a, b, ...rest}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-getter.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-getter.js index bfa3b86ccc..7238f57922 100644 --- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-getter.js +++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-getter.js @@ -65,13 +65,14 @@ var count = 0; var callCount = 0; class C { static *method({...x} = { get v() { count++; return 2; } }) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js index 86df8646a1..b87d3add9c 100644 --- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js @@ -66,18 +66,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; class C { static *method({...rest} = o) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js index b4aa6e53c3..5905dcafde 100644 --- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js @@ -64,19 +64,22 @@ info: | var callCount = 0; class C { static *method({a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-getter.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-getter.js index 0a824a510c..39272633ee 100644 --- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-getter.js +++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-getter.js @@ -65,13 +65,14 @@ var count = 0; var callCount = 0; class C { static *method({...x}) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js index 35a5263ede..1fd6bbff9e 100644 --- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js @@ -66,18 +66,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; class C { static *method({...rest}) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-val-obj.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-val-obj.js index d7291a0ccd..ae41f85693 100644 --- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-val-obj.js @@ -64,19 +64,22 @@ info: | var callCount = 0; class C { static *method({a, b, ...rest}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-meth-dflt-obj-ptrn-rest-getter.js b/test/language/statements/class/dstr-meth-dflt-obj-ptrn-rest-getter.js index b4ea9760d1..aabcedff06 100644 --- a/test/language/statements/class/dstr-meth-dflt-obj-ptrn-rest-getter.js +++ b/test/language/statements/class/dstr-meth-dflt-obj-ptrn-rest-getter.js @@ -63,13 +63,14 @@ var count = 0; var callCount = 0; class C { method({...x} = { get v() { count++; return 2; } }) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/class/dstr-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js index fb1e288b5d..03ff7a9551 100644 --- a/test/language/statements/class/dstr-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/class/dstr-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js @@ -64,18 +64,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; class C { method({...rest} = o) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-meth-dflt-obj-ptrn-rest-val-obj.js b/test/language/statements/class/dstr-meth-dflt-obj-ptrn-rest-val-obj.js index 3ea3797feb..4b38f2bf38 100644 --- a/test/language/statements/class/dstr-meth-dflt-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/class/dstr-meth-dflt-obj-ptrn-rest-val-obj.js @@ -62,19 +62,22 @@ info: | var callCount = 0; class C { method({a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-meth-obj-ptrn-rest-getter.js b/test/language/statements/class/dstr-meth-obj-ptrn-rest-getter.js index 57392a6708..f563033333 100644 --- a/test/language/statements/class/dstr-meth-obj-ptrn-rest-getter.js +++ b/test/language/statements/class/dstr-meth-obj-ptrn-rest-getter.js @@ -63,13 +63,14 @@ var count = 0; var callCount = 0; class C { method({...x}) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-meth-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/class/dstr-meth-obj-ptrn-rest-skip-non-enumerable.js index 3a54e20a5b..4c4714fc2a 100644 --- a/test/language/statements/class/dstr-meth-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/class/dstr-meth-obj-ptrn-rest-skip-non-enumerable.js @@ -64,18 +64,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; class C { method({...rest}) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-meth-obj-ptrn-rest-val-obj.js b/test/language/statements/class/dstr-meth-obj-ptrn-rest-val-obj.js index 996409e385..867b594dbf 100644 --- a/test/language/statements/class/dstr-meth-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/class/dstr-meth-obj-ptrn-rest-val-obj.js @@ -62,19 +62,22 @@ info: | var callCount = 0; class C { method({a, b, ...rest}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-meth-static-dflt-obj-ptrn-rest-getter.js b/test/language/statements/class/dstr-meth-static-dflt-obj-ptrn-rest-getter.js index 60e3ad5a66..ced099c946 100644 --- a/test/language/statements/class/dstr-meth-static-dflt-obj-ptrn-rest-getter.js +++ b/test/language/statements/class/dstr-meth-static-dflt-obj-ptrn-rest-getter.js @@ -63,13 +63,14 @@ var count = 0; var callCount = 0; class C { static method({...x} = { get v() { count++; return 2; } }) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/class/dstr-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js index 402e4c1462..4445ede214 100644 --- a/test/language/statements/class/dstr-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/class/dstr-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js @@ -64,18 +64,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; class C { static method({...rest} = o) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-meth-static-dflt-obj-ptrn-rest-val-obj.js b/test/language/statements/class/dstr-meth-static-dflt-obj-ptrn-rest-val-obj.js index 787934bfc1..9964f181c9 100644 --- a/test/language/statements/class/dstr-meth-static-dflt-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/class/dstr-meth-static-dflt-obj-ptrn-rest-val-obj.js @@ -62,19 +62,22 @@ info: | var callCount = 0; class C { static method({a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-meth-static-obj-ptrn-rest-getter.js b/test/language/statements/class/dstr-meth-static-obj-ptrn-rest-getter.js index b8b09f789c..489bc62b63 100644 --- a/test/language/statements/class/dstr-meth-static-obj-ptrn-rest-getter.js +++ b/test/language/statements/class/dstr-meth-static-obj-ptrn-rest-getter.js @@ -63,13 +63,14 @@ var count = 0; var callCount = 0; class C { static method({...x}) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-meth-static-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/class/dstr-meth-static-obj-ptrn-rest-skip-non-enumerable.js index 80926ce49a..9f61f73434 100644 --- a/test/language/statements/class/dstr-meth-static-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/class/dstr-meth-static-obj-ptrn-rest-skip-non-enumerable.js @@ -64,18 +64,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; class C { static method({...rest}) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/class/dstr-meth-static-obj-ptrn-rest-val-obj.js b/test/language/statements/class/dstr-meth-static-obj-ptrn-rest-val-obj.js index 4bc850d83b..776c71b27a 100644 --- a/test/language/statements/class/dstr-meth-static-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/class/dstr-meth-static-obj-ptrn-rest-val-obj.js @@ -62,19 +62,22 @@ info: | var callCount = 0; class C { static method({a, b, ...rest}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; } }; diff --git a/test/language/statements/const/dstr-obj-ptrn-rest-getter.js b/test/language/statements/const/dstr-obj-ptrn-rest-getter.js index 49f2c783e0..89391796c3 100644 --- a/test/language/statements/const/dstr-obj-ptrn-rest-getter.js +++ b/test/language/statements/const/dstr-obj-ptrn-rest-getter.js @@ -22,10 +22,11 @@ var count = 0; const {...x} = { get v() { count++; return 2; } }; -assert.sameValue(x.v, 2); assert.sameValue(count, 1); -verifyEnumerable(x, "v"); -verifyWritable(x, "v"); -verifyConfigurable(x, "v"); - +verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 +}); diff --git a/test/language/statements/const/dstr-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/const/dstr-obj-ptrn-rest-skip-non-enumerable.js index 00728d2727..0677c91bb0 100644 --- a/test/language/statements/const/dstr-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/const/dstr-obj-ptrn-rest-skip-non-enumerable.js @@ -23,15 +23,18 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); const {...rest} = o; -assert.sameValue(rest.a, 3); -assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); -verifyEnumerable(rest, "a"); -verifyWritable(rest, "a"); -verifyConfigurable(rest, "a"); - -verifyEnumerable(rest, "b"); -verifyWritable(rest, "b"); -verifyConfigurable(rest, "b"); +verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 +}); +verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 +}); diff --git a/test/language/statements/const/dstr-obj-ptrn-rest-val-obj.js b/test/language/statements/const/dstr-obj-ptrn-rest-val-obj.js index dd6ebdf75f..cf1df026db 100644 --- a/test/language/statements/const/dstr-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/const/dstr-obj-ptrn-rest-val-obj.js @@ -21,16 +21,19 @@ info: | const {a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}; -assert.sameValue(rest.x, 1); -assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); -verifyEnumerable(rest, "x"); -verifyWritable(rest, "x"); -verifyConfigurable(rest, "x"); - -verifyEnumerable(rest, "y"); -verifyWritable(rest, "y"); -verifyConfigurable(rest, "y"); +verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 +}); +verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 +}); diff --git a/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-init-fn-name-arrow.js b/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-init-fn-name-arrow.js index d37fbbd1cb..550254d2c8 100644 --- a/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-init-fn-name-arrow.js +++ b/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-init-fn-name-arrow.js @@ -38,10 +38,12 @@ let arrow; let iterCount = 0; async function fn() { for await ([ arrow = () => {} ] of [[]]) { - assert.sameValue(arrow.name, 'arrow'); - verifyNotEnumerable(arrow, 'name'); - verifyNotWritable(arrow, 'name'); - verifyConfigurable(arrow, 'name'); + verifyProperty(arrow, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'arrow' + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-init-fn-name-class.js b/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-init-fn-name-class.js index c346600877..f1882eb1f0 100644 --- a/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-init-fn-name-class.js +++ b/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-init-fn-name-class.js @@ -41,10 +41,12 @@ async function fn() { assert(xCls.name !== 'xCls'); assert(xCls2.name !== 'xCls2'); - assert.sameValue(cls.name, 'cls'); - verifyNotEnumerable(cls, 'name'); - verifyNotWritable(cls, 'name'); - verifyConfigurable(cls, 'name'); + verifyProperty(cls, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'cls' + }); iterCount += 1; diff --git a/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-init-fn-name-cover.js b/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-init-fn-name-cover.js index a689324a9d..302cbc574c 100644 --- a/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-init-fn-name-cover.js +++ b/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-init-fn-name-cover.js @@ -40,10 +40,12 @@ async function fn() { for await ([ xCover = (0, function() {}), cover = (function() {}) ] of [[]]) { assert(xCover.name !== 'xCover'); - assert.sameValue(cover.name, 'cover'); - verifyNotEnumerable(cover, 'name'); - verifyNotWritable(cover, 'name'); - verifyConfigurable(cover, 'name'); + verifyProperty(cover, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'cover' + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-init-fn-name-fn.js b/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-init-fn-name-fn.js index c914dfe56b..42dc8cbab9 100644 --- a/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-init-fn-name-fn.js +++ b/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-init-fn-name-fn.js @@ -40,10 +40,12 @@ async function fn() { for await ([ xFnexp = function x() {}, fnexp = function() {} ] of [[]]) { assert(xFnexp.name !== 'xFnexp'); - assert.sameValue(fnexp.name, 'fnexp'); - verifyNotEnumerable(fnexp, 'name'); - verifyNotWritable(fnexp, 'name'); - verifyConfigurable(fnexp, 'name'); + verifyProperty(fnexp, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'fnexp' + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-init-fn-name-gen.js b/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-init-fn-name-gen.js index 99a8a98152..9ffb4c23e4 100644 --- a/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-init-fn-name-gen.js +++ b/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-init-fn-name-gen.js @@ -40,10 +40,12 @@ async function fn() { for await ([ xGen = function* x() {}, gen = function*() {} ] of [[]]) { assert.notSameValue(xGen.name, 'xGen'); - assert.sameValue(gen.name, 'gen'); - verifyNotEnumerable(gen, 'name'); - verifyNotWritable(gen, 'name'); - verifyConfigurable(gen, 'name'); + verifyProperty(gen, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'gen' + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-arrow.js b/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-arrow.js index 47b035cba2..b742b713f7 100644 --- a/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-arrow.js +++ b/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-arrow.js @@ -39,10 +39,12 @@ let arrow; let iterCount = 0; async function fn() { for await ({ arrow = () => {} } of [{}]) { - assert.sameValue(arrow.name, 'arrow'); - verifyNotEnumerable(arrow, 'name'); - verifyNotWritable(arrow, 'name'); - verifyConfigurable(arrow, 'name'); + verifyProperty(arrow, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'arrow' + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-class.js b/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-class.js index c61d422d2c..b9f24ee4b7 100644 --- a/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-class.js +++ b/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-class.js @@ -42,10 +42,12 @@ async function fn() { assert.notSameValue(xCls.name, 'xCls'); assert.notSameValue(xCls2.name, 'xCls2'); - assert.sameValue(cls.name, 'cls'); - verifyNotEnumerable(cls, 'name'); - verifyNotWritable(cls, 'name'); - verifyConfigurable(cls, 'name'); + verifyProperty(cls, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'cls' + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-cover.js b/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-cover.js index 7d26765d6a..5f75d698de 100644 --- a/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-cover.js +++ b/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-cover.js @@ -41,10 +41,12 @@ async function fn() { for await ({ xCover = (0, function() {}), cover = (function() {}) } of [{}]) { assert.notSameValue(xCover.name, 'xCover'); - assert.sameValue(cover.name, 'cover'); - verifyNotEnumerable(cover, 'name'); - verifyNotWritable(cover, 'name'); - verifyConfigurable(cover, 'name'); + verifyProperty(cover, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'cover' + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-fn.js b/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-fn.js index 64243ddd29..4917b83cf0 100644 --- a/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-fn.js +++ b/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-fn.js @@ -41,10 +41,12 @@ async function fn() { for await ({ xFnexp = function x() {}, fnexp = function() {} } of [{}]) { assert.notSameValue(xFnexp.name, 'xFnexp'); - assert.sameValue(fnexp.name, 'fnexp'); - verifyNotEnumerable(fnexp, 'name'); - verifyNotWritable(fnexp, 'name'); - verifyConfigurable(fnexp, 'name'); + verifyProperty(fnexp, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'fnexp' + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-gen.js index bd47ab1ec2..eb7d73085d 100644 --- a/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-gen.js +++ b/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-gen.js @@ -41,10 +41,12 @@ async function fn() { for await ({ xGen = function* x() {}, gen = function*() {} } of [{}]) { assert.notSameValue(xGen.name, 'xGen'); - assert.sameValue(gen.name, 'gen'); - verifyNotEnumerable(gen, 'name'); - verifyNotWritable(gen, 'name'); - verifyConfigurable(gen, 'name'); + verifyProperty(gen, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'gen' + }); iterCount += 1; diff --git a/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-elem-init-fn-name-arrow.js b/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-elem-init-fn-name-arrow.js index 4410301b6c..bf3d33b671 100644 --- a/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-elem-init-fn-name-arrow.js +++ b/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-elem-init-fn-name-arrow.js @@ -38,10 +38,12 @@ let arrow; let iterCount = 0; async function fn() { for await ({ x: arrow = () => {} } of [{}]) { - assert.sameValue(arrow.name, 'arrow'); - verifyNotEnumerable(arrow, 'name'); - verifyNotWritable(arrow, 'name'); - verifyConfigurable(arrow, 'name'); + verifyProperty(arrow, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'arrow' + }); iterCount += 1; } } diff --git a/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-elem-init-fn-name-class.js b/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-elem-init-fn-name-class.js index adb6ee92df..b34881225a 100644 --- a/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-elem-init-fn-name-class.js +++ b/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-elem-init-fn-name-class.js @@ -41,10 +41,12 @@ async function fn() { assert.notSameValue(xCls.name, 'xCls'); assert.notSameValue(xCls2.name, 'xCls2'); - assert.sameValue(cls.name, 'cls'); - verifyNotEnumerable(cls, 'name'); - verifyNotWritable(cls, 'name'); - verifyConfigurable(cls, 'name'); + verifyProperty(cls, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'cls' + }); iterCount += 1; } } diff --git a/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-elem-init-fn-name-cover.js b/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-elem-init-fn-name-cover.js index e525e3533f..a68827ea14 100644 --- a/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-elem-init-fn-name-cover.js +++ b/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-elem-init-fn-name-cover.js @@ -40,10 +40,12 @@ async function fn() { for await ({ x: xCover = (0, function() {}), x: cover = (function() {}) } of [{}]) { assert.notSameValue(xCover.name, 'xCover'); - assert.sameValue(cover.name, 'cover'); - verifyNotEnumerable(cover, 'name'); - verifyNotWritable(cover, 'name'); - verifyConfigurable(cover, 'name'); + verifyProperty(cover, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'cover' + }); iterCount += 1; } } diff --git a/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-elem-init-fn-name-fn.js b/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-elem-init-fn-name-fn.js index 3967466cbb..cf2184b56e 100644 --- a/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-elem-init-fn-name-fn.js +++ b/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-elem-init-fn-name-fn.js @@ -40,10 +40,12 @@ async function fn() { for await ({ x: xFnexp = function x() {}, x: fnexp = function() {} } of [{}]) { assert.notSameValue(xFnexp.name, 'xFnexp'); - assert.sameValue(fnexp.name, 'fnexp'); - verifyNotEnumerable(fnexp, 'name'); - verifyNotWritable(fnexp, 'name'); - verifyConfigurable(fnexp, 'name'); + verifyProperty(fnexp, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'fnexp' + }); iterCount += 1; } } diff --git a/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-elem-init-fn-name-gen.js b/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-elem-init-fn-name-gen.js index a1bc7b21f2..53cfcafc7d 100644 --- a/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-elem-init-fn-name-gen.js +++ b/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-elem-init-fn-name-gen.js @@ -40,10 +40,12 @@ async function fn() { for await ({ x: xGen = function* x() {}, x: gen = function*() {} } of [{}]) { assert.notSameValue(xGen.name, 'xGen'); - assert.sameValue(gen.name, 'gen'); - verifyNotEnumerable(gen, 'name'); - verifyNotWritable(gen, 'name'); - verifyConfigurable(gen, 'name'); + verifyProperty(gen, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'gen' + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-decl-dstr-obj-rest-descriptors.js b/test/language/statements/for-await-of/async-func-decl-dstr-obj-rest-descriptors.js index e7ddc432d4..f14a0fa3df 100644 --- a/test/language/statements/for-await-of/async-func-decl-dstr-obj-rest-descriptors.js +++ b/test/language/statements/for-await-of/async-func-decl-dstr-obj-rest-descriptors.js @@ -33,16 +33,19 @@ Object.defineProperty(obj, "b", { value: 4, writable: false, enumerable: true }) let iterCount = 0; async function fn() { for await ({...rest} of [obj]) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); iterCount += 1; } } diff --git a/test/language/statements/for-await-of/async-func-decl-dstr-obj-rest-getter.js b/test/language/statements/for-await-of/async-func-decl-dstr-obj-rest-getter.js index 3d277d5d02..5506f1255a 100644 --- a/test/language/statements/for-await-of/async-func-decl-dstr-obj-rest-getter.js +++ b/test/language/statements/for-await-of/async-func-decl-dstr-obj-rest-getter.js @@ -31,12 +31,14 @@ let count = 0; let iterCount = 0; async function fn() { for await ({...x} of [{ get v() { count++; return 2; } }]) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-decl-dstr-obj-rest-skip-non-enumerable.js b/test/language/statements/for-await-of/async-func-decl-dstr-obj-rest-skip-non-enumerable.js index 8f5416ab04..f9671a06b6 100644 --- a/test/language/statements/for-await-of/async-func-decl-dstr-obj-rest-skip-non-enumerable.js +++ b/test/language/statements/for-await-of/async-func-decl-dstr-obj-rest-skip-non-enumerable.js @@ -32,17 +32,21 @@ Object.defineProperty(obj, "x", { value: 4, enumerable: false }); let iterCount = 0; async function fn() { for await ({...rest} of [obj]) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(Object.getOwnPropertyDescriptor(rest, "x"), undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-decl-dstr-obj-rest-to-property.js b/test/language/statements/for-await-of/async-func-decl-dstr-obj-rest-to-property.js index 1a38884c3e..a54dd9fd26 100644 --- a/test/language/statements/for-await-of/async-func-decl-dstr-obj-rest-to-property.js +++ b/test/language/statements/for-await-of/async-func-decl-dstr-obj-rest-to-property.js @@ -33,9 +33,11 @@ async function fn() { assert.sameValue(src.y.x, 1); assert.sameValue(src.y.y, 2); - verifyEnumerable(src, "y"); - verifyWritable(src, "y"); - verifyConfigurable(src, "y"); + verifyProperty(src, "y", { + enumerable: true, + writable: true, + configurable: true + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-decl-dstr-obj-rest-valid-object.js b/test/language/statements/for-await-of/async-func-decl-dstr-obj-rest-valid-object.js index cef75b021b..27a2ece280 100644 --- a/test/language/statements/for-await-of/async-func-decl-dstr-obj-rest-valid-object.js +++ b/test/language/statements/for-await-of/async-func-decl-dstr-obj-rest-valid-object.js @@ -31,18 +31,22 @@ let rest, a, b; let iterCount = 0; async function fn() { for await ({a, b, ...rest} of [{x: 1, y: 2, a: 5, b: 3}]) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-dstr-const-async-obj-ptrn-rest-getter.js b/test/language/statements/for-await-of/async-func-dstr-const-async-obj-ptrn-rest-getter.js index a55e98df7c..5c98dc839c 100644 --- a/test/language/statements/for-await-of/async-func-dstr-const-async-obj-ptrn-rest-getter.js +++ b/test/language/statements/for-await-of/async-func-dstr-const-async-obj-ptrn-rest-getter.js @@ -48,10 +48,12 @@ async function fn() { assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-dstr-const-async-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/for-await-of/async-func-dstr-const-async-obj-ptrn-rest-skip-non-enumerable.js index 5c21293502..02b4e73dc5 100644 --- a/test/language/statements/for-await-of/async-func-dstr-const-async-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/for-await-of/async-func-dstr-const-async-obj-ptrn-rest-skip-non-enumerable.js @@ -50,14 +50,19 @@ async function fn() { assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-dstr-const-async-obj-ptrn-rest-val-obj.js b/test/language/statements/for-await-of/async-func-dstr-const-async-obj-ptrn-rest-val-obj.js index e4c95c22b3..0e7656e225 100644 --- a/test/language/statements/for-await-of/async-func-dstr-const-async-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/for-await-of/async-func-dstr-const-async-obj-ptrn-rest-val-obj.js @@ -44,19 +44,22 @@ var asyncIter = (async function*() { async function fn() { for await (const {a, b, ...rest} of asyncIter) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-dstr-const-obj-ptrn-rest-getter.js b/test/language/statements/for-await-of/async-func-dstr-const-obj-ptrn-rest-getter.js index 4bbb88b0ff..d5da6fb122 100644 --- a/test/language/statements/for-await-of/async-func-dstr-const-obj-ptrn-rest-getter.js +++ b/test/language/statements/for-await-of/async-func-dstr-const-obj-ptrn-rest-getter.js @@ -45,10 +45,12 @@ async function fn() { assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-dstr-const-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/for-await-of/async-func-dstr-const-obj-ptrn-rest-skip-non-enumerable.js index b619c4ab87..6de33058ad 100644 --- a/test/language/statements/for-await-of/async-func-dstr-const-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/for-await-of/async-func-dstr-const-obj-ptrn-rest-skip-non-enumerable.js @@ -47,14 +47,19 @@ async function fn() { assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-dstr-const-obj-ptrn-rest-val-obj.js b/test/language/statements/for-await-of/async-func-dstr-const-obj-ptrn-rest-val-obj.js index e1eeb5dfdc..831b928e86 100644 --- a/test/language/statements/for-await-of/async-func-dstr-const-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/for-await-of/async-func-dstr-const-obj-ptrn-rest-val-obj.js @@ -41,19 +41,22 @@ var iterCount = 0; async function fn() { for await (const {a, b, ...rest} of [{x: 1, y: 2, a: 5, b: 3}]) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-dstr-let-async-obj-ptrn-rest-getter.js b/test/language/statements/for-await-of/async-func-dstr-let-async-obj-ptrn-rest-getter.js index c1ea7beb2b..245c027e9f 100644 --- a/test/language/statements/for-await-of/async-func-dstr-let-async-obj-ptrn-rest-getter.js +++ b/test/language/statements/for-await-of/async-func-dstr-let-async-obj-ptrn-rest-getter.js @@ -48,10 +48,12 @@ async function fn() { assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-dstr-let-async-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/for-await-of/async-func-dstr-let-async-obj-ptrn-rest-skip-non-enumerable.js index d36b5fb8b3..b5d4a10049 100644 --- a/test/language/statements/for-await-of/async-func-dstr-let-async-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/for-await-of/async-func-dstr-let-async-obj-ptrn-rest-skip-non-enumerable.js @@ -50,14 +50,19 @@ async function fn() { assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-dstr-let-async-obj-ptrn-rest-val-obj.js b/test/language/statements/for-await-of/async-func-dstr-let-async-obj-ptrn-rest-val-obj.js index e5e3d99db1..df6f6b628f 100644 --- a/test/language/statements/for-await-of/async-func-dstr-let-async-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/for-await-of/async-func-dstr-let-async-obj-ptrn-rest-val-obj.js @@ -44,19 +44,22 @@ var asyncIter = (async function*() { async function fn() { for await (let {a, b, ...rest} of asyncIter) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-dstr-let-obj-ptrn-rest-getter.js b/test/language/statements/for-await-of/async-func-dstr-let-obj-ptrn-rest-getter.js index 891538b3f5..3f8ba0c6d0 100644 --- a/test/language/statements/for-await-of/async-func-dstr-let-obj-ptrn-rest-getter.js +++ b/test/language/statements/for-await-of/async-func-dstr-let-obj-ptrn-rest-getter.js @@ -45,10 +45,12 @@ async function fn() { assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-dstr-let-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/for-await-of/async-func-dstr-let-obj-ptrn-rest-skip-non-enumerable.js index 840ba6cc9c..aff733ee8b 100644 --- a/test/language/statements/for-await-of/async-func-dstr-let-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/for-await-of/async-func-dstr-let-obj-ptrn-rest-skip-non-enumerable.js @@ -47,14 +47,19 @@ async function fn() { assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-dstr-let-obj-ptrn-rest-val-obj.js b/test/language/statements/for-await-of/async-func-dstr-let-obj-ptrn-rest-val-obj.js index c5410f346f..7fce4dee08 100644 --- a/test/language/statements/for-await-of/async-func-dstr-let-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/for-await-of/async-func-dstr-let-obj-ptrn-rest-val-obj.js @@ -41,19 +41,22 @@ var iterCount = 0; async function fn() { for await (let {a, b, ...rest} of [{x: 1, y: 2, a: 5, b: 3}]) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-dstr-var-async-obj-ptrn-rest-getter.js b/test/language/statements/for-await-of/async-func-dstr-var-async-obj-ptrn-rest-getter.js index b66863ad6b..b94604e014 100644 --- a/test/language/statements/for-await-of/async-func-dstr-var-async-obj-ptrn-rest-getter.js +++ b/test/language/statements/for-await-of/async-func-dstr-var-async-obj-ptrn-rest-getter.js @@ -48,10 +48,12 @@ async function fn() { assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-dstr-var-async-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/for-await-of/async-func-dstr-var-async-obj-ptrn-rest-skip-non-enumerable.js index 5d5dba0d06..e5bda488cf 100644 --- a/test/language/statements/for-await-of/async-func-dstr-var-async-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/for-await-of/async-func-dstr-var-async-obj-ptrn-rest-skip-non-enumerable.js @@ -50,14 +50,19 @@ async function fn() { assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-dstr-var-async-obj-ptrn-rest-val-obj.js b/test/language/statements/for-await-of/async-func-dstr-var-async-obj-ptrn-rest-val-obj.js index d52a1b6697..4f408e6b28 100644 --- a/test/language/statements/for-await-of/async-func-dstr-var-async-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/for-await-of/async-func-dstr-var-async-obj-ptrn-rest-val-obj.js @@ -44,19 +44,22 @@ var asyncIter = (async function*() { async function fn() { for await (var {a, b, ...rest} of asyncIter) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-dstr-var-obj-ptrn-rest-getter.js b/test/language/statements/for-await-of/async-func-dstr-var-obj-ptrn-rest-getter.js index 0216926657..30d34d6c64 100644 --- a/test/language/statements/for-await-of/async-func-dstr-var-obj-ptrn-rest-getter.js +++ b/test/language/statements/for-await-of/async-func-dstr-var-obj-ptrn-rest-getter.js @@ -42,10 +42,12 @@ async function fn() { assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-dstr-var-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/for-await-of/async-func-dstr-var-obj-ptrn-rest-skip-non-enumerable.js index ddbf1c1e3f..b642d002ed 100644 --- a/test/language/statements/for-await-of/async-func-dstr-var-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/for-await-of/async-func-dstr-var-obj-ptrn-rest-skip-non-enumerable.js @@ -44,14 +44,19 @@ async function fn() { assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-func-dstr-var-obj-ptrn-rest-val-obj.js b/test/language/statements/for-await-of/async-func-dstr-var-obj-ptrn-rest-val-obj.js index 943fa84a7f..6630d4be6e 100644 --- a/test/language/statements/for-await-of/async-func-dstr-var-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/for-await-of/async-func-dstr-var-obj-ptrn-rest-val-obj.js @@ -38,19 +38,22 @@ var iterCount = 0; async function fn() { for await (var {a, b, ...rest} of [{x: 1, y: 2, a: 5, b: 3}]) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-init-fn-name-arrow.js b/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-init-fn-name-arrow.js index ca79b10077..661707a6da 100644 --- a/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-init-fn-name-arrow.js +++ b/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-init-fn-name-arrow.js @@ -38,10 +38,12 @@ let arrow; let iterCount = 0; async function * fn() { for await ([ arrow = () => {} ] of [[]]) { - assert.sameValue(arrow.name, 'arrow'); - verifyNotEnumerable(arrow, 'name'); - verifyNotWritable(arrow, 'name'); - verifyConfigurable(arrow, 'name'); + verifyProperty(arrow, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'arrow' + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-init-fn-name-class.js b/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-init-fn-name-class.js index 571f68c379..ae34727f9f 100644 --- a/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-init-fn-name-class.js +++ b/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-init-fn-name-class.js @@ -41,10 +41,12 @@ async function * fn() { assert(xCls.name !== 'xCls'); assert(xCls2.name !== 'xCls2'); - assert.sameValue(cls.name, 'cls'); - verifyNotEnumerable(cls, 'name'); - verifyNotWritable(cls, 'name'); - verifyConfigurable(cls, 'name'); + verifyProperty(cls, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'cls' + }); iterCount += 1; diff --git a/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-init-fn-name-cover.js b/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-init-fn-name-cover.js index 0e64a556bf..e44da37be4 100644 --- a/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-init-fn-name-cover.js +++ b/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-init-fn-name-cover.js @@ -40,10 +40,12 @@ async function * fn() { for await ([ xCover = (0, function() {}), cover = (function() {}) ] of [[]]) { assert(xCover.name !== 'xCover'); - assert.sameValue(cover.name, 'cover'); - verifyNotEnumerable(cover, 'name'); - verifyNotWritable(cover, 'name'); - verifyConfigurable(cover, 'name'); + verifyProperty(cover, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'cover' + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-init-fn-name-fn.js b/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-init-fn-name-fn.js index 220dafebe1..b736274041 100644 --- a/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-init-fn-name-fn.js +++ b/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-init-fn-name-fn.js @@ -40,10 +40,12 @@ async function * fn() { for await ([ xFnexp = function x() {}, fnexp = function() {} ] of [[]]) { assert(xFnexp.name !== 'xFnexp'); - assert.sameValue(fnexp.name, 'fnexp'); - verifyNotEnumerable(fnexp, 'name'); - verifyNotWritable(fnexp, 'name'); - verifyConfigurable(fnexp, 'name'); + verifyProperty(fnexp, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'fnexp' + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-init-fn-name-gen.js b/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-init-fn-name-gen.js index 0d2967d037..00953fe4a2 100644 --- a/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-init-fn-name-gen.js +++ b/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-init-fn-name-gen.js @@ -40,10 +40,12 @@ async function * fn() { for await ([ xGen = function* x() {}, gen = function*() {} ] of [[]]) { assert.notSameValue(xGen.name, 'xGen'); - assert.sameValue(gen.name, 'gen'); - verifyNotEnumerable(gen, 'name'); - verifyNotWritable(gen, 'name'); - verifyConfigurable(gen, 'name'); + verifyProperty(gen, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'gen' + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-arrow.js b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-arrow.js index 7579a790d3..494511dd7c 100644 --- a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-arrow.js +++ b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-arrow.js @@ -39,10 +39,12 @@ let arrow; let iterCount = 0; async function * fn() { for await ({ arrow = () => {} } of [{}]) { - assert.sameValue(arrow.name, 'arrow'); - verifyNotEnumerable(arrow, 'name'); - verifyNotWritable(arrow, 'name'); - verifyConfigurable(arrow, 'name'); + verifyProperty(arrow, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'arrow' + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-class.js b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-class.js index 3527600879..4c41eaf946 100644 --- a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-class.js +++ b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-class.js @@ -42,10 +42,12 @@ async function * fn() { assert.notSameValue(xCls.name, 'xCls'); assert.notSameValue(xCls2.name, 'xCls2'); - assert.sameValue(cls.name, 'cls'); - verifyNotEnumerable(cls, 'name'); - verifyNotWritable(cls, 'name'); - verifyConfigurable(cls, 'name'); + verifyProperty(cls, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'cls' + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-cover.js b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-cover.js index de402137d6..2dec732812 100644 --- a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-cover.js +++ b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-cover.js @@ -41,10 +41,12 @@ async function * fn() { for await ({ xCover = (0, function() {}), cover = (function() {}) } of [{}]) { assert.notSameValue(xCover.name, 'xCover'); - assert.sameValue(cover.name, 'cover'); - verifyNotEnumerable(cover, 'name'); - verifyNotWritable(cover, 'name'); - verifyConfigurable(cover, 'name'); + verifyProperty(cover, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'cover' + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-fn.js b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-fn.js index ecc562de9c..c8d52fd77f 100644 --- a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-fn.js +++ b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-fn.js @@ -41,10 +41,12 @@ async function * fn() { for await ({ xFnexp = function x() {}, fnexp = function() {} } of [{}]) { assert.notSameValue(xFnexp.name, 'xFnexp'); - assert.sameValue(fnexp.name, 'fnexp'); - verifyNotEnumerable(fnexp, 'name'); - verifyNotWritable(fnexp, 'name'); - verifyConfigurable(fnexp, 'name'); + verifyProperty(fnexp, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'fnexp' + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-gen.js index 513ded20ca..4015dfe72a 100644 --- a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-gen.js +++ b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-gen.js @@ -41,10 +41,12 @@ async function * fn() { for await ({ xGen = function* x() {}, gen = function*() {} } of [{}]) { assert.notSameValue(xGen.name, 'xGen'); - assert.sameValue(gen.name, 'gen'); - verifyNotEnumerable(gen, 'name'); - verifyNotWritable(gen, 'name'); - verifyConfigurable(gen, 'name'); + verifyProperty(gen, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'gen' + }); iterCount += 1; diff --git a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-elem-init-fn-name-arrow.js b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-elem-init-fn-name-arrow.js index e538199580..e87d555fa7 100644 --- a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-elem-init-fn-name-arrow.js +++ b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-elem-init-fn-name-arrow.js @@ -38,10 +38,12 @@ let arrow; let iterCount = 0; async function * fn() { for await ({ x: arrow = () => {} } of [{}]) { - assert.sameValue(arrow.name, 'arrow'); - verifyNotEnumerable(arrow, 'name'); - verifyNotWritable(arrow, 'name'); - verifyConfigurable(arrow, 'name'); + verifyProperty(arrow, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'arrow' + }); iterCount += 1; } } diff --git a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-elem-init-fn-name-class.js b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-elem-init-fn-name-class.js index f5226d2a6e..1e00ddeff9 100644 --- a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-elem-init-fn-name-class.js +++ b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-elem-init-fn-name-class.js @@ -41,10 +41,12 @@ async function * fn() { assert.notSameValue(xCls.name, 'xCls'); assert.notSameValue(xCls2.name, 'xCls2'); - assert.sameValue(cls.name, 'cls'); - verifyNotEnumerable(cls, 'name'); - verifyNotWritable(cls, 'name'); - verifyConfigurable(cls, 'name'); + verifyProperty(cls, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'cls' + }); iterCount += 1; } } diff --git a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-elem-init-fn-name-cover.js b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-elem-init-fn-name-cover.js index 6f8eeaddae..96d295b86e 100644 --- a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-elem-init-fn-name-cover.js +++ b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-elem-init-fn-name-cover.js @@ -40,10 +40,12 @@ async function * fn() { for await ({ x: xCover = (0, function() {}), x: cover = (function() {}) } of [{}]) { assert.notSameValue(xCover.name, 'xCover'); - assert.sameValue(cover.name, 'cover'); - verifyNotEnumerable(cover, 'name'); - verifyNotWritable(cover, 'name'); - verifyConfigurable(cover, 'name'); + verifyProperty(cover, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'cover' + }); iterCount += 1; } } diff --git a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-elem-init-fn-name-fn.js b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-elem-init-fn-name-fn.js index 19117fb53b..578683fe61 100644 --- a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-elem-init-fn-name-fn.js +++ b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-elem-init-fn-name-fn.js @@ -40,10 +40,12 @@ async function * fn() { for await ({ x: xFnexp = function x() {}, x: fnexp = function() {} } of [{}]) { assert.notSameValue(xFnexp.name, 'xFnexp'); - assert.sameValue(fnexp.name, 'fnexp'); - verifyNotEnumerable(fnexp, 'name'); - verifyNotWritable(fnexp, 'name'); - verifyConfigurable(fnexp, 'name'); + verifyProperty(fnexp, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'fnexp' + }); iterCount += 1; } } diff --git a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-elem-init-fn-name-gen.js b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-elem-init-fn-name-gen.js index 123a0b1256..2f45edec33 100644 --- a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-elem-init-fn-name-gen.js +++ b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-elem-init-fn-name-gen.js @@ -40,10 +40,12 @@ async function * fn() { for await ({ x: xGen = function* x() {}, x: gen = function*() {} } of [{}]) { assert.notSameValue(xGen.name, 'xGen'); - assert.sameValue(gen.name, 'gen'); - verifyNotEnumerable(gen, 'name'); - verifyNotWritable(gen, 'name'); - verifyConfigurable(gen, 'name'); + verifyProperty(gen, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'gen' + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-rest-descriptors.js b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-rest-descriptors.js index 2b7d6457d5..f09b3b08b7 100644 --- a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-rest-descriptors.js +++ b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-rest-descriptors.js @@ -33,16 +33,19 @@ Object.defineProperty(obj, "b", { value: 4, writable: false, enumerable: true }) let iterCount = 0; async function * fn() { for await ({...rest} of [obj]) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); iterCount += 1; } } diff --git a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-rest-getter.js b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-rest-getter.js index 9b3a527c63..2634c36444 100644 --- a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-rest-getter.js +++ b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-rest-getter.js @@ -31,12 +31,14 @@ let count = 0; let iterCount = 0; async function * fn() { for await ({...x} of [{ get v() { count++; return 2; } }]) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-rest-skip-non-enumerable.js b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-rest-skip-non-enumerable.js index 41e2fa3ab7..cbcb3203e0 100644 --- a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-rest-skip-non-enumerable.js +++ b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-rest-skip-non-enumerable.js @@ -32,17 +32,21 @@ Object.defineProperty(obj, "x", { value: 4, enumerable: false }); let iterCount = 0; async function * fn() { for await ({...rest} of [obj]) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(Object.getOwnPropertyDescriptor(rest, "x"), undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-rest-to-property.js b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-rest-to-property.js index c8dee82d6a..572097d2a8 100644 --- a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-rest-to-property.js +++ b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-rest-to-property.js @@ -33,9 +33,11 @@ async function * fn() { assert.sameValue(src.y.x, 1); assert.sameValue(src.y.y, 2); - verifyEnumerable(src, "y"); - verifyWritable(src, "y"); - verifyConfigurable(src, "y"); + verifyProperty(src, "y", { + enumerable: true, + writable: true, + configurable: true + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-rest-valid-object.js b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-rest-valid-object.js index fa701621cd..d42cc4ddb7 100644 --- a/test/language/statements/for-await-of/async-gen-decl-dstr-obj-rest-valid-object.js +++ b/test/language/statements/for-await-of/async-gen-decl-dstr-obj-rest-valid-object.js @@ -31,18 +31,22 @@ let rest, a, b; let iterCount = 0; async function * fn() { for await ({a, b, ...rest} of [{x: 1, y: 2, a: 5, b: 3}]) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-dstr-const-async-obj-ptrn-rest-getter.js b/test/language/statements/for-await-of/async-gen-dstr-const-async-obj-ptrn-rest-getter.js index 4cbc6f46e6..18016f73ca 100644 --- a/test/language/statements/for-await-of/async-gen-dstr-const-async-obj-ptrn-rest-getter.js +++ b/test/language/statements/for-await-of/async-gen-dstr-const-async-obj-ptrn-rest-getter.js @@ -48,10 +48,12 @@ async function *fn() { assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-dstr-const-async-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/for-await-of/async-gen-dstr-const-async-obj-ptrn-rest-skip-non-enumerable.js index 0c6882f2a6..36aaf1efbc 100644 --- a/test/language/statements/for-await-of/async-gen-dstr-const-async-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/for-await-of/async-gen-dstr-const-async-obj-ptrn-rest-skip-non-enumerable.js @@ -50,14 +50,19 @@ async function *fn() { assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-dstr-const-async-obj-ptrn-rest-val-obj.js b/test/language/statements/for-await-of/async-gen-dstr-const-async-obj-ptrn-rest-val-obj.js index f1eb5f5abd..9324b7db92 100644 --- a/test/language/statements/for-await-of/async-gen-dstr-const-async-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/for-await-of/async-gen-dstr-const-async-obj-ptrn-rest-val-obj.js @@ -44,19 +44,22 @@ var asyncIter = (async function*() { async function *fn() { for await (const {a, b, ...rest} of asyncIter) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-dstr-const-obj-ptrn-rest-getter.js b/test/language/statements/for-await-of/async-gen-dstr-const-obj-ptrn-rest-getter.js index 3285763ffb..64d02525cc 100644 --- a/test/language/statements/for-await-of/async-gen-dstr-const-obj-ptrn-rest-getter.js +++ b/test/language/statements/for-await-of/async-gen-dstr-const-obj-ptrn-rest-getter.js @@ -45,10 +45,12 @@ async function *fn() { assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-dstr-const-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/for-await-of/async-gen-dstr-const-obj-ptrn-rest-skip-non-enumerable.js index fc238c55c6..a8c5fe50e4 100644 --- a/test/language/statements/for-await-of/async-gen-dstr-const-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/for-await-of/async-gen-dstr-const-obj-ptrn-rest-skip-non-enumerable.js @@ -47,14 +47,19 @@ async function *fn() { assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-dstr-const-obj-ptrn-rest-val-obj.js b/test/language/statements/for-await-of/async-gen-dstr-const-obj-ptrn-rest-val-obj.js index a43c7411b1..f333dc5859 100644 --- a/test/language/statements/for-await-of/async-gen-dstr-const-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/for-await-of/async-gen-dstr-const-obj-ptrn-rest-val-obj.js @@ -41,19 +41,22 @@ var iterCount = 0; async function *fn() { for await (const {a, b, ...rest} of [{x: 1, y: 2, a: 5, b: 3}]) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-dstr-let-async-obj-ptrn-rest-getter.js b/test/language/statements/for-await-of/async-gen-dstr-let-async-obj-ptrn-rest-getter.js index 497a95c8ed..d5d2e5ce45 100644 --- a/test/language/statements/for-await-of/async-gen-dstr-let-async-obj-ptrn-rest-getter.js +++ b/test/language/statements/for-await-of/async-gen-dstr-let-async-obj-ptrn-rest-getter.js @@ -48,10 +48,12 @@ async function *fn() { assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-dstr-let-async-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/for-await-of/async-gen-dstr-let-async-obj-ptrn-rest-skip-non-enumerable.js index 03c817114e..9db1309c44 100644 --- a/test/language/statements/for-await-of/async-gen-dstr-let-async-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/for-await-of/async-gen-dstr-let-async-obj-ptrn-rest-skip-non-enumerable.js @@ -50,14 +50,19 @@ async function *fn() { assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-dstr-let-async-obj-ptrn-rest-val-obj.js b/test/language/statements/for-await-of/async-gen-dstr-let-async-obj-ptrn-rest-val-obj.js index 72ffe96188..4615f02538 100644 --- a/test/language/statements/for-await-of/async-gen-dstr-let-async-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/for-await-of/async-gen-dstr-let-async-obj-ptrn-rest-val-obj.js @@ -44,19 +44,22 @@ var asyncIter = (async function*() { async function *fn() { for await (let {a, b, ...rest} of asyncIter) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-dstr-let-obj-ptrn-rest-getter.js b/test/language/statements/for-await-of/async-gen-dstr-let-obj-ptrn-rest-getter.js index 106588bfe8..574a87c385 100644 --- a/test/language/statements/for-await-of/async-gen-dstr-let-obj-ptrn-rest-getter.js +++ b/test/language/statements/for-await-of/async-gen-dstr-let-obj-ptrn-rest-getter.js @@ -45,10 +45,12 @@ async function *fn() { assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-dstr-let-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/for-await-of/async-gen-dstr-let-obj-ptrn-rest-skip-non-enumerable.js index 92dd4d8c1c..565f2f0743 100644 --- a/test/language/statements/for-await-of/async-gen-dstr-let-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/for-await-of/async-gen-dstr-let-obj-ptrn-rest-skip-non-enumerable.js @@ -47,14 +47,19 @@ async function *fn() { assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-dstr-let-obj-ptrn-rest-val-obj.js b/test/language/statements/for-await-of/async-gen-dstr-let-obj-ptrn-rest-val-obj.js index 486a915ac5..6dd22589f9 100644 --- a/test/language/statements/for-await-of/async-gen-dstr-let-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/for-await-of/async-gen-dstr-let-obj-ptrn-rest-val-obj.js @@ -41,19 +41,22 @@ var iterCount = 0; async function *fn() { for await (let {a, b, ...rest} of [{x: 1, y: 2, a: 5, b: 3}]) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-dstr-var-async-obj-ptrn-rest-getter.js b/test/language/statements/for-await-of/async-gen-dstr-var-async-obj-ptrn-rest-getter.js index c0a8ee6b43..bbe7fb50cb 100644 --- a/test/language/statements/for-await-of/async-gen-dstr-var-async-obj-ptrn-rest-getter.js +++ b/test/language/statements/for-await-of/async-gen-dstr-var-async-obj-ptrn-rest-getter.js @@ -48,10 +48,12 @@ async function *fn() { assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-dstr-var-async-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/for-await-of/async-gen-dstr-var-async-obj-ptrn-rest-skip-non-enumerable.js index 2126cab5df..fab3a92aad 100644 --- a/test/language/statements/for-await-of/async-gen-dstr-var-async-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/for-await-of/async-gen-dstr-var-async-obj-ptrn-rest-skip-non-enumerable.js @@ -50,14 +50,19 @@ async function *fn() { assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-dstr-var-async-obj-ptrn-rest-val-obj.js b/test/language/statements/for-await-of/async-gen-dstr-var-async-obj-ptrn-rest-val-obj.js index 3de3cfe6ca..9184a6c257 100644 --- a/test/language/statements/for-await-of/async-gen-dstr-var-async-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/for-await-of/async-gen-dstr-var-async-obj-ptrn-rest-val-obj.js @@ -44,19 +44,22 @@ var asyncIter = (async function*() { async function *fn() { for await (var {a, b, ...rest} of asyncIter) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-dstr-var-obj-ptrn-rest-getter.js b/test/language/statements/for-await-of/async-gen-dstr-var-obj-ptrn-rest-getter.js index 2f44b1d8eb..cd08642c70 100644 --- a/test/language/statements/for-await-of/async-gen-dstr-var-obj-ptrn-rest-getter.js +++ b/test/language/statements/for-await-of/async-gen-dstr-var-obj-ptrn-rest-getter.js @@ -42,10 +42,12 @@ async function *fn() { assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-dstr-var-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/for-await-of/async-gen-dstr-var-obj-ptrn-rest-skip-non-enumerable.js index 86590f05a2..da6a2c6eee 100644 --- a/test/language/statements/for-await-of/async-gen-dstr-var-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/for-await-of/async-gen-dstr-var-obj-ptrn-rest-skip-non-enumerable.js @@ -44,14 +44,19 @@ async function *fn() { assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); iterCount += 1; } diff --git a/test/language/statements/for-await-of/async-gen-dstr-var-obj-ptrn-rest-val-obj.js b/test/language/statements/for-await-of/async-gen-dstr-var-obj-ptrn-rest-val-obj.js index bc73068432..0931dffd55 100644 --- a/test/language/statements/for-await-of/async-gen-dstr-var-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/for-await-of/async-gen-dstr-var-obj-ptrn-rest-val-obj.js @@ -38,19 +38,22 @@ var iterCount = 0; async function *fn() { for await (var {a, b, ...rest} of [{x: 1, y: 2, a: 5, b: 3}]) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-of/dstr-array-elem-init-fn-name-arrow.js b/test/language/statements/for-of/dstr-array-elem-init-fn-name-arrow.js index 459ebab6f4..03761c0ba7 100644 --- a/test/language/statements/for-of/dstr-array-elem-init-fn-name-arrow.js +++ b/test/language/statements/for-of/dstr-array-elem-init-fn-name-arrow.js @@ -41,10 +41,12 @@ var arrow; var counter = 0; for ([ arrow = () => {} ] of [[]]) { - assert.sameValue(arrow.name, 'arrow'); - verifyNotEnumerable(arrow, 'name'); - verifyNotWritable(arrow, 'name'); - verifyConfigurable(arrow, 'name'); + verifyProperty(arrow, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'arrow' + }); counter += 1; } diff --git a/test/language/statements/for-of/dstr-array-elem-init-fn-name-class.js b/test/language/statements/for-of/dstr-array-elem-init-fn-name-class.js index 9b4ff87983..b354249d31 100644 --- a/test/language/statements/for-of/dstr-array-elem-init-fn-name-class.js +++ b/test/language/statements/for-of/dstr-array-elem-init-fn-name-class.js @@ -44,10 +44,12 @@ for ([ xCls = class x {}, cls = class {}, xCls2 = class { static name() {} } ] o assert(xCls.name !== 'xCls'); assert(xCls2.name !== 'xCls2'); - assert.sameValue(cls.name, 'cls'); - verifyNotEnumerable(cls, 'name'); - verifyNotWritable(cls, 'name'); - verifyConfigurable(cls, 'name'); + verifyProperty(cls, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'cls' + }); counter += 1; } diff --git a/test/language/statements/for-of/dstr-array-elem-init-fn-name-cover.js b/test/language/statements/for-of/dstr-array-elem-init-fn-name-cover.js index bafaded3e2..4b147af036 100644 --- a/test/language/statements/for-of/dstr-array-elem-init-fn-name-cover.js +++ b/test/language/statements/for-of/dstr-array-elem-init-fn-name-cover.js @@ -43,10 +43,12 @@ var counter = 0; for ([ xCover = (0, function() {}), cover = (function() {}) ] of [[]]) { assert(xCover.name !== 'xCover'); - assert.sameValue(cover.name, 'cover'); - verifyNotEnumerable(cover, 'name'); - verifyNotWritable(cover, 'name'); - verifyConfigurable(cover, 'name'); + verifyProperty(cover, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'cover' + }); counter += 1; } diff --git a/test/language/statements/for-of/dstr-array-elem-init-fn-name-fn.js b/test/language/statements/for-of/dstr-array-elem-init-fn-name-fn.js index 3fd4ce331e..ee2b628893 100644 --- a/test/language/statements/for-of/dstr-array-elem-init-fn-name-fn.js +++ b/test/language/statements/for-of/dstr-array-elem-init-fn-name-fn.js @@ -43,10 +43,12 @@ var counter = 0; for ([ xFn = function x() {}, fn = function() {} ] of [[]]) { assert(xFn.name !== 'xFn'); - assert.sameValue(fn.name, 'fn'); - verifyNotEnumerable(fn, 'name'); - verifyNotWritable(fn, 'name'); - verifyConfigurable(fn, 'name'); + verifyProperty(fn, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'fn' + }); counter += 1; } diff --git a/test/language/statements/for-of/dstr-array-elem-init-fn-name-gen.js b/test/language/statements/for-of/dstr-array-elem-init-fn-name-gen.js index e51d7bc2c5..8f8f02e17e 100644 --- a/test/language/statements/for-of/dstr-array-elem-init-fn-name-gen.js +++ b/test/language/statements/for-of/dstr-array-elem-init-fn-name-gen.js @@ -43,10 +43,12 @@ var counter = 0; for ([ xGen = function* x() {}, gen = function*() {} ] of [[]]) { assert.notSameValue(xGen.name, 'xGen'); - assert.sameValue(gen.name, 'gen'); - verifyNotEnumerable(gen, 'name'); - verifyNotWritable(gen, 'name'); - verifyConfigurable(gen, 'name'); + verifyProperty(gen, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'gen' + }); counter += 1; } diff --git a/test/language/statements/for-of/dstr-const-obj-ptrn-rest-getter.js b/test/language/statements/for-of/dstr-const-obj-ptrn-rest-getter.js index 40fcdd00e3..3043b40f9f 100644 --- a/test/language/statements/for-of/dstr-const-obj-ptrn-rest-getter.js +++ b/test/language/statements/for-of/dstr-const-obj-ptrn-rest-getter.js @@ -42,13 +42,14 @@ var count = 0; var iterCount = 0; for (const {...x} of [{ get v() { count++; return 2; } }]) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-of/dstr-const-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/for-of/dstr-const-obj-ptrn-rest-skip-non-enumerable.js index b20191bda2..4cc5e8f04a 100644 --- a/test/language/statements/for-of/dstr-const-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/for-of/dstr-const-obj-ptrn-rest-skip-non-enumerable.js @@ -43,18 +43,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var iterCount = 0; for (const {...rest} of [o]) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); iterCount += 1; } diff --git a/test/language/statements/for-of/dstr-const-obj-ptrn-rest-val-obj.js b/test/language/statements/for-of/dstr-const-obj-ptrn-rest-val-obj.js index 6981d0c35f..c8bc3b3dc0 100644 --- a/test/language/statements/for-of/dstr-const-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/for-of/dstr-const-obj-ptrn-rest-val-obj.js @@ -41,19 +41,22 @@ info: | var iterCount = 0; for (const {a, b, ...rest} of [{x: 1, y: 2, a: 5, b: 3}]) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-of/dstr-let-obj-ptrn-rest-getter.js b/test/language/statements/for-of/dstr-let-obj-ptrn-rest-getter.js index 1eab31fc96..70a0c5177e 100644 --- a/test/language/statements/for-of/dstr-let-obj-ptrn-rest-getter.js +++ b/test/language/statements/for-of/dstr-let-obj-ptrn-rest-getter.js @@ -42,13 +42,14 @@ var count = 0; var iterCount = 0; for (let {...x} of [{ get v() { count++; return 2; } }]) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-of/dstr-let-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/for-of/dstr-let-obj-ptrn-rest-skip-non-enumerable.js index e40ba926c7..e296008e38 100644 --- a/test/language/statements/for-of/dstr-let-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/for-of/dstr-let-obj-ptrn-rest-skip-non-enumerable.js @@ -43,18 +43,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var iterCount = 0; for (let {...rest} of [o]) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); iterCount += 1; } diff --git a/test/language/statements/for-of/dstr-let-obj-ptrn-rest-val-obj.js b/test/language/statements/for-of/dstr-let-obj-ptrn-rest-val-obj.js index 8ccf6302ec..1e06135dfd 100644 --- a/test/language/statements/for-of/dstr-let-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/for-of/dstr-let-obj-ptrn-rest-val-obj.js @@ -41,19 +41,22 @@ info: | var iterCount = 0; for (let {a, b, ...rest} of [{x: 1, y: 2, a: 5, b: 3}]) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-of/dstr-obj-id-init-fn-name-arrow.js b/test/language/statements/for-of/dstr-obj-id-init-fn-name-arrow.js index 86056c4c0a..386b1bc7a0 100644 --- a/test/language/statements/for-of/dstr-obj-id-init-fn-name-arrow.js +++ b/test/language/statements/for-of/dstr-obj-id-init-fn-name-arrow.js @@ -40,10 +40,12 @@ var arrow; var counter = 0; for ({ arrow = () => {} } of [{}]) { - assert.sameValue(arrow.name, 'arrow'); - verifyNotEnumerable(arrow, 'name'); - verifyNotWritable(arrow, 'name'); - verifyConfigurable(arrow, 'name'); + verifyProperty(arrow, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'arrow' + }); counter += 1; } diff --git a/test/language/statements/for-of/dstr-obj-id-init-fn-name-class.js b/test/language/statements/for-of/dstr-obj-id-init-fn-name-class.js index 09e8c2a767..89762f2a67 100644 --- a/test/language/statements/for-of/dstr-obj-id-init-fn-name-class.js +++ b/test/language/statements/for-of/dstr-obj-id-init-fn-name-class.js @@ -43,10 +43,12 @@ for ({ xCls = class x {}, cls = class {}, xCls2 = class { static name() {} } } o assert.notSameValue(xCls.name, 'xCls'); assert.notSameValue(xCls2.name, 'xCls2'); - assert.sameValue(cls.name, 'cls'); - verifyNotEnumerable(cls, 'name'); - verifyNotWritable(cls, 'name'); - verifyConfigurable(cls, 'name'); + verifyProperty(cls, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'cls' + }); counter += 1; } diff --git a/test/language/statements/for-of/dstr-obj-id-init-fn-name-cover.js b/test/language/statements/for-of/dstr-obj-id-init-fn-name-cover.js index 0b1ffc3e7d..fdd15c13a7 100644 --- a/test/language/statements/for-of/dstr-obj-id-init-fn-name-cover.js +++ b/test/language/statements/for-of/dstr-obj-id-init-fn-name-cover.js @@ -42,10 +42,12 @@ var counter = 0; for ({ xCover = (0, function() {}), cover = (function() {}) } of [{}]) { assert.notSameValue(xCover.name, 'xCover'); - assert.sameValue(cover.name, 'cover'); - verifyNotEnumerable(cover, 'name'); - verifyNotWritable(cover, 'name'); - verifyConfigurable(cover, 'name'); + verifyProperty(cover, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'cover' + }); counter += 1; } diff --git a/test/language/statements/for-of/dstr-obj-id-init-fn-name-fn.js b/test/language/statements/for-of/dstr-obj-id-init-fn-name-fn.js index 05c0a65a3c..b19711dd99 100644 --- a/test/language/statements/for-of/dstr-obj-id-init-fn-name-fn.js +++ b/test/language/statements/for-of/dstr-obj-id-init-fn-name-fn.js @@ -42,10 +42,12 @@ var counter = 0; for ({ xFn = function x() {}, fn = function() {} } of [{}]) { assert.notSameValue(xFn.name, 'xFn'); - assert.sameValue(fn.name, 'fn'); - verifyNotEnumerable(fn, 'name'); - verifyNotWritable(fn, 'name'); - verifyConfigurable(fn, 'name'); + verifyProperty(fn, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'fn' + }); counter += 1; } diff --git a/test/language/statements/for-of/dstr-obj-id-init-fn-name-gen.js b/test/language/statements/for-of/dstr-obj-id-init-fn-name-gen.js index f7e2bf22a9..3123cf3b3c 100644 --- a/test/language/statements/for-of/dstr-obj-id-init-fn-name-gen.js +++ b/test/language/statements/for-of/dstr-obj-id-init-fn-name-gen.js @@ -42,10 +42,12 @@ var counter = 0; for ({ xGen = function* x() {}, gen = function*() {} } of [{}]) { assert.notSameValue(xGen.name, 'xGen'); - assert.sameValue(gen.name, 'gen'); - verifyNotEnumerable(gen, 'name'); - verifyNotWritable(gen, 'name'); - verifyConfigurable(gen, 'name'); + verifyProperty(gen, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'gen' + }); counter += 1; } diff --git a/test/language/statements/for-of/dstr-obj-prop-elem-init-fn-name-arrow.js b/test/language/statements/for-of/dstr-obj-prop-elem-init-fn-name-arrow.js index 1d54425b1b..0a0b4dfc1f 100644 --- a/test/language/statements/for-of/dstr-obj-prop-elem-init-fn-name-arrow.js +++ b/test/language/statements/for-of/dstr-obj-prop-elem-init-fn-name-arrow.js @@ -41,10 +41,12 @@ var arrow; var counter = 0; for ({ x: arrow = () => {} } of [{}]) { - assert.sameValue(arrow.name, 'arrow'); - verifyNotEnumerable(arrow, 'name'); - verifyNotWritable(arrow, 'name'); - verifyConfigurable(arrow, 'name'); + verifyProperty(arrow, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'arrow' + }); counter += 1; } diff --git a/test/language/statements/for-of/dstr-obj-prop-elem-init-fn-name-class.js b/test/language/statements/for-of/dstr-obj-prop-elem-init-fn-name-class.js index 077c6bbb71..1d8e3ded19 100644 --- a/test/language/statements/for-of/dstr-obj-prop-elem-init-fn-name-class.js +++ b/test/language/statements/for-of/dstr-obj-prop-elem-init-fn-name-class.js @@ -44,10 +44,12 @@ for ({ x: xCls = class x {}, x: cls = class {}, x: xCls2 = class { static name() assert.notSameValue(xCls.name, 'xCls'); assert.notSameValue(xCls2.name, 'xCls2'); - assert.sameValue(cls.name, 'cls'); - verifyNotEnumerable(cls, 'name'); - verifyNotWritable(cls, 'name'); - verifyConfigurable(cls, 'name'); + verifyProperty(cls, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'cls' + }); counter += 1; } diff --git a/test/language/statements/for-of/dstr-obj-prop-elem-init-fn-name-cover.js b/test/language/statements/for-of/dstr-obj-prop-elem-init-fn-name-cover.js index 529ad3585c..9011386457 100644 --- a/test/language/statements/for-of/dstr-obj-prop-elem-init-fn-name-cover.js +++ b/test/language/statements/for-of/dstr-obj-prop-elem-init-fn-name-cover.js @@ -43,10 +43,12 @@ var counter = 0; for ({ x: xCover = (0, function() {}), x: cover = (function() {}) } of [{}]) { assert.notSameValue(xCover.name, 'xCover'); - assert.sameValue(cover.name, 'cover'); - verifyNotEnumerable(cover, 'name'); - verifyNotWritable(cover, 'name'); - verifyConfigurable(cover, 'name'); + verifyProperty(cover, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'cover' + }); counter += 1; } diff --git a/test/language/statements/for-of/dstr-obj-prop-elem-init-fn-name-fn.js b/test/language/statements/for-of/dstr-obj-prop-elem-init-fn-name-fn.js index 2d8273fd4c..ac4e106995 100644 --- a/test/language/statements/for-of/dstr-obj-prop-elem-init-fn-name-fn.js +++ b/test/language/statements/for-of/dstr-obj-prop-elem-init-fn-name-fn.js @@ -43,10 +43,12 @@ var counter = 0; for ({ x: xFn = function x() {}, x: fn = function() {} } of [{}]) { assert.notSameValue(xFn.name, 'xFn'); - assert.sameValue(fn.name, 'fn'); - verifyNotEnumerable(fn, 'name'); - verifyNotWritable(fn, 'name'); - verifyConfigurable(fn, 'name'); + verifyProperty(fn, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'fn' + }); counter += 1; } diff --git a/test/language/statements/for-of/dstr-obj-prop-elem-init-fn-name-gen.js b/test/language/statements/for-of/dstr-obj-prop-elem-init-fn-name-gen.js index d73ad5f2c4..3fc9d8e95e 100644 --- a/test/language/statements/for-of/dstr-obj-prop-elem-init-fn-name-gen.js +++ b/test/language/statements/for-of/dstr-obj-prop-elem-init-fn-name-gen.js @@ -43,10 +43,12 @@ var counter = 0; for ({ x: xGen = function* x() {}, x: gen = function*() {} } of [{}]) { assert.notSameValue(xGen.name, 'xGen'); - assert.sameValue(gen.name, 'gen'); - verifyNotEnumerable(gen, 'name'); - verifyNotWritable(gen, 'name'); - verifyConfigurable(gen, 'name'); + verifyProperty(gen, 'name', { + enumerable: false, + writable: false, + configurable: true, + value: 'gen' + }); counter += 1; } diff --git a/test/language/statements/for-of/dstr-obj-rest-descriptors.js b/test/language/statements/for-of/dstr-obj-rest-descriptors.js index 828fc97e60..02c7988ba8 100644 --- a/test/language/statements/for-of/dstr-obj-rest-descriptors.js +++ b/test/language/statements/for-of/dstr-obj-rest-descriptors.js @@ -34,16 +34,19 @@ Object.defineProperty(obj, "b", { value: 4, writable: false, enumerable: true }) var counter = 0; for ({...rest} of [obj]) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); counter += 1; } diff --git a/test/language/statements/for-of/dstr-obj-rest-getter.js b/test/language/statements/for-of/dstr-obj-rest-getter.js index d5f8d466bd..935724b04b 100644 --- a/test/language/statements/for-of/dstr-obj-rest-getter.js +++ b/test/language/statements/for-of/dstr-obj-rest-getter.js @@ -32,13 +32,14 @@ var count = 0; var counter = 0; for ({...x} of [{ get v() { count++; return 2; } }]) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); counter += 1; } diff --git a/test/language/statements/for-of/dstr-obj-rest-skip-non-enumerable.js b/test/language/statements/for-of/dstr-obj-rest-skip-non-enumerable.js index f60e24ad3f..5733ce7762 100644 --- a/test/language/statements/for-of/dstr-obj-rest-skip-non-enumerable.js +++ b/test/language/statements/for-of/dstr-obj-rest-skip-non-enumerable.js @@ -33,18 +33,21 @@ Object.defineProperty(obj, "x", { value: 4, enumerable: false }); var counter = 0; for ({...rest} of [obj]) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(Object.getOwnPropertyDescriptor(rest, "x"), undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); counter += 1; } diff --git a/test/language/statements/for-of/dstr-obj-rest-to-property.js b/test/language/statements/for-of/dstr-obj-rest-to-property.js index 1822f656ee..f30be27aee 100644 --- a/test/language/statements/for-of/dstr-obj-rest-to-property.js +++ b/test/language/statements/for-of/dstr-obj-rest-to-property.js @@ -34,10 +34,11 @@ for ({...src.y} of [{ x: 1, y: 2}]) { assert.sameValue(src.y.x, 1); assert.sameValue(src.y.y, 2); - verifyEnumerable(src, "y"); - verifyWritable(src, "y"); - verifyConfigurable(src, "y"); - + verifyProperty(src, "y", { + enumerable: true, + writable: true, + configurable: true + }); counter += 1; } diff --git a/test/language/statements/for-of/dstr-obj-rest-valid-object.js b/test/language/statements/for-of/dstr-obj-rest-valid-object.js index 3a514ed891..eed52d65a4 100644 --- a/test/language/statements/for-of/dstr-obj-rest-valid-object.js +++ b/test/language/statements/for-of/dstr-obj-rest-valid-object.js @@ -32,19 +32,22 @@ var rest, a, b; var counter = 0; for ({a, b, ...rest} of [{x: 1, y: 2, a: 5, b: 3}]) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); counter += 1; } diff --git a/test/language/statements/for-of/dstr-var-obj-ptrn-rest-getter.js b/test/language/statements/for-of/dstr-var-obj-ptrn-rest-getter.js index 6f21879bcd..4fd267767e 100644 --- a/test/language/statements/for-of/dstr-var-obj-ptrn-rest-getter.js +++ b/test/language/statements/for-of/dstr-var-obj-ptrn-rest-getter.js @@ -39,13 +39,14 @@ var count = 0; var iterCount = 0; for (var {...x} of [{ get v() { count++; return 2; } }]) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for-of/dstr-var-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/for-of/dstr-var-obj-ptrn-rest-skip-non-enumerable.js index fa061c8b12..bb9bc89c9e 100644 --- a/test/language/statements/for-of/dstr-var-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/for-of/dstr-var-obj-ptrn-rest-skip-non-enumerable.js @@ -40,18 +40,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var iterCount = 0; for (var {...rest} of [o]) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); iterCount += 1; } diff --git a/test/language/statements/for-of/dstr-var-obj-ptrn-rest-val-obj.js b/test/language/statements/for-of/dstr-var-obj-ptrn-rest-val-obj.js index 13e28b10cc..8e6df008bb 100644 --- a/test/language/statements/for-of/dstr-var-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/for-of/dstr-var-obj-ptrn-rest-val-obj.js @@ -38,19 +38,22 @@ info: | var iterCount = 0; for (var {a, b, ...rest} of [{x: 1, y: 2, a: 5, b: 3}]) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for/dstr-const-obj-ptrn-rest-getter.js b/test/language/statements/for/dstr-const-obj-ptrn-rest-getter.js index 772adad6c8..e1312bdf6e 100644 --- a/test/language/statements/for/dstr-const-obj-ptrn-rest-getter.js +++ b/test/language/statements/for/dstr-const-obj-ptrn-rest-getter.js @@ -42,13 +42,14 @@ var count = 0; var iterCount = 0; for (const {...x} = { get v() { count++; return 2; } }; iterCount < 1; ) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for/dstr-const-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/for/dstr-const-obj-ptrn-rest-skip-non-enumerable.js index 1b92c8d955..c7dca2c5de 100644 --- a/test/language/statements/for/dstr-const-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/for/dstr-const-obj-ptrn-rest-skip-non-enumerable.js @@ -43,18 +43,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var iterCount = 0; for (const {...rest} = o; iterCount < 1; ) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); iterCount += 1; } diff --git a/test/language/statements/for/dstr-const-obj-ptrn-rest-val-obj.js b/test/language/statements/for/dstr-const-obj-ptrn-rest-val-obj.js index cf5bef0767..4a2f5a976b 100644 --- a/test/language/statements/for/dstr-const-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/for/dstr-const-obj-ptrn-rest-val-obj.js @@ -41,19 +41,22 @@ info: | var iterCount = 0; for (const {a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}; iterCount < 1; ) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for/dstr-let-obj-ptrn-rest-getter.js b/test/language/statements/for/dstr-let-obj-ptrn-rest-getter.js index cc8b692f03..7cc29495e6 100644 --- a/test/language/statements/for/dstr-let-obj-ptrn-rest-getter.js +++ b/test/language/statements/for/dstr-let-obj-ptrn-rest-getter.js @@ -42,13 +42,14 @@ var count = 0; var iterCount = 0; for (let {...x} = { get v() { count++; return 2; } }; iterCount < 1; ) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for/dstr-let-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/for/dstr-let-obj-ptrn-rest-skip-non-enumerable.js index cc18a05a1b..8422230f5b 100644 --- a/test/language/statements/for/dstr-let-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/for/dstr-let-obj-ptrn-rest-skip-non-enumerable.js @@ -43,18 +43,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var iterCount = 0; for (let {...rest} = o; iterCount < 1; ) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); iterCount += 1; } diff --git a/test/language/statements/for/dstr-let-obj-ptrn-rest-val-obj.js b/test/language/statements/for/dstr-let-obj-ptrn-rest-val-obj.js index a28a1a3483..f878f75ddc 100644 --- a/test/language/statements/for/dstr-let-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/for/dstr-let-obj-ptrn-rest-val-obj.js @@ -41,19 +41,22 @@ info: | var iterCount = 0; for (let {a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}; iterCount < 1; ) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for/dstr-var-obj-ptrn-rest-getter.js b/test/language/statements/for/dstr-var-obj-ptrn-rest-getter.js index 74cf8d83b8..5b8a835f90 100644 --- a/test/language/statements/for/dstr-var-obj-ptrn-rest-getter.js +++ b/test/language/statements/for/dstr-var-obj-ptrn-rest-getter.js @@ -36,13 +36,14 @@ var count = 0; var iterCount = 0; for (var {...x} = { get v() { count++; return 2; } }; iterCount < 1; ) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/for/dstr-var-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/for/dstr-var-obj-ptrn-rest-skip-non-enumerable.js index c687bd9b6c..902f705af1 100644 --- a/test/language/statements/for/dstr-var-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/for/dstr-var-obj-ptrn-rest-skip-non-enumerable.js @@ -37,18 +37,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var iterCount = 0; for (var {...rest} = o; iterCount < 1; ) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); iterCount += 1; } diff --git a/test/language/statements/for/dstr-var-obj-ptrn-rest-val-obj.js b/test/language/statements/for/dstr-var-obj-ptrn-rest-val-obj.js index d66e8665e1..d845e17e8f 100644 --- a/test/language/statements/for/dstr-var-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/for/dstr-var-obj-ptrn-rest-val-obj.js @@ -35,19 +35,22 @@ info: | var iterCount = 0; for (var {a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}; iterCount < 1; ) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); iterCount += 1; } diff --git a/test/language/statements/function/dstr-dflt-obj-ptrn-rest-getter.js b/test/language/statements/function/dstr-dflt-obj-ptrn-rest-getter.js index 8d6c96e553..2f7f081750 100644 --- a/test/language/statements/function/dstr-dflt-obj-ptrn-rest-getter.js +++ b/test/language/statements/function/dstr-dflt-obj-ptrn-rest-getter.js @@ -44,13 +44,14 @@ var count = 0; var callCount = 0; function f({...x} = { get v() { count++; return 2; } }) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; f(); diff --git a/test/language/statements/function/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/function/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js index 491f010d2c..80cf336148 100644 --- a/test/language/statements/function/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/function/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js @@ -45,18 +45,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; function f({...rest} = o) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; }; f(); diff --git a/test/language/statements/function/dstr-dflt-obj-ptrn-rest-val-obj.js b/test/language/statements/function/dstr-dflt-obj-ptrn-rest-val-obj.js index 6f86889196..43d404dfe3 100644 --- a/test/language/statements/function/dstr-dflt-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/function/dstr-dflt-obj-ptrn-rest-val-obj.js @@ -43,19 +43,22 @@ info: | var callCount = 0; function f({a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; f(); diff --git a/test/language/statements/function/dstr-obj-ptrn-rest-getter.js b/test/language/statements/function/dstr-obj-ptrn-rest-getter.js index 49c25f0b7b..46f3c21cc2 100644 --- a/test/language/statements/function/dstr-obj-ptrn-rest-getter.js +++ b/test/language/statements/function/dstr-obj-ptrn-rest-getter.js @@ -44,13 +44,14 @@ var count = 0; var callCount = 0; function f({...x}) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; f({ get v() { count++; return 2; } }); diff --git a/test/language/statements/function/dstr-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/function/dstr-obj-ptrn-rest-skip-non-enumerable.js index 8545878691..8fcfbfaa05 100644 --- a/test/language/statements/function/dstr-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/function/dstr-obj-ptrn-rest-skip-non-enumerable.js @@ -45,18 +45,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; function f({...rest}) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; }; f(o); diff --git a/test/language/statements/function/dstr-obj-ptrn-rest-val-obj.js b/test/language/statements/function/dstr-obj-ptrn-rest-val-obj.js index d24af41d1f..9f58c644cf 100644 --- a/test/language/statements/function/dstr-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/function/dstr-obj-ptrn-rest-val-obj.js @@ -43,19 +43,22 @@ info: | var callCount = 0; function f({a, b, ...rest}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; f({x: 1, y: 2, a: 5, b: 3}); diff --git a/test/language/statements/generators/dstr-dflt-obj-ptrn-rest-getter.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-rest-getter.js index e27753ad34..ae7f7ee5fd 100644 --- a/test/language/statements/generators/dstr-dflt-obj-ptrn-rest-getter.js +++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-rest-getter.js @@ -43,13 +43,14 @@ var count = 0; var callCount = 0; function* f({...x} = { get v() { count++; return 2; } }) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; f().next(); diff --git a/test/language/statements/generators/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js index 1c82e246b8..e0ae3936c5 100644 --- a/test/language/statements/generators/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js @@ -44,18 +44,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; function* f({...rest} = o) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; }; f().next(); diff --git a/test/language/statements/generators/dstr-dflt-obj-ptrn-rest-val-obj.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-rest-val-obj.js index 00f4167c22..e4b97cf5d0 100644 --- a/test/language/statements/generators/dstr-dflt-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-rest-val-obj.js @@ -42,19 +42,22 @@ info: | var callCount = 0; function* f({a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; f().next(); diff --git a/test/language/statements/generators/dstr-obj-ptrn-rest-getter.js b/test/language/statements/generators/dstr-obj-ptrn-rest-getter.js index 907b7a56a7..1a7243af05 100644 --- a/test/language/statements/generators/dstr-obj-ptrn-rest-getter.js +++ b/test/language/statements/generators/dstr-obj-ptrn-rest-getter.js @@ -43,13 +43,14 @@ var count = 0; var callCount = 0; function* f({...x}) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; f({ get v() { count++; return 2; } }).next(); diff --git a/test/language/statements/generators/dstr-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/generators/dstr-obj-ptrn-rest-skip-non-enumerable.js index 6ddc40bba4..04d37e1534 100644 --- a/test/language/statements/generators/dstr-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/generators/dstr-obj-ptrn-rest-skip-non-enumerable.js @@ -44,18 +44,21 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var callCount = 0; function* f({...rest}) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); callCount = callCount + 1; }; f(o).next(); diff --git a/test/language/statements/generators/dstr-obj-ptrn-rest-val-obj.js b/test/language/statements/generators/dstr-obj-ptrn-rest-val-obj.js index 45772b1ca8..372a6cd817 100644 --- a/test/language/statements/generators/dstr-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/generators/dstr-obj-ptrn-rest-val-obj.js @@ -42,19 +42,22 @@ info: | var callCount = 0; function* f({a, b, ...rest}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); callCount = callCount + 1; }; f({x: 1, y: 2, a: 5, b: 3}).next(); diff --git a/test/language/statements/let/dstr-obj-ptrn-rest-getter.js b/test/language/statements/let/dstr-obj-ptrn-rest-getter.js index 7938a06346..d3d13476ea 100644 --- a/test/language/statements/let/dstr-obj-ptrn-rest-getter.js +++ b/test/language/statements/let/dstr-obj-ptrn-rest-getter.js @@ -22,10 +22,11 @@ var count = 0; let {...x} = { get v() { count++; return 2; } }; -assert.sameValue(x.v, 2); assert.sameValue(count, 1); -verifyEnumerable(x, "v"); -verifyWritable(x, "v"); -verifyConfigurable(x, "v"); - +verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 +}); diff --git a/test/language/statements/let/dstr-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/let/dstr-obj-ptrn-rest-skip-non-enumerable.js index 19b2ef998d..d988a365b3 100644 --- a/test/language/statements/let/dstr-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/let/dstr-obj-ptrn-rest-skip-non-enumerable.js @@ -23,15 +23,18 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); let {...rest} = o; -assert.sameValue(rest.a, 3); -assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); -verifyEnumerable(rest, "a"); -verifyWritable(rest, "a"); -verifyConfigurable(rest, "a"); - -verifyEnumerable(rest, "b"); -verifyWritable(rest, "b"); -verifyConfigurable(rest, "b"); +verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 +}); +verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 +}); diff --git a/test/language/statements/let/dstr-obj-ptrn-rest-val-obj.js b/test/language/statements/let/dstr-obj-ptrn-rest-val-obj.js index d9c8bddba1..38e8cf9e10 100644 --- a/test/language/statements/let/dstr-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/let/dstr-obj-ptrn-rest-val-obj.js @@ -21,16 +21,19 @@ info: | let {a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}; -assert.sameValue(rest.x, 1); -assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); -verifyEnumerable(rest, "x"); -verifyWritable(rest, "x"); -verifyConfigurable(rest, "x"); - -verifyEnumerable(rest, "y"); -verifyWritable(rest, "y"); -verifyConfigurable(rest, "y"); +verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 +}); +verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 +}); diff --git a/test/language/statements/try/dstr-obj-ptrn-rest-getter.js b/test/language/statements/try/dstr-obj-ptrn-rest-getter.js index 2afa0311c0..d49c52b2c1 100644 --- a/test/language/statements/try/dstr-obj-ptrn-rest-getter.js +++ b/test/language/statements/try/dstr-obj-ptrn-rest-getter.js @@ -23,13 +23,14 @@ var ranCatch = false; try { throw { get v() { count++; return 2; } }; } catch ({...x}) { - assert.sameValue(x.v, 2); assert.sameValue(count, 1); - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - + verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); ranCatch = true; } diff --git a/test/language/statements/try/dstr-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/try/dstr-obj-ptrn-rest-skip-non-enumerable.js index e264f0ef59..23ad196b05 100644 --- a/test/language/statements/try/dstr-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/try/dstr-obj-ptrn-rest-skip-non-enumerable.js @@ -24,18 +24,21 @@ var ranCatch = false; try { throw o; } catch ({...rest}) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); + verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 + }); + verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 + }); ranCatch = true; } diff --git a/test/language/statements/try/dstr-obj-ptrn-rest-val-obj.js b/test/language/statements/try/dstr-obj-ptrn-rest-val-obj.js index ed34d844b2..c829b48534 100644 --- a/test/language/statements/try/dstr-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/try/dstr-obj-ptrn-rest-val-obj.js @@ -22,19 +22,22 @@ var ranCatch = false; try { throw {x: 1, y: 2, a: 5, b: 3}; } catch ({a, b, ...rest}) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); + verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 + }); + verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 + }); ranCatch = true; } diff --git a/test/language/statements/variable/dstr-obj-ptrn-rest-getter.js b/test/language/statements/variable/dstr-obj-ptrn-rest-getter.js index 7785ff8a1e..b9e207c780 100644 --- a/test/language/statements/variable/dstr-obj-ptrn-rest-getter.js +++ b/test/language/statements/variable/dstr-obj-ptrn-rest-getter.js @@ -21,10 +21,11 @@ var count = 0; var {...x} = { get v() { count++; return 2; } }; -assert.sameValue(x.v, 2); assert.sameValue(count, 1); -verifyEnumerable(x, "v"); -verifyWritable(x, "v"); -verifyConfigurable(x, "v"); - +verifyProperty(x, "v", { + enumerable: true, + writable: true, + configurable: true, + value: 2 +}); diff --git a/test/language/statements/variable/dstr-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/variable/dstr-obj-ptrn-rest-skip-non-enumerable.js index 50f7af0e15..d15c7cb13f 100644 --- a/test/language/statements/variable/dstr-obj-ptrn-rest-skip-non-enumerable.js +++ b/test/language/statements/variable/dstr-obj-ptrn-rest-skip-non-enumerable.js @@ -22,15 +22,18 @@ Object.defineProperty(o, "x", { value: 4, enumerable: false }); var {...rest} = o; -assert.sameValue(rest.a, 3); -assert.sameValue(rest.b, 4); assert.sameValue(rest.x, undefined); -verifyEnumerable(rest, "a"); -verifyWritable(rest, "a"); -verifyConfigurable(rest, "a"); - -verifyEnumerable(rest, "b"); -verifyWritable(rest, "b"); -verifyConfigurable(rest, "b"); +verifyProperty(rest, "a", { + enumerable: true, + writable: true, + configurable: true, + value: 3 +}); +verifyProperty(rest, "b", { + enumerable: true, + writable: true, + configurable: true, + value: 4 +}); diff --git a/test/language/statements/variable/dstr-obj-ptrn-rest-val-obj.js b/test/language/statements/variable/dstr-obj-ptrn-rest-val-obj.js index 8a52a9f2bb..7c3f54eb85 100644 --- a/test/language/statements/variable/dstr-obj-ptrn-rest-val-obj.js +++ b/test/language/statements/variable/dstr-obj-ptrn-rest-val-obj.js @@ -20,16 +20,19 @@ info: | var {a, b, ...rest} = {x: 1, y: 2, a: 5, b: 3}; -assert.sameValue(rest.x, 1); -assert.sameValue(rest.y, 2); assert.sameValue(rest.a, undefined); assert.sameValue(rest.b, undefined); -verifyEnumerable(rest, "x"); -verifyWritable(rest, "x"); -verifyConfigurable(rest, "x"); - -verifyEnumerable(rest, "y"); -verifyWritable(rest, "y"); -verifyConfigurable(rest, "y"); +verifyProperty(rest, "x", { + enumerable: true, + writable: true, + configurable: true, + value: 1 +}); +verifyProperty(rest, "y", { + enumerable: true, + writable: true, + configurable: true, + value: 2 +});