mirror of
https://github.com/tc39/test262.git
synced 2025-07-02 19:54:38 +02:00
This reverts commit b690cb67be9b487eb10156c03e2c00869e88cc9d, reversing changes made to 50dd431dffe5cf86e9064a652d6b01dbbe542cf0. This is necessary because the reverted changeset reduced coverage by an unknown extent.
51 lines
1.8 KiB
JavaScript
51 lines
1.8 KiB
JavaScript
// This file was procedurally generated from the following sources:
|
|
// - src/spread/obj-spread-order.case
|
|
// - src/spread/default/array.template
|
|
/*---
|
|
description: Spread operation follows [[OwnPropertyKeys]] order (Array initializer)
|
|
esid: sec-runtime-semantics-arrayaccumulation
|
|
features: [Symbol, object-spread]
|
|
flags: [generated]
|
|
includes: [compareArray.js]
|
|
info: |
|
|
SpreadElement : ...AssignmentExpression
|
|
|
|
1. Let spreadRef be the result of evaluating AssignmentExpression.
|
|
2. Let spreadObj be ? GetValue(spreadRef).
|
|
3. Let iterator be ? GetIterator(spreadObj).
|
|
4. Repeat
|
|
a. Let next be ? IteratorStep(iterator).
|
|
b. If next is false, return nextIndex.
|
|
c. Let nextValue be ? IteratorValue(next).
|
|
d. Let status be CreateDataProperty(array, ToString(ToUint32(nextIndex)),
|
|
nextValue).
|
|
e. Assert: status is true.
|
|
f. Let nextIndex be nextIndex + 1.
|
|
|
|
Pending Runtime Semantics: PropertyDefinitionEvaluation
|
|
|
|
PropertyDefinition:...AssignmentExpression
|
|
|
|
1. Let exprValue be the result of evaluating AssignmentExpression.
|
|
2. Let fromValue be GetValue(exprValue).
|
|
3. ReturnIfAbrupt(fromValue).
|
|
4. Let excludedNames be a new empty List.
|
|
5. Return CopyDataProperties(object, fromValue, excludedNames).
|
|
|
|
---*/
|
|
var calls = [];
|
|
var o = { get z() { calls.push('z') }, get a() { calls.push('a') } };
|
|
Object.defineProperty(o, 1, { get: () => { calls.push(1) }, enumerable: true });
|
|
Object.defineProperty(o, Symbol('foo'), { get: () => { calls.push("Symbol(foo)") }, enumerable: true });
|
|
|
|
|
|
var callCount = 0;
|
|
|
|
(function(obj) {
|
|
assert(compareArray(calls, [1, 'z', 'a', "Symbol(foo)"]));
|
|
assert.sameValue(Object.keys(obj).length, 3);
|
|
callCount += 1;
|
|
}.apply(null, [{...o}]));
|
|
|
|
assert.sameValue(callCount, 1);
|