Name Description Size
11.1.4-0.js --- es5id: 11.1.4-0 description: > elements elided at the end of an array do not contribute to its length --- 340
11.1.4_4-5-1.js --- info: | Refer 11.1.4; The production ElementList : Elisionopt AssignmentExpression 5.Call the [[DefineOwnProperty]] internal method of array with arguments ToString(firstIndex), the Property Descriptor { [[Value]]: initValue, [[Writable]]: true , [[Enumerable]]: true, [[Configurable]]: true}, and false. es5id: 11.1.4_4-5-1 description: > Initialize array using ElementList (Elisionopt AssignmentExpression) when index property (read-only) exists in Array.prototype (step 5) --- 990
11.1.4_5-6-1.js --- info: | Refer 11.1.4; The production ElementList : ElementList , Elisionopt AssignmentExpression 6.Call the [[DefineOwnProperty]] internal method of array with arguments ToString(ToUint32((pad+len)) and the Property Descriptor { [[Value]]: initValue , [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: true}, and false. es5id: 11.1.4_5-6-1 description: > Initialize array using ElementList (ElementList , Elisionopt AssignmentExpression) when index property (read-only) exists in Array.prototype (step 6) --- 1032
browser.js 0
S11.1.4_A1.1.js --- info: "Evaluate the production ArrayLiteral: [ ]" es5id: 11.1.4_A1.1 description: > Checking various properties of the array defined with expression "var array = []" --- 959
S11.1.4_A1.2.js --- info: "Evaluate the production ArrayLiteral: [ Elision ]" es5id: 11.1.4_A1.2 description: > Checking various properties the array defined with "var array = [,,,,,]" --- 983
S11.1.4_A1.3.js --- info: "Evaluate the production ArrayLiteral: [ AssignmentExpression ]" es5id: 11.1.4_A1.3 description: > Checking various properteis and contents of the array defined with "var array = [1,2,3,4,5]" --- 1691
S11.1.4_A1.4.js --- info: "Evaluate the production ArrayLiteral: [ Elision, AssignmentExpression ]" es5id: 11.1.4_A1.4 description: > Checking various properteis and content of the array defined with "var array = [,,,1,2]" --- 1714
S11.1.4_A1.5.js --- info: "Evaluate the production ArrayLiteral: [ AssignmentExpression, Elision ]" es5id: 11.1.4_A1.5 description: > Checking various properteis and contents of the array defined with "var array = [4,5,,,,]" --- 1726
S11.1.4_A1.6.js --- info: | Evaluate the production ArrayLiteral: [ Elision, AssignmentExpression, Elision ] es5id: 11.1.4_A1.6 description: > Checking various properteis and contents of the array defined with "var array = [,,3,,,]" --- 1748
S11.1.4_A1.7.js --- info: | Evaluate the production ArrayLiteral: [ AssignmentExpression, Elision, AssignmentExpression ] es5id: 11.1.4_A1.7 description: > Checking various properteis and contents of the array defined with "var array = [1,2,,4,5]" --- 1735
S11.1.4_A2.js --- info: Create multi dimensional array es5id: 11.1.4_A2 description: > Checking various properteis and contents of the arrya defined with "var array = [[1,2], [3], []]" --- 4432
shell.js 0
spread-err-mult-err-expr-throws.js --- description: Spread operator following other arguments when evaluation throws (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [generators] flags: [generated] 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. 12.3.6.1 Runtime Semantics: ArgumentListEvaluation ArgumentList : ArgumentList , ... AssignmentExpression 1. Let precedingArgs be the result of evaluating ArgumentList. 2. Let spreadRef be the result of evaluating AssignmentExpression. 3. Let iterator be GetIterator(GetValue(spreadRef) ). 4. ReturnIfAbrupt(iterator). --- 1372
spread-err-mult-err-iter-get-value.js --- description: Spread operator following other arguments when GetIterator fails (@@iterator function return value) (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [Symbol.iterator] flags: [generated] 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. 12.3.6.1 Runtime Semantics: ArgumentListEvaluation ArgumentList : ArgumentList , ... AssignmentExpression 1. Let precedingArgs be the result of evaluating ArgumentList. 2. Let spreadRef be the result of evaluating AssignmentExpression. 3. Let iterator be GetIterator(GetValue(spreadRef) ). 4. ReturnIfAbrupt(iterator). 7.4.1 GetIterator ( obj, method ) [...] 2. Let iterator be ? Call(method, obj). 3. If Type(iterator) is not Object, throw a TypeError exception. --- 1642
spread-err-mult-err-itr-get-call.js --- description: Spread operator following other arguments when GetIterator fails (@@iterator function invocation) (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [Symbol.iterator] flags: [generated] 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. 12.3.6.1 Runtime Semantics: ArgumentListEvaluation ArgumentList : ArgumentList , ... AssignmentExpression 1. Let precedingArgs be the result of evaluating ArgumentList. 2. Let spreadRef be the result of evaluating AssignmentExpression. 3. Let iterator be GetIterator(GetValue(spreadRef) ). 4. ReturnIfAbrupt(iterator). 7.4.1 GetIterator ( obj, method ) [...] 3. Let iterator be Call(method,obj). 4. ReturnIfAbrupt(iterator). --- 1578
spread-err-mult-err-itr-get-get.js --- description: Spread operator following other arguments when GetIterator fails (@@iterator property access) (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [Symbol.iterator] flags: [generated] 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. 12.3.6.1 Runtime Semantics: ArgumentListEvaluation ArgumentList : ArgumentList , ... AssignmentExpression 1. Let precedingArgs be the result of evaluating ArgumentList. 2. Let spreadRef be the result of evaluating AssignmentExpression. 3. Let iterator be GetIterator(GetValue(spreadRef) ). 4. ReturnIfAbrupt(iterator). 7.4.1 GetIterator ( obj, method ) 1. If method was not passed, then a. Let method be ? GetMethod(obj, @@iterator). --- 1618
spread-err-mult-err-itr-step.js --- description: Spread operator following other arguments when IteratorStep fails (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [Symbol.iterator] flags: [generated] 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. 12.3.6.1 Runtime Semantics: ArgumentListEvaluation ArgumentList : ArgumentList , ... AssignmentExpression 1. Let precedingArgs be the result of evaluating ArgumentList. 2. Let spreadRef be the result of evaluating AssignmentExpression. 3. Let iterator be GetIterator(GetValue(spreadRef) ). 4. ReturnIfAbrupt(iterator). 7.4.5 IteratorStep ( iterator ) 1. Let result be IteratorNext(iterator). 2. ReturnIfAbrupt(result). 7.4.2 IteratorNext ( iterator, value ) 1. If value was not passed, then a. Let result be Invoke(iterator, "next", « »). [...] 3. ReturnIfAbrupt(result). --- 1761
spread-err-mult-err-itr-value.js --- description: Spread operator following other arguments when IteratorValue fails (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [Symbol.iterator] flags: [generated] 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. 12.3.6.1 Runtime Semantics: ArgumentListEvaluation ArgumentList : ArgumentList , ... AssignmentExpression 1. Let precedingArgs be the result of evaluating ArgumentList. 2. Let spreadRef be the result of evaluating AssignmentExpression. 3. Let iterator be GetIterator(GetValue(spreadRef) ). 4. ReturnIfAbrupt(iterator). 7.4.4 IteratorValue ( iterResult ) 1. Assert: Type(iterResult) is Object. 2. Return Get(iterResult, "value"). 7.3.1 Get (O, P) [...] 3. Return O.[[Get]](P, O). --- 1768
spread-err-mult-err-obj-unresolvable.js --- description: Object Spread operator results in error when using an unresolvable reference (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [object-spread] flags: [generated] 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). --- 1405
spread-err-mult-err-unresolvable.js --- description: Spread operator following other arguments when reference is unresolvable (Array initializer) esid: sec-runtime-semantics-arrayaccumulation flags: [generated] 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. 12.3.6.1 Runtime Semantics: ArgumentListEvaluation ArgumentList : ArgumentList , ... AssignmentExpression 1. Let precedingArgs be the result of evaluating ArgumentList. 2. Let spreadRef be the result of evaluating AssignmentExpression. 3. Let iterator be GetIterator(GetValue(spreadRef) ). 4. ReturnIfAbrupt(iterator). 6.2.3.1 GetValue (V) 1. ReturnIfAbrupt(V). 2. If Type(V) is not Reference, return V. 3. Let base be GetBase(V). 4. If IsUnresolvableReference(V), throw a ReferenceError exception. --- 1539
spread-err-sngl-err-expr-throws.js --- description: Spread operator applied to the only argument when evaluation throws (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [generators] flags: [generated] 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. 12.3.6.1 Runtime Semantics: ArgumentListEvaluation ArgumentList : ... AssignmentExpression 1. Let list be an empty List. 2. Let spreadRef be the result of evaluating AssignmentExpression. 3. Let spreadObj be GetValue(spreadRef). 4. Let iterator be GetIterator(spreadObj). 5. ReturnIfAbrupt(iterator). --- 1357
spread-err-sngl-err-itr-get-call.js --- description: Spread operator applied to the only argument when GetIterator fails (@@iterator function invocation) (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [Symbol.iterator] flags: [generated] 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. 12.3.6.1 Runtime Semantics: ArgumentListEvaluation ArgumentList : ... AssignmentExpression 1. Let list be an empty List. 2. Let spreadRef be the result of evaluating AssignmentExpression. 3. Let spreadObj be GetValue(spreadRef). 4. Let iterator be GetIterator(spreadObj). 5. ReturnIfAbrupt(iterator). 7.4.1 GetIterator ( obj, method ) [...] 3. Let iterator be Call(method,obj). 4. ReturnIfAbrupt(iterator). --- 1564
spread-err-sngl-err-itr-get-get.js --- description: Spread operator applied to the only argument when GetIterator fails (@@iterator property access) (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [Symbol.iterator] flags: [generated] 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. 12.3.6.1 Runtime Semantics: ArgumentListEvaluation ArgumentList : ... AssignmentExpression 1. Let list be an empty List. 2. Let spreadRef be the result of evaluating AssignmentExpression. 3. Let spreadObj be GetValue(spreadRef). 4. Let iterator be GetIterator(spreadObj). 5. ReturnIfAbrupt(iterator). 7.4.1 GetIterator ( obj, method ) 1. If method was not passed, then a. Let method be ? GetMethod(obj, @@iterator). --- 1604
spread-err-sngl-err-itr-get-value.js --- description: Spread operator applied to the only argument when GetIterator fails (@@iterator function return value) (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [Symbol.iterator] flags: [generated] 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. 12.3.6.1 Runtime Semantics: ArgumentListEvaluation ArgumentList : ... AssignmentExpression 1. Let list be an empty List. 2. Let spreadRef be the result of evaluating AssignmentExpression. 3. Let spreadObj be GetValue(spreadRef). 4. Let iterator be GetIterator(spreadObj). 5. ReturnIfAbrupt(iterator). 7.4.1 GetIterator ( obj, method ) [...] 2. Let iterator be ? Call(method, obj). 3. If Type(iterator) is not Object, throw a TypeError exception. --- 1590
spread-err-sngl-err-itr-step.js --- description: Spread operator applied to the only argument when IteratorStep fails (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [Symbol.iterator] flags: [generated] 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. 12.3.6.1 Runtime Semantics: ArgumentListEvaluation ArgumentList : ... AssignmentExpression 1. Let list be an empty List. 2. Let spreadRef be the result of evaluating AssignmentExpression. 3. Let spreadObj be GetValue(spreadRef). 4. Let iterator be GetIterator(spreadObj). 5. ReturnIfAbrupt(iterator). 6. Repeat a. Let next be IteratorStep(iterator). b. ReturnIfAbrupt(next). 7.4.5 IteratorStep ( iterator ) 1. Let result be IteratorNext(iterator). 2. ReturnIfAbrupt(result). 7.4.2 IteratorNext ( iterator, value ) 1. If value was not passed, then a. Let result be Invoke(iterator, "next", « »). [...] 3. ReturnIfAbrupt(result). --- 1839
spread-err-sngl-err-itr-value.js --- description: Spread operator applied to the only argument when IteratorValue fails (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [Symbol.iterator] flags: [generated] 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. 12.3.6.1 Runtime Semantics: ArgumentListEvaluation ArgumentList : ... AssignmentExpression 1. Let list be an empty List. 2. Let spreadRef be the result of evaluating AssignmentExpression. 3. Let spreadObj be GetValue(spreadRef). 4. Let iterator be GetIterator(spreadObj). 5. ReturnIfAbrupt(iterator). 6. Repeat a. Let next be IteratorStep(iterator). b. ReturnIfAbrupt(next). c. If next is false, return list. d. Let nextArg be IteratorValue(next). e. ReturnIfAbrupt(nextArg). 7.4.4 IteratorValue ( iterResult ) 1. Assert: Type(iterResult) is Object. 2. Return Get(iterResult, "value"). 7.3.1 Get (O, P) [...] 3. Return O.[[Get]](P, O). --- 1968
spread-err-sngl-err-obj-unresolvable.js --- description: Object Spread operator results in error when using an unresolvable reference (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [object-spread] flags: [generated] 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). --- 1399
spread-err-sngl-err-unresolvable.js --- description: Spread operator applied to the only argument when reference is unresolvable (Array initializer) esid: sec-runtime-semantics-arrayaccumulation flags: [generated] 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. 12.3.6.1 Runtime Semantics: ArgumentListEvaluation ArgumentList : ... AssignmentExpression 1. Let list be an empty List. 2. Let spreadRef be the result of evaluating AssignmentExpression. 3. Let spreadObj be GetValue(spreadRef). 4. Let iterator be GetIterator(spreadObj). 5. ReturnIfAbrupt(iterator). 6.2.3.1 GetValue (V) 1. ReturnIfAbrupt(V). 2. If Type(V) is not Reference, return V. 3. Let base be GetBase(V). 4. If IsUnresolvableReference(V), throw a ReferenceError exception. --- 1525
spread-mult-empty.js --- description: Spread operator following other arguments when no iteration occurs (Array initializer) esid: sec-runtime-semantics-arrayaccumulation flags: [generated] 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. 12.3.6.1 Runtime Semantics: ArgumentListEvaluation ArgumentList : ArgumentList , ... AssignmentExpression 1. Let precedingArgs be the result of evaluating ArgumentList. 2. Let spreadRef be the result of evaluating AssignmentExpression. 3. Let iterator be GetIterator(GetValue(spreadRef) ). 4. ReturnIfAbrupt(iterator). 5. Repeat a. Let next be IteratorStep(iterator). b. ReturnIfAbrupt(next). c. If next is false, return precedingArgs. --- 1655
spread-mult-expr.js --- description: Spread operator applied to AssignmentExpression following other elements (Array initializer) esid: sec-runtime-semantics-arrayaccumulation flags: [generated] 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. 12.3.6.1 Runtime Semantics: ArgumentListEvaluation ArgumentList : ArgumentList , ... AssignmentExpression 1. Let precedingArgs be the result of evaluating ArgumentList. 2. Let spreadRef be the result of evaluating AssignmentExpression. 3. Let iterator be GetIterator(GetValue(spreadRef) ). 4. ReturnIfAbrupt(iterator). 5. Repeat a. Let next be IteratorStep(iterator). b. ReturnIfAbrupt(next). c. If next is false, return precedingArgs. --- 1816
spread-mult-iter.js --- description: Spread operator following other arguments with a valid iterator (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [Symbol.iterator] flags: [generated] 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. 12.3.6.1 Runtime Semantics: ArgumentListEvaluation ArgumentList : ... AssignmentExpression 1. Let list be an empty List. 2. Let spreadRef be the result of evaluating AssignmentExpression. 3. Let spreadObj be GetValue(spreadRef). 4. Let iterator be GetIterator(spreadObj). 5. ReturnIfAbrupt(iterator). 6. Repeat a. Let next be IteratorStep(iterator). b. ReturnIfAbrupt(next). c. If next is false, return list. d. Let nextArg be IteratorValue(next). e. ReturnIfAbrupt(nextArg). f. Append nextArg as the last element of list. --- 2068
spread-mult-literal.js --- description: Spread operator applied to AssignmentExpression following other elements (Array initializer) esid: sec-runtime-semantics-arrayaccumulation flags: [generated] 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. 12.3.6.1 Runtime Semantics: ArgumentListEvaluation ArgumentList : ArgumentList , ... AssignmentExpression 1. Let precedingArgs be the result of evaluating ArgumentList. 2. Let spreadRef be the result of evaluating AssignmentExpression. 3. Let iterator be GetIterator(GetValue(spreadRef) ). 4. ReturnIfAbrupt(iterator). 5. Repeat a. Let next be IteratorStep(iterator). b. ReturnIfAbrupt(next). c. If next is false, return precedingArgs. --- 1741
spread-mult-obj-ident.js --- description: Object Spread operator following other properties (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [object-spread] flags: [generated] includes: [propertyHelper.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). --- 1971
spread-mult-obj-null.js --- description: Object Spread operator following other arguments with null value (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [object-spread] flags: [generated] 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). --- 1535
spread-mult-obj-undefined.js --- description: Object Spread operator following other arguments with undefined (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [object-spread] flags: [generated] 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). --- 1544
spread-obj-getter-descriptor.js --- description: Spread operation with getter results in data property descriptor (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [object-spread] flags: [generated] includes: [propertyHelper.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). --- 1739
spread-obj-getter-init.js --- description: Getter in object literal is not evaluated (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [object-spread] flags: [generated] 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. --- 1254
spread-obj-manipulate-outter-obj-in-getter.js --- description: Getter manipulates outter object before it's spread operation (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [object-spread] flags: [generated] 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). --- 1736
spread-obj-mult-spread-getter.js --- description: Multiple Object Spread usage calls getter multiple times (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [object-spread] flags: [generated] 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). --- 1669
spread-obj-mult-spread.js --- description: Multiple Object Spread operation (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [object-spread] flags: [generated] 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). --- 1604
spread-obj-null.js --- description: Null Object Spread is ignored (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [object-spread] flags: [generated] 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). --- 1423
spread-obj-override-immutable.js --- description: Object Spread overriding immutable properties (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [object-spread] flags: [generated] includes: [propertyHelper.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. --- 1468
spread-obj-overrides-prev-properties.js --- description: Object Spread properties overrides previous definitions (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [object-spread] flags: [generated] 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). --- 1618
spread-obj-skip-non-enumerable.js --- description: Object Spread doesn't copy non-enumerable properties (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [object-spread] flags: [generated] 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. --- 1210
spread-obj-spread-order.js --- 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). --- 1818
spread-obj-symbol-property.js --- description: Spread operation where source object contains Symbol properties (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [Symbol, object-spread] flags: [generated] 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). --- 1727
spread-obj-undefined.js --- description: Undefined Object Spread is ignored (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [object-spread] flags: [generated] 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). --- 1438
spread-obj-with-overrides.js --- description: Object Spread properties being overriden (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [Symbol, object-spread] flags: [generated] 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). --- 1898
spread-sngl-empty.js --- description: Spread operator applied to the only argument when no iteration occurs (Array initializer) esid: sec-runtime-semantics-arrayaccumulation flags: [generated] 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. 12.3.6.1 Runtime Semantics: ArgumentListEvaluation ArgumentList : ... AssignmentExpression 1. Let list be an empty List. 2. Let spreadRef be the result of evaluating AssignmentExpression. 3. Let spreadObj be GetValue(spreadRef). 4. Let iterator be GetIterator(spreadObj). 5. ReturnIfAbrupt(iterator). 6. Repeat a. Let next be IteratorStep(iterator). b. ReturnIfAbrupt(next). c. If next is false, return list. [...] --- 1528
spread-sngl-expr.js --- description: Spread operator applied to AssignmentExpression as only element (Array initializer) esid: sec-runtime-semantics-arrayaccumulation flags: [generated] 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. 12.3.6.1 Runtime Semantics: ArgumentListEvaluation ArgumentList : ... AssignmentExpression 1. Let list be an empty List. 2. Let spreadRef be the result of evaluating AssignmentExpression. 3. Let spreadObj be GetValue(spreadRef). 4. Let iterator be GetIterator(spreadObj). 5. ReturnIfAbrupt(iterator). 6. Repeat a. Let next be IteratorStep(iterator). b. ReturnIfAbrupt(next). c. If next is false, return list. d. Let nextArg be IteratorValue(next). e. ReturnIfAbrupt(nextArg). f. Append nextArg as the last element of list. --- 1839
spread-sngl-iter.js --- description: Spread operator applied to the only argument with a valid iterator (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [Symbol.iterator] flags: [generated] 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. 12.3.6.1 Runtime Semantics: ArgumentListEvaluation ArgumentList : ... AssignmentExpression 1. Let list be an empty List. 2. Let spreadRef be the result of evaluating AssignmentExpression. 3. Let spreadObj be GetValue(spreadRef). 4. Let iterator be GetIterator(spreadObj). 5. ReturnIfAbrupt(iterator). 6. Repeat a. Let next be IteratorStep(iterator). b. ReturnIfAbrupt(next). c. If next is false, return list. d. Let nextArg be IteratorValue(next). e. ReturnIfAbrupt(nextArg). f. Append nextArg as the last element of list. --- 1951
spread-sngl-literal.js --- description: Spread operator applied to array literal as only element (Array initializer) esid: sec-runtime-semantics-arrayaccumulation flags: [generated] 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. 12.3.6.1 Runtime Semantics: ArgumentListEvaluation ArgumentList : ... AssignmentExpression 1. Let list be an empty List. 2. Let spreadRef be the result of evaluating AssignmentExpression. 3. Let spreadObj be GetValue(spreadRef). 4. Let iterator be GetIterator(spreadObj). 5. ReturnIfAbrupt(iterator). 6. Repeat a. Let next be IteratorStep(iterator). b. ReturnIfAbrupt(next). c. If next is false, return list. d. Let nextArg be IteratorValue(next). e. ReturnIfAbrupt(nextArg). f. Append nextArg as the last element of list. --- 1757
spread-sngl-obj-ident.js --- description: Object Spread operator without other arguments (Array initializer) esid: sec-runtime-semantics-arrayaccumulation features: [object-spread] flags: [generated] includes: [propertyHelper.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). --- 1726