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);
|