diff --git a/test/language/expressions/array/spread-obj-symbol-property.js b/test/language/expressions/array/spread-obj-symbol-property.js index 8a8cedcebe7eb3488a35d5a86c341002bc9e83e9..7965be97151108599ea7a226e924cc4b21b9b92d 100644 --- a/test/language/expressions/array/spread-obj-symbol-property.js +++ b/test/language/expressions/array/spread-obj-symbol-property.js @@ -41,6 +41,7 @@ var callCount = 0; (function(obj) { assert.sameValue(obj[symbol], 1); + assert(Object.hasOwnProperty.call(obj, symbol)); assert.sameValue(obj.c, 4); assert.sameValue(obj.d, 5); assert.sameValue(Object.keys(obj).length, 2); diff --git a/test/language/expressions/async-generator/named-yield-identifier-spread-non-strict.js b/test/language/expressions/async-generator/named-yield-identifier-spread-non-strict.js index ec4367a70696c217cbcd0ed35abc389a4eb8ffef..d65911bb3c8269c6d04103207feecb2de5d73e4c 100644 --- a/test/language/expressions/async-generator/named-yield-identifier-spread-non-strict.js +++ b/test/language/expressions/async-generator/named-yield-identifier-spread-non-strict.js @@ -20,6 +20,7 @@ info: | ...AssignmentExpression[In, ?Yield] ---*/ +var s = Symbol('s'); var callCount = 0; @@ -42,8 +43,8 @@ var iter = gen(); iter.next(); iter.next(); -iter.next({ x: 10, a: 0, b: 0 }); -iter.next({ y: 20, a: 1, b: 1 }); +iter.next({ x: 10, a: 0, b: 0, [s]: 1 }); +iter.next({ y: 20, a: 1, b: 1, [s]: 42 }); var item = iter.next({ z: 30, b: 2 }); item.then(({ done, value }) => { @@ -53,7 +54,9 @@ item.then(({ done, value }) => { assert.sameValue(value.z, 30); assert.sameValue(value.a, 1); assert.sameValue(value.b, 2); + assert.sameValue(value[s], 42); assert.sameValue(Object.keys(value).length, 5); + assert(Object.hasOwnProperty.call(value, s)); }).then($DONE, $DONE); assert.sameValue(callCount, 1); diff --git a/test/language/expressions/async-generator/named-yield-spread-arr-single.js b/test/language/expressions/async-generator/named-yield-spread-arr-single.js index a6b0438d0330757c11bc06e2f7eb9d6790ef1210..95d08539593b1cfb13346be45f0abed2afead3ac 100644 --- a/test/language/expressions/async-generator/named-yield-spread-arr-single.js +++ b/test/language/expressions/async-generator/named-yield-spread-arr-single.js @@ -5,7 +5,6 @@ description: Use yield value in a array spread position (Named async generator expression) esid: prod-AsyncGeneratorExpression flags: [generated, async] -includes: [compareArray.js] info: | Async Generator Function Definitions @@ -32,10 +31,15 @@ var gen = async function *g() { var iter = gen(); iter.next(false); -var item = iter.next(['a', 'b', 'c']); +var item = iter.next(arr); item.then(({ done, value }) => { - assert(compareArray(value, arr)); + assert.notSameValue(value, arr, 'value is a new array'); + assert(Array.isArray(value), 'value is an Array exotic object'); + assert.sameValue(value.length, 3) + assert.sameValue(value[0], 'a'); + assert.sameValue(value[1], 'b'); + assert.sameValue(value[2], 'c'); assert.sameValue(done, false); }).then($DONE, $DONE); diff --git a/test/language/expressions/async-generator/yield-identifier-spread-non-strict.js b/test/language/expressions/async-generator/yield-identifier-spread-non-strict.js index 98b6583fab303b21bd67ca17f5c07f5abe85da1a..8a60681c237e5171aa47bbe9791829b03fcbbfc6 100644 --- a/test/language/expressions/async-generator/yield-identifier-spread-non-strict.js +++ b/test/language/expressions/async-generator/yield-identifier-spread-non-strict.js @@ -20,6 +20,7 @@ info: | ...AssignmentExpression[In, ?Yield] ---*/ +var s = Symbol('s'); var callCount = 0; @@ -42,8 +43,8 @@ var iter = gen(); iter.next(); iter.next(); -iter.next({ x: 10, a: 0, b: 0 }); -iter.next({ y: 20, a: 1, b: 1 }); +iter.next({ x: 10, a: 0, b: 0, [s]: 1 }); +iter.next({ y: 20, a: 1, b: 1, [s]: 42 }); var item = iter.next({ z: 30, b: 2 }); item.then(({ done, value }) => { @@ -53,7 +54,9 @@ item.then(({ done, value }) => { assert.sameValue(value.z, 30); assert.sameValue(value.a, 1); assert.sameValue(value.b, 2); + assert.sameValue(value[s], 42); assert.sameValue(Object.keys(value).length, 5); + assert(Object.hasOwnProperty.call(value, s)); }).then($DONE, $DONE); assert.sameValue(callCount, 1); diff --git a/test/language/expressions/async-generator/yield-spread-arr-single.js b/test/language/expressions/async-generator/yield-spread-arr-single.js index 45be229091786e28320d2b91007accaf602c6448..421f0004cfc66059323d91b917a2f95f175a24e0 100644 --- a/test/language/expressions/async-generator/yield-spread-arr-single.js +++ b/test/language/expressions/async-generator/yield-spread-arr-single.js @@ -5,7 +5,6 @@ description: Use yield value in a array spread position (Unnamed async generator expression) esid: prod-AsyncGeneratorExpression flags: [generated, async] -includes: [compareArray.js] info: | Async Generator Function Definitions @@ -32,10 +31,15 @@ var gen = async function *() { var iter = gen(); iter.next(false); -var item = iter.next(['a', 'b', 'c']); +var item = iter.next(arr); item.then(({ done, value }) => { - assert(compareArray(value, arr)); + assert.notSameValue(value, arr, 'value is a new array'); + assert(Array.isArray(value), 'value is an Array exotic object'); + assert.sameValue(value.length, 3) + assert.sameValue(value[0], 'a'); + assert.sameValue(value[1], 'b'); + assert.sameValue(value[2], 'c'); assert.sameValue(done, false); }).then($DONE, $DONE); diff --git a/test/language/expressions/call/spread-obj-symbol-property.js b/test/language/expressions/call/spread-obj-symbol-property.js index 9a26e67f60535b3b54c180045e8d5d857021eaa4..456ccb8207a2515fdb9fa5575f2286903decacfb 100644 --- a/test/language/expressions/call/spread-obj-symbol-property.js +++ b/test/language/expressions/call/spread-obj-symbol-property.js @@ -39,6 +39,7 @@ var callCount = 0; (function(obj) { assert.sameValue(obj[symbol], 1); + assert(Object.hasOwnProperty.call(obj, symbol)); assert.sameValue(obj.c, 4); assert.sameValue(obj.d, 5); assert.sameValue(Object.keys(obj).length, 2); diff --git a/test/language/expressions/class/async-gen-method-static-yield-spread-arr-single.js b/test/language/expressions/class/async-gen-method-static-yield-spread-arr-single.js index f9f23472f154133c33be7a89db324e336b6b4933..9c0297d6eb40646e16d4057b172bfd7afe7bf689 100644 --- a/test/language/expressions/class/async-gen-method-static-yield-spread-arr-single.js +++ b/test/language/expressions/class/async-gen-method-static-yield-spread-arr-single.js @@ -5,7 +5,6 @@ description: Use yield value in a array spread position (Static async generator method as a ClassExpression element) esid: prod-AsyncGeneratorMethod flags: [generated, async] -includes: [compareArray.js] info: | ClassElement : static MethodDefinition @@ -39,10 +38,15 @@ var gen = C.gen; var iter = gen(); iter.next(false); -var item = iter.next(['a', 'b', 'c']); +var item = iter.next(arr); item.then(({ done, value }) => { - assert(compareArray(value, arr)); + assert.notSameValue(value, arr, 'value is a new array'); + assert(Array.isArray(value), 'value is an Array exotic object'); + assert.sameValue(value.length, 3) + assert.sameValue(value[0], 'a'); + assert.sameValue(value[1], 'b'); + assert.sameValue(value[2], 'c'); assert.sameValue(done, false); }).then($DONE, $DONE); diff --git a/test/language/expressions/class/async-gen-method-yield-spread-arr-single.js b/test/language/expressions/class/async-gen-method-yield-spread-arr-single.js index 3bee88b77b7738d65ffd729061ad771340004cf0..aff92093e9225e2ee3a979a7c3d8d1cf82cbddfd 100644 --- a/test/language/expressions/class/async-gen-method-yield-spread-arr-single.js +++ b/test/language/expressions/class/async-gen-method-yield-spread-arr-single.js @@ -5,7 +5,6 @@ description: Use yield value in a array spread position (Async generator method as a ClassExpression element) esid: prod-AsyncGeneratorMethod flags: [generated, async] -includes: [compareArray.js] info: | ClassElement : MethodDefinition @@ -39,10 +38,15 @@ var gen = C.prototype.gen; var iter = gen(); iter.next(false); -var item = iter.next(['a', 'b', 'c']); +var item = iter.next(arr); item.then(({ done, value }) => { - assert(compareArray(value, arr)); + assert.notSameValue(value, arr, 'value is a new array'); + assert(Array.isArray(value), 'value is an Array exotic object'); + assert.sameValue(value.length, 3) + assert.sameValue(value[0], 'a'); + assert.sameValue(value[1], 'b'); + assert.sameValue(value[2], 'c'); assert.sameValue(done, false); }).then($DONE, $DONE); diff --git a/test/language/expressions/class/gen-method-static-yield-spread-arr-single.js b/test/language/expressions/class/gen-method-static-yield-spread-arr-single.js index 9e983666507b430678938f7cecd896e4b3006d82..d26fc19a4c0a415a3197960d8dd8ab278e0d975b 100644 --- a/test/language/expressions/class/gen-method-static-yield-spread-arr-single.js +++ b/test/language/expressions/class/gen-method-static-yield-spread-arr-single.js @@ -5,7 +5,6 @@ description: Use yield value in a array spread position (Static generator method as a ClassExpression element) esid: prod-GeneratorMethod flags: [generated] -includes: [compareArray.js] info: | ClassElement : static MethodDefinition @@ -22,7 +21,6 @@ info: | SpreadElement[Yield, Await]: ...AssignmentExpression[+In, ?Yield, ?Await] - ---*/ var arr = ['a', 'b', 'c']; @@ -38,9 +36,15 @@ var gen = C.gen; var iter = gen(); iter.next(false); -var item = iter.next(['a', 'b', 'c']); - -assert(compareArray(item.value, arr)); +var item = iter.next(arr); +var value = item.value; + +assert.notSameValue(value, arr, 'value is a new array'); +assert(Array.isArray(value), 'value is an Array exotic object'); +assert.sameValue(value.length, 3) +assert.sameValue(value[0], 'a'); +assert.sameValue(value[1], 'b'); +assert.sameValue(value[2], 'c'); assert.sameValue(item.done, false); assert.sameValue(callCount, 1); diff --git a/test/language/expressions/class/gen-method-yield-spread-arr-single.js b/test/language/expressions/class/gen-method-yield-spread-arr-single.js index a9ecc6af525b672ef4adb77112a2ec226ae58e51..b1d9e473bad838955ae6af61a5f5a6e1233cf4ca 100644 --- a/test/language/expressions/class/gen-method-yield-spread-arr-single.js +++ b/test/language/expressions/class/gen-method-yield-spread-arr-single.js @@ -5,7 +5,6 @@ description: Use yield value in a array spread position (Generator method as a ClassExpression element) esid: prod-GeneratorMethod flags: [generated] -includes: [compareArray.js] info: | ClassElement : MethodDefinition @@ -22,7 +21,6 @@ info: | SpreadElement[Yield, Await]: ...AssignmentExpression[+In, ?Yield, ?Await] - ---*/ var arr = ['a', 'b', 'c']; @@ -38,9 +36,15 @@ var gen = C.prototype.gen; var iter = gen(); iter.next(false); -var item = iter.next(['a', 'b', 'c']); - -assert(compareArray(item.value, arr)); +var item = iter.next(arr); +var value = item.value; + +assert.notSameValue(value, arr, 'value is a new array'); +assert(Array.isArray(value), 'value is an Array exotic object'); +assert.sameValue(value.length, 3) +assert.sameValue(value[0], 'a'); +assert.sameValue(value[1], 'b'); +assert.sameValue(value[2], 'c'); assert.sameValue(item.done, false); assert.sameValue(callCount, 1); diff --git a/test/language/expressions/generators/named-yield-identifier-spread-non-strict.js b/test/language/expressions/generators/named-yield-identifier-spread-non-strict.js index 4931f2f953287fe9875afc339006f207e25a9df3..2fa759a558cceac995fea24ed36cc7b1343b942d 100644 --- a/test/language/expressions/generators/named-yield-identifier-spread-non-strict.js +++ b/test/language/expressions/generators/named-yield-identifier-spread-non-strict.js @@ -19,6 +19,7 @@ info: | ...AssignmentExpression[In, ?Yield] ---*/ +var s = Symbol('s'); var callCount = 0; @@ -40,16 +41,20 @@ var iter = gen(); iter.next(); iter.next(); -iter.next({ x: 10, a: 0, b: 0 }); -iter.next({ y: 20, a: 1, b: 1 }); +iter.next({ x: 10, a: 0, b: 0, [s]: 1 }); +iter.next({ y: 20, a: 1, b: 1, [s]: 42 }); var item = iter.next({ z: 30, b: 2 }); +var value = item.value; + assert.sameValue(item.done, false); -assert.sameValue(item.value.x, 10); -assert.sameValue(item.value.y, 20); -assert.sameValue(item.value.z, 30); -assert.sameValue(item.value.a, 1); -assert.sameValue(item.value.b, 2); -assert.sameValue(Object.keys(item.value).length, 5); +assert.sameValue(value.x, 10); +assert.sameValue(value.y, 20); +assert.sameValue(value.z, 30); +assert.sameValue(value.a, 1); +assert.sameValue(value.b, 2); +assert.sameValue(value[s], 42); +assert(Object.hasOwnProperty.call(value, s)); +assert.sameValue(Object.keys(value).length, 5); assert.sameValue(callCount, 1); diff --git a/test/language/expressions/generators/named-yield-spread-arr-single.js b/test/language/expressions/generators/named-yield-spread-arr-single.js index eb2b8534d209d35f5ce92442c242824382b3bdf0..b0bd3194efd1b6228c524c9e0b5190247b7ac2ef 100644 --- a/test/language/expressions/generators/named-yield-spread-arr-single.js +++ b/test/language/expressions/generators/named-yield-spread-arr-single.js @@ -5,7 +5,6 @@ description: Use yield value in a array spread position (Named generator expression) esid: prod-GeneratorExpression flags: [generated] -includes: [compareArray.js] info: | 14.4 Generator Function Definitions @@ -16,7 +15,6 @@ info: | SpreadElement[Yield, Await]: ...AssignmentExpression[+In, ?Yield, ?Await] - ---*/ var arr = ['a', 'b', 'c']; @@ -30,9 +28,15 @@ var gen = function *g() { var iter = gen(); iter.next(false); -var item = iter.next(['a', 'b', 'c']); - -assert(compareArray(item.value, arr)); +var item = iter.next(arr); +var value = item.value; + +assert.notSameValue(value, arr, 'value is a new array'); +assert(Array.isArray(value), 'value is an Array exotic object'); +assert.sameValue(value.length, 3) +assert.sameValue(value[0], 'a'); +assert.sameValue(value[1], 'b'); +assert.sameValue(value[2], 'c'); assert.sameValue(item.done, false); assert.sameValue(callCount, 1); diff --git a/test/language/expressions/generators/yield-identifier-spread-non-strict.js b/test/language/expressions/generators/yield-identifier-spread-non-strict.js index 2991544a0607cef32b8d89cd07df3ad1b37e7b28..05be96d4e7f7f71a44dd3e0068c870d03f1d1387 100644 --- a/test/language/expressions/generators/yield-identifier-spread-non-strict.js +++ b/test/language/expressions/generators/yield-identifier-spread-non-strict.js @@ -19,6 +19,7 @@ info: | ...AssignmentExpression[In, ?Yield] ---*/ +var s = Symbol('s'); var callCount = 0; @@ -40,16 +41,20 @@ var iter = gen(); iter.next(); iter.next(); -iter.next({ x: 10, a: 0, b: 0 }); -iter.next({ y: 20, a: 1, b: 1 }); +iter.next({ x: 10, a: 0, b: 0, [s]: 1 }); +iter.next({ y: 20, a: 1, b: 1, [s]: 42 }); var item = iter.next({ z: 30, b: 2 }); +var value = item.value; + assert.sameValue(item.done, false); -assert.sameValue(item.value.x, 10); -assert.sameValue(item.value.y, 20); -assert.sameValue(item.value.z, 30); -assert.sameValue(item.value.a, 1); -assert.sameValue(item.value.b, 2); -assert.sameValue(Object.keys(item.value).length, 5); +assert.sameValue(value.x, 10); +assert.sameValue(value.y, 20); +assert.sameValue(value.z, 30); +assert.sameValue(value.a, 1); +assert.sameValue(value.b, 2); +assert.sameValue(value[s], 42); +assert(Object.hasOwnProperty.call(value, s)); +assert.sameValue(Object.keys(value).length, 5); assert.sameValue(callCount, 1); diff --git a/test/language/expressions/generators/yield-spread-arr-single.js b/test/language/expressions/generators/yield-spread-arr-single.js index f9cba19aa323d8edd47e31d7e5d476050d0f2a57..52bb571f71ba7da09b8129909922460abbbb8c03 100644 --- a/test/language/expressions/generators/yield-spread-arr-single.js +++ b/test/language/expressions/generators/yield-spread-arr-single.js @@ -5,7 +5,6 @@ description: Use yield value in a array spread position (Unnamed generator expression) esid: prod-GeneratorExpression flags: [generated] -includes: [compareArray.js] info: | 14.4 Generator Function Definitions @@ -16,7 +15,6 @@ info: | SpreadElement[Yield, Await]: ...AssignmentExpression[+In, ?Yield, ?Await] - ---*/ var arr = ['a', 'b', 'c']; @@ -30,9 +28,15 @@ var gen = function *() { var iter = gen(); iter.next(false); -var item = iter.next(['a', 'b', 'c']); - -assert(compareArray(item.value, arr)); +var item = iter.next(arr); +var value = item.value; + +assert.notSameValue(value, arr, 'value is a new array'); +assert(Array.isArray(value), 'value is an Array exotic object'); +assert.sameValue(value.length, 3) +assert.sameValue(value[0], 'a'); +assert.sameValue(value[1], 'b'); +assert.sameValue(value[2], 'c'); assert.sameValue(item.done, false); assert.sameValue(callCount, 1); diff --git a/test/language/expressions/new/spread-obj-symbol-property.js b/test/language/expressions/new/spread-obj-symbol-property.js index 33f58683457f86a7dce3845692d653f46d61aef0..ada48fd50f97d01a1adb495b3d1099fe60d94a46 100644 --- a/test/language/expressions/new/spread-obj-symbol-property.js +++ b/test/language/expressions/new/spread-obj-symbol-property.js @@ -38,6 +38,7 @@ var callCount = 0; new function(obj) { assert.sameValue(obj[symbol], 1); + assert(Object.hasOwnProperty.call(obj, symbol)); assert.sameValue(obj.c, 4); assert.sameValue(obj.d, 5); assert.sameValue(Object.keys(obj).length, 2); diff --git a/test/language/expressions/object/method-definition/async-gen-yield-identifier-spread-non-strict.js b/test/language/expressions/object/method-definition/async-gen-yield-identifier-spread-non-strict.js index 7bb35899c81aeb76b8a980cf0ed278fa064313d3..aaef9d3cc9ffce97f08a0a89bc48ac175f34c54e 100644 --- a/test/language/expressions/object/method-definition/async-gen-yield-identifier-spread-non-strict.js +++ b/test/language/expressions/object/method-definition/async-gen-yield-identifier-spread-non-strict.js @@ -19,6 +19,7 @@ info: | ...AssignmentExpression[In, ?Yield] ---*/ +var s = Symbol('s'); var callCount = 0; @@ -43,8 +44,8 @@ var iter = gen(); iter.next(); iter.next(); -iter.next({ x: 10, a: 0, b: 0 }); -iter.next({ y: 20, a: 1, b: 1 }); +iter.next({ x: 10, a: 0, b: 0, [s]: 1 }); +iter.next({ y: 20, a: 1, b: 1, [s]: 42 }); var item = iter.next({ z: 30, b: 2 }); item.then(({ done, value }) => { @@ -54,7 +55,9 @@ item.then(({ done, value }) => { assert.sameValue(value.z, 30); assert.sameValue(value.a, 1); assert.sameValue(value.b, 2); + assert.sameValue(value[s], 42); assert.sameValue(Object.keys(value).length, 5); + assert(Object.hasOwnProperty.call(value, s)); }).then($DONE, $DONE); assert.sameValue(callCount, 1); diff --git a/test/language/expressions/object/method-definition/async-gen-yield-spread-arr-single.js b/test/language/expressions/object/method-definition/async-gen-yield-spread-arr-single.js index 1650fce4cd46a546d58fd9ecc0b29f5ced316079..fb93afba318d36811096120efab495df409a8438 100644 --- a/test/language/expressions/object/method-definition/async-gen-yield-spread-arr-single.js +++ b/test/language/expressions/object/method-definition/async-gen-yield-spread-arr-single.js @@ -5,7 +5,6 @@ description: Use yield value in a array spread position (Async generator method) esid: prod-AsyncGeneratorMethod flags: [generated, async] -includes: [compareArray.js] info: | Async Generator Function Definitions @@ -32,10 +31,15 @@ var gen = { var iter = gen(); iter.next(false); -var item = iter.next(['a', 'b', 'c']); +var item = iter.next(arr); item.then(({ done, value }) => { - assert(compareArray(value, arr)); + assert.notSameValue(value, arr, 'value is a new array'); + assert(Array.isArray(value), 'value is an Array exotic object'); + assert.sameValue(value.length, 3) + assert.sameValue(value[0], 'a'); + assert.sameValue(value[1], 'b'); + assert.sameValue(value[2], 'c'); assert.sameValue(done, false); }).then($DONE, $DONE); diff --git a/test/language/expressions/object/method-definition/gen-yield-identifier-spread-non-strict.js b/test/language/expressions/object/method-definition/gen-yield-identifier-spread-non-strict.js index 02c646bf754f83895f1ca0a84dd2cae8054396fe..53802b97268b9ee40d5f924ecbfe32dbdaf0578e 100644 --- a/test/language/expressions/object/method-definition/gen-yield-identifier-spread-non-strict.js +++ b/test/language/expressions/object/method-definition/gen-yield-identifier-spread-non-strict.js @@ -19,6 +19,7 @@ info: | ...AssignmentExpression[In, ?Yield] ---*/ +var s = Symbol('s'); var callCount = 0; @@ -42,16 +43,20 @@ var iter = gen(); iter.next(); iter.next(); -iter.next({ x: 10, a: 0, b: 0 }); -iter.next({ y: 20, a: 1, b: 1 }); +iter.next({ x: 10, a: 0, b: 0, [s]: 1 }); +iter.next({ y: 20, a: 1, b: 1, [s]: 42 }); var item = iter.next({ z: 30, b: 2 }); +var value = item.value; + assert.sameValue(item.done, false); -assert.sameValue(item.value.x, 10); -assert.sameValue(item.value.y, 20); -assert.sameValue(item.value.z, 30); -assert.sameValue(item.value.a, 1); -assert.sameValue(item.value.b, 2); -assert.sameValue(Object.keys(item.value).length, 5); +assert.sameValue(value.x, 10); +assert.sameValue(value.y, 20); +assert.sameValue(value.z, 30); +assert.sameValue(value.a, 1); +assert.sameValue(value.b, 2); +assert.sameValue(value[s], 42); +assert(Object.hasOwnProperty.call(value, s)); +assert.sameValue(Object.keys(value).length, 5); assert.sameValue(callCount, 1); diff --git a/test/language/expressions/object/method-definition/gen-yield-spread-arr-single.js b/test/language/expressions/object/method-definition/gen-yield-spread-arr-single.js index 47a3f9d5beca15f60e56b2ac1c43ad8d221c8a3a..9fe742e13f9e64df505d01f0c4e59b319c5a6d32 100644 --- a/test/language/expressions/object/method-definition/gen-yield-spread-arr-single.js +++ b/test/language/expressions/object/method-definition/gen-yield-spread-arr-single.js @@ -5,7 +5,6 @@ description: Use yield value in a array spread position (Generator method) esid: prod-GeneratorMethod flags: [generated] -includes: [compareArray.js] info: | 14.4 Generator Function Definitions @@ -16,7 +15,6 @@ info: | SpreadElement[Yield, Await]: ...AssignmentExpression[+In, ?Yield, ?Await] - ---*/ var arr = ['a', 'b', 'c']; @@ -32,9 +30,15 @@ var gen = { var iter = gen(); iter.next(false); -var item = iter.next(['a', 'b', 'c']); - -assert(compareArray(item.value, arr)); +var item = iter.next(arr); +var value = item.value; + +assert.notSameValue(value, arr, 'value is a new array'); +assert(Array.isArray(value), 'value is an Array exotic object'); +assert.sameValue(value.length, 3) +assert.sameValue(value[0], 'a'); +assert.sameValue(value[1], 'b'); +assert.sameValue(value[2], 'c'); assert.sameValue(item.done, false); assert.sameValue(callCount, 1); diff --git a/test/language/expressions/super/call-spread-obj-symbol-property.js b/test/language/expressions/super/call-spread-obj-symbol-property.js index dd3498438946c96e305f2cec7b83ff7f3f4d4fec..94ba4324f004dff880ef636848a330ebad6ff647 100644 --- a/test/language/expressions/super/call-spread-obj-symbol-property.js +++ b/test/language/expressions/super/call-spread-obj-symbol-property.js @@ -37,6 +37,7 @@ var callCount = 0; class Test262ParentClass { constructor(obj) { assert.sameValue(obj[symbol], 1); + assert(Object.hasOwnProperty.call(obj, symbol)); assert.sameValue(obj.c, 4); assert.sameValue(obj.d, 5); assert.sameValue(Object.keys(obj).length, 2); diff --git a/test/language/statements/async-generator/yield-identifier-spread-non-strict.js b/test/language/statements/async-generator/yield-identifier-spread-non-strict.js index 35c9b4fa92d689c2eb02f97a02504443a2ce2223..dd2759f3f7006e19247002931ff3531ff3e4bd08 100644 --- a/test/language/statements/async-generator/yield-identifier-spread-non-strict.js +++ b/test/language/statements/async-generator/yield-identifier-spread-non-strict.js @@ -20,6 +20,7 @@ info: | ...AssignmentExpression[In, ?Yield] ---*/ +var s = Symbol('s'); var callCount = 0; @@ -42,8 +43,8 @@ var iter = gen(); iter.next(); iter.next(); -iter.next({ x: 10, a: 0, b: 0 }); -iter.next({ y: 20, a: 1, b: 1 }); +iter.next({ x: 10, a: 0, b: 0, [s]: 1 }); +iter.next({ y: 20, a: 1, b: 1, [s]: 42 }); var item = iter.next({ z: 30, b: 2 }); item.then(({ done, value }) => { @@ -53,7 +54,9 @@ item.then(({ done, value }) => { assert.sameValue(value.z, 30); assert.sameValue(value.a, 1); assert.sameValue(value.b, 2); + assert.sameValue(value[s], 42); assert.sameValue(Object.keys(value).length, 5); + assert(Object.hasOwnProperty.call(value, s)); }).then($DONE, $DONE); assert.sameValue(callCount, 1); diff --git a/test/language/statements/async-generator/yield-spread-arr-single.js b/test/language/statements/async-generator/yield-spread-arr-single.js index 80a9641244bc07268468c4d24e629541cfb52faf..b2a3063395eb7ee2a36c2db32d8bb097c9ad7ac2 100644 --- a/test/language/statements/async-generator/yield-spread-arr-single.js +++ b/test/language/statements/async-generator/yield-spread-arr-single.js @@ -5,7 +5,6 @@ description: Use yield value in a array spread position (Async generator Function declaration) esid: prod-AsyncGeneratorDeclaration flags: [generated, async] -includes: [compareArray.js] info: | Async Generator Function Definitions @@ -32,10 +31,15 @@ async function *gen() { var iter = gen(); iter.next(false); -var item = iter.next(['a', 'b', 'c']); +var item = iter.next(arr); item.then(({ done, value }) => { - assert(compareArray(value, arr)); + assert.notSameValue(value, arr, 'value is a new array'); + assert(Array.isArray(value), 'value is an Array exotic object'); + assert.sameValue(value.length, 3) + assert.sameValue(value[0], 'a'); + assert.sameValue(value[1], 'b'); + assert.sameValue(value[2], 'c'); assert.sameValue(done, false); }).then($DONE, $DONE); diff --git a/test/language/statements/class/async-gen-method-static-yield-spread-arr-single.js b/test/language/statements/class/async-gen-method-static-yield-spread-arr-single.js index 3df12ef903643dec4b0999a8d1d7c68ec9e1dc3b..8ae48c2a721a51d661fa0796d125afc4b795f1f3 100644 --- a/test/language/statements/class/async-gen-method-static-yield-spread-arr-single.js +++ b/test/language/statements/class/async-gen-method-static-yield-spread-arr-single.js @@ -5,7 +5,6 @@ description: Use yield value in a array spread position (Static async generator method as a ClassDeclaration element) esid: prod-AsyncGeneratorMethod flags: [generated, async] -includes: [compareArray.js] info: | ClassElement : static MethodDefinition @@ -39,10 +38,15 @@ var gen = C.gen; var iter = gen(); iter.next(false); -var item = iter.next(['a', 'b', 'c']); +var item = iter.next(arr); item.then(({ done, value }) => { - assert(compareArray(value, arr)); + assert.notSameValue(value, arr, 'value is a new array'); + assert(Array.isArray(value), 'value is an Array exotic object'); + assert.sameValue(value.length, 3) + assert.sameValue(value[0], 'a'); + assert.sameValue(value[1], 'b'); + assert.sameValue(value[2], 'c'); assert.sameValue(done, false); }).then($DONE, $DONE); diff --git a/test/language/statements/class/async-gen-method-yield-spread-arr-single.js b/test/language/statements/class/async-gen-method-yield-spread-arr-single.js index 0a34a9577eacf22e374ecd78e3081a65223c10d6..acb035bacb089b9402c2b920403becabdb9c3ae8 100644 --- a/test/language/statements/class/async-gen-method-yield-spread-arr-single.js +++ b/test/language/statements/class/async-gen-method-yield-spread-arr-single.js @@ -5,7 +5,6 @@ description: Use yield value in a array spread position (Async Generator method as a ClassDeclaration element) esid: prod-AsyncGeneratorMethod flags: [generated, async] -includes: [compareArray.js] info: | ClassElement : MethodDefinition @@ -39,10 +38,15 @@ var gen = C.prototype.gen; var iter = gen(); iter.next(false); -var item = iter.next(['a', 'b', 'c']); +var item = iter.next(arr); item.then(({ done, value }) => { - assert(compareArray(value, arr)); + assert.notSameValue(value, arr, 'value is a new array'); + assert(Array.isArray(value), 'value is an Array exotic object'); + assert.sameValue(value.length, 3) + assert.sameValue(value[0], 'a'); + assert.sameValue(value[1], 'b'); + assert.sameValue(value[2], 'c'); assert.sameValue(done, false); }).then($DONE, $DONE); diff --git a/test/language/statements/class/gen-method-static-yield-spread-arr-single.js b/test/language/statements/class/gen-method-static-yield-spread-arr-single.js index 900dc84d4601abd42646f2f87986a379964e5d8a..5a74810166a0da06ec3cb24fbfc7a72f8e799dbd 100644 --- a/test/language/statements/class/gen-method-static-yield-spread-arr-single.js +++ b/test/language/statements/class/gen-method-static-yield-spread-arr-single.js @@ -5,7 +5,6 @@ description: Use yield value in a array spread position (Static generator method as a ClassDeclaration element) esid: prod-GeneratorMethod flags: [generated] -includes: [compareArray.js] info: | ClassElement : static MethodDefinition @@ -22,7 +21,6 @@ info: | SpreadElement[Yield, Await]: ...AssignmentExpression[+In, ?Yield, ?Await] - ---*/ var arr = ['a', 'b', 'c']; @@ -38,9 +36,15 @@ var gen = C.gen; var iter = gen(); iter.next(false); -var item = iter.next(['a', 'b', 'c']); - -assert(compareArray(item.value, arr)); +var item = iter.next(arr); +var value = item.value; + +assert.notSameValue(value, arr, 'value is a new array'); +assert(Array.isArray(value), 'value is an Array exotic object'); +assert.sameValue(value.length, 3) +assert.sameValue(value[0], 'a'); +assert.sameValue(value[1], 'b'); +assert.sameValue(value[2], 'c'); assert.sameValue(item.done, false); assert.sameValue(callCount, 1); diff --git a/test/language/statements/class/gen-method-yield-spread-arr-single.js b/test/language/statements/class/gen-method-yield-spread-arr-single.js index 6ae9e72200249bb8029ce4719fe10d9898c5ffff..86b634eb173265e27e3749d77737367bdbf8387a 100644 --- a/test/language/statements/class/gen-method-yield-spread-arr-single.js +++ b/test/language/statements/class/gen-method-yield-spread-arr-single.js @@ -5,7 +5,6 @@ description: Use yield value in a array spread position (Geenerator method as a ClassDeclaration element) esid: prod-GeneratorMethod flags: [generated] -includes: [compareArray.js] info: | ClassElement : MethodDefinition @@ -22,7 +21,6 @@ info: | SpreadElement[Yield, Await]: ...AssignmentExpression[+In, ?Yield, ?Await] - ---*/ var arr = ['a', 'b', 'c']; @@ -38,9 +36,15 @@ var gen = C.prototype.gen; var iter = gen(); iter.next(false); -var item = iter.next(['a', 'b', 'c']); - -assert(compareArray(item.value, arr)); +var item = iter.next(arr); +var value = item.value; + +assert.notSameValue(value, arr, 'value is a new array'); +assert(Array.isArray(value), 'value is an Array exotic object'); +assert.sameValue(value.length, 3) +assert.sameValue(value[0], 'a'); +assert.sameValue(value[1], 'b'); +assert.sameValue(value[2], 'c'); assert.sameValue(item.done, false); assert.sameValue(callCount, 1); diff --git a/test/language/statements/generators/yield-identifier-spread-non-strict.js b/test/language/statements/generators/yield-identifier-spread-non-strict.js index 3fa89b1dfa78069bba034f3922f7036edaba61f0..0490ee4ac41ababd38e8d47fb04a199722d6e8c8 100644 --- a/test/language/statements/generators/yield-identifier-spread-non-strict.js +++ b/test/language/statements/generators/yield-identifier-spread-non-strict.js @@ -19,6 +19,7 @@ info: | ...AssignmentExpression[In, ?Yield] ---*/ +var s = Symbol('s'); var callCount = 0; @@ -40,16 +41,20 @@ var iter = gen(); iter.next(); iter.next(); -iter.next({ x: 10, a: 0, b: 0 }); -iter.next({ y: 20, a: 1, b: 1 }); +iter.next({ x: 10, a: 0, b: 0, [s]: 1 }); +iter.next({ y: 20, a: 1, b: 1, [s]: 42 }); var item = iter.next({ z: 30, b: 2 }); +var value = item.value; + assert.sameValue(item.done, false); -assert.sameValue(item.value.x, 10); -assert.sameValue(item.value.y, 20); -assert.sameValue(item.value.z, 30); -assert.sameValue(item.value.a, 1); -assert.sameValue(item.value.b, 2); -assert.sameValue(Object.keys(item.value).length, 5); +assert.sameValue(value.x, 10); +assert.sameValue(value.y, 20); +assert.sameValue(value.z, 30); +assert.sameValue(value.a, 1); +assert.sameValue(value.b, 2); +assert.sameValue(value[s], 42); +assert(Object.hasOwnProperty.call(value, s)); +assert.sameValue(Object.keys(value).length, 5); assert.sameValue(callCount, 1); diff --git a/test/language/statements/generators/yield-spread-arr-single.js b/test/language/statements/generators/yield-spread-arr-single.js index 00aaba1eca72938079b541a6c837f104d6aae528..1ef357eec972145a22f24f33e3e7ab4a38b437cc 100644 --- a/test/language/statements/generators/yield-spread-arr-single.js +++ b/test/language/statements/generators/yield-spread-arr-single.js @@ -5,7 +5,6 @@ description: Use yield value in a array spread position (Generator Function declaration) esid: prod-GeneratorDeclaration flags: [generated] -includes: [compareArray.js] info: | 14.4 Generator Function Definitions @@ -16,7 +15,6 @@ info: | SpreadElement[Yield, Await]: ...AssignmentExpression[+In, ?Yield, ?Await] - ---*/ var arr = ['a', 'b', 'c']; @@ -30,9 +28,15 @@ function *gen() { var iter = gen(); iter.next(false); -var item = iter.next(['a', 'b', 'c']); - -assert(compareArray(item.value, arr)); +var item = iter.next(arr); +var value = item.value; + +assert.notSameValue(value, arr, 'value is a new array'); +assert(Array.isArray(value), 'value is an Array exotic object'); +assert.sameValue(value.length, 3) +assert.sameValue(value[0], 'a'); +assert.sameValue(value[1], 'b'); +assert.sameValue(value[2], 'c'); assert.sameValue(item.done, false); assert.sameValue(callCount, 1);