mirror of https://github.com/tc39/test262.git
36 lines
1.1 KiB
Plaintext
36 lines
1.1 KiB
Plaintext
// Copyright (C) 2016 the V8 project authors. All rights reserved.
|
|
// This code is governed by the BSD license found in the LICENSE file.
|
|
/*---
|
|
desc: Spread operator applied to AssignmentExpression as only element
|
|
template: default
|
|
info: |
|
|
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.
|
|
---*/
|
|
|
|
//- setup
|
|
var source = [2, 3, 4];
|
|
var target;
|
|
//- args
|
|
...target = source
|
|
//- body
|
|
assert.sameValue(arguments.length, 3);
|
|
assert.sameValue(arguments[0], 2);
|
|
assert.sameValue(arguments[1], 3);
|
|
assert.sameValue(arguments[2], 4);
|
|
assert.sameValue(target, source);
|