11.2.3-3_1.js |
---
es5id: 11.2.3-3_1
description: >
Call arguments are evaluated before the check is made to see if
the object is actually callable (FunctionDeclaration)
--- |
592 |
11.2.3-3_2.js |
---
es5id: 11.2.3-3_2
description: >
Call arguments are evaluated before the check is made to see if
the object is actually callable (FunctionExpression)
--- |
598 |
11.2.3-3_3.js |
---
es5id: 11.2.3-3_3
description: >
Call arguments are not evaluated before the check is made to see
if the object is actually callable (undefined member)
--- |
598 |
11.2.3-3_4.js |
---
es5id: 11.2.3-3_4
description: >
Call arguments are evaluated before the check is made to see if
the object is actually callable (property)
--- |
865 |
11.2.3-3_5.js |
---
es5id: 11.2.3-3_5
description: >
Call arguments are evaluated before the check is made to see if
the object is actually callable (eval'ed)
--- |
589 |
11.2.3-3_6.js |
---
es5id: 11.2.3-3_6
description: >
Call arguments are evaluated before the check is made to see if
the object is actually callable (getter called)
--- |
749 |
11.2.3-3_7.js |
---
es5id: 11.2.3-3_7
description: >
Call arguments are evaluated before the check is made to see if
the object is actually callable (getter called as indexed property)
--- |
772 |
11.2.3-3_8.js |
---
es5id: 11.2.3-3_8
description: >
Call arguments are evaluated before the check is made to see if
the object is actually callable (global object)
flags: [noStrict]
--- |
587 |
browser.js |
|
0 |
eval-err-args.js |
---
description: Error evaluating arguments list for direct eval
esid: sec-function-calls-runtime-semantics-evaluation
info: |
[...]
3. If Type(ref) is Reference and IsPropertyReference(ref) is false and
GetReferencedName(ref) is "eval", then
a. If SameValue(func, %eval%) is true, then
i. Let argList be ? ArgumentListEvaluation(Arguments).
12.3.6.1 Runtime Semantics: ArgumentListEvaluation
ArgumentList : AssignmentExpression
1. Let ref be the result of evaluating AssignmentExpression.
2. Let arg be ? GetValue(ref).
--- |
814 |
eval-first-arg.js |
---
info: |
If the eval function is called with some argument, then use a first
argument
es5id: 15.1.2.1_A1.2_T1
description: eval("x = 1", "x = 2"), x equal 1, not 2
--- |
478 |
eval-no-args.js |
---
description: Error evaluating arguments list for direct eval
esid: sec-function-calls-runtime-semantics-evaluation
info: |
[...]
3. If Type(ref) is Reference and IsPropertyReference(ref) is false and
GetReferencedName(ref) is "eval", then
a. If SameValue(func, %eval%) is true, then
i. Let argList be ? ArgumentListEvaluation(Arguments).
ii. If argList has no elements, return undefined.
--- |
640 |
eval-realm-indirect.js |
---
esid: sec-function-calls-runtime-semantics-evaluation
es6id: 12.3.4.1
description: >
An eval function from another realm is not a candidate for direct eval
info: |
[...]
3. If Type(ref) is Reference and IsPropertyReference(ref) is false and GetReferencedName(ref) is "eval", then
a. If SameValue(func, %eval%) is true, then
[...]
flags: [noStrict]
features: [cross-realm]
--- |
754 |
eval-spread-empty-leading.js |
---
esid: sec-function-calls-runtime-semantics-evaluation
description: >
Direct eval call with empty leading spread.
info: |
12.3.4.1 Runtime Semantics: Evaluation
...
3. If Type(ref) is Reference and IsPropertyReference(ref) is false and GetReferencedName(ref) is "eval", then
a. If SameValue(func, %eval%) is true, then
i. Let argList be ? ArgumentListEvaluation(Arguments).
ii. If argList has no elements, return undefined.
iii. Let evalText be the first element of argList.
...
features: [Symbol.iterator]
--- |
1090 |
eval-spread-empty-trailing.js |
---
esid: sec-function-calls-runtime-semantics-evaluation
description: >
Direct eval call with empty trailing spread.
info: |
12.3.4.1 Runtime Semantics: Evaluation
...
3. If Type(ref) is Reference and IsPropertyReference(ref) is false and GetReferencedName(ref) is "eval", then
a. If SameValue(func, %eval%) is true, then
i. Let argList be ? ArgumentListEvaluation(Arguments).
ii. If argList has no elements, return undefined.
iii. Let evalText be the first element of argList.
...
features: [Symbol.iterator]
--- |
1091 |
eval-spread-empty.js |
---
esid: sec-function-calls-runtime-semantics-evaluation
description: >
Direct eval call with empty spread.
info: |
12.3.4.1 Runtime Semantics: Evaluation
...
3. If Type(ref) is Reference and IsPropertyReference(ref) is false and GetReferencedName(ref) is "eval", then
a. If SameValue(func, %eval%) is true, then
i. Let argList be ? ArgumentListEvaluation(Arguments).
ii. If argList has no elements, return undefined.
...
features: [Symbol.iterator]
--- |
946 |
eval-spread.js |
---
esid: sec-function-calls-runtime-semantics-evaluation
description: >
Direct eval call with spread.
info: |
12.3.4.1 Runtime Semantics: Evaluation
...
3. If Type(ref) is Reference and IsPropertyReference(ref) is false and GetReferencedName(ref) is "eval", then
a. If SameValue(func, %eval%) is true, then
i. Let argList be ? ArgumentListEvaluation(Arguments).
ii. If argList has no elements, return undefined.
iii. Let evalText be the first element of argList.
...
features: [Symbol.iterator]
--- |
1202 |
eval-strictness-inherit-non-strict.js |
---
description: Evaluated code honors the strictness of the calling context
esid: sec-function-calls-runtime-semantics-evaluation
info: |
[...]
3. If Type(ref) is Reference and IsPropertyReference(ref) is false and
GetReferencedName(ref) is "eval", then
a. If SameValue(func, %eval%) is true, then
[...]
iv. If the source code matching this CallExpression is strict code,
let strictCaller be true. Otherwise let strictCaller be false.
[...]
flags: [noStrict]
--- |
909 |
eval-strictness-inherit-strict-strict.js |
---
description: Evaluated code honors the strictness of the calling context
esid: sec-function-calls-runtime-semantics-evaluation
info: |
[...]
3. If Type(ref) is Reference and IsPropertyReference(ref) is false and
GetReferencedName(ref) is "eval", then
a. If SameValue(func, %eval%) is true, then
[...]
iv. If the source code matching this CallExpression is strict code,
let strictCaller be true. Otherwise let strictCaller be false.
[...]
flags: [onlyStrict]
--- |
927 |
S11.2.3_A1.js |
---
info: |
White Space and Line Terminator between MemberExpression and Arguments
are allowed
es5id: 11.2.3_A1
description: Checking by using eval
--- |
1467 |
S11.2.3_A2.js |
---
info: "CallExpression : MemberExpression Arguments uses GetValue"
es5id: 11.2.3_A2
description: If GetBase(MemberExpression) is null, throw ReferenceError
--- |
844 |
S11.2.3_A3_T1.js |
---
info: If MemberExpression is not Object, throw TypeError
es5id: 11.2.3_A3_T1
description: Checking "boolean primitive" case
--- |
819 |
S11.2.3_A3_T2.js |
---
info: If MemberExpression is not Object, throw TypeError
es5id: 11.2.3_A3_T2
description: Checking "number primitive" case
--- |
799 |
S11.2.3_A3_T3.js |
---
info: If MemberExpression is not Object, throw TypeError
es5id: 11.2.3_A3_T3
description: Checking "string primitive" case
--- |
813 |
S11.2.3_A3_T4.js |
---
info: If MemberExpression is not Object, throw TypeError
es5id: 11.2.3_A3_T4
description: Checking "undefined" case
--- |
836 |
S11.2.3_A3_T5.js |
---
info: If MemberExpression is not Object, throw TypeError
es5id: 11.2.3_A3_T5
description: Checking "null" case
--- |
808 |
S11.2.3_A4_T1.js |
---
info: |
If MemberExpression does not implement the internal [[Call]] method,
throw TypeError
es5id: 11.2.3_A4_T1
description: Checking Boolean object case
--- |
949 |
S11.2.3_A4_T2.js |
---
info: |
If MemberExpression does not implement the internal [[Call]] method,
throw TypeError
es5id: 11.2.3_A4_T2
description: Checking Number object case
--- |
918 |
S11.2.3_A4_T3.js |
---
info: |
If MemberExpression does not implement the internal [[Call]] method,
throw TypeError
es5id: 11.2.3_A4_T3
description: Checking String object case
--- |
932 |
S11.2.3_A4_T4.js |
---
info: |
If MemberExpression does not implement the internal [[Call]] method,
throw TypeError
es5id: 11.2.3_A4_T4
description: Checking Global object case
--- |
576 |
S11.2.3_A4_T5.js |
---
info: |
If MemberExpression does not implement the internal [[Call]] method,
throw TypeError
es5id: 11.2.3_A4_T5
description: Checking Math object case
--- |
574 |
S11.2.4_A1.1_T1.js |
---
info: "Arguments : ()"
es5id: 11.2.4_A1.1_T1
description: Function is declared with no FormalParameterList
--- |
642 |
S11.2.4_A1.1_T2.js |
---
info: "Arguments : ()"
es5id: 11.2.4_A1.1_T2
description: Function is declared with FormalParameterList
--- |
806 |
S11.2.4_A1.2_T1.js |
---
info: "Arguments : (ArgumentList)"
es5id: 11.2.4_A1.2_T1
description: Function is declared with no FormalParameterList
--- |
1202 |
S11.2.4_A1.2_T2.js |
---
info: "Arguments : (ArgumentList)"
es5id: 11.2.4_A1.2_T2
description: Function is declared with FormalParameterList
--- |
1349 |
S11.2.4_A1.3_T1.js |
---
info: |
Arguments : (ArgumentList : ArgumentList,, AssignmentExpression) is a bad
syntax
es5id: 11.2.4_A1.3_T1
description: incorrect syntax
negative:
phase: parse
type: SyntaxError
--- |
425 |
S11.2.4_A1.4_T1.js |
---
info: "Arguments : (ArgumentList : ArgumentList, AssignmentExpression)"
es5id: 11.2.4_A1.4_T1
description: >
Return an internal list whose length is one greater than the
length of ArgumentList and whose items are the items of
ArgumentList, in order, followed at the end by
GetValue(AssignmentExpression), which is the last item of the new
list
flags: [noStrict]
--- |
598 |
S11.2.4_A1.4_T2.js |
---
info: "Arguments : (ArgumentList : ArgumentList, AssignmentExpression)"
es5id: 11.2.4_A1.4_T2
description: >
Return an internal list whose length is one greater than the
length of ArgumentList and whose items are the items of
ArgumentList, in order, followed at the end by
GetValue(AssignmentExpression), which is the last item of the new
list
--- |
883 |
S11.2.4_A1.4_T3.js |
---
info: "Arguments : (ArgumentList : ArgumentList, AssignmentExpression)"
es5id: 11.2.4_A1.4_T3
description: >
Return an internal list whose length is one greater than the
length of ArgumentList and whose items are the items of
ArgumentList, in order, followed at the end by
GetValue(AssignmentExpression), which is the last item of the new
list
flags: [noStrict]
--- |
764 |
S11.2.4_A1.4_T4.js |
---
info: "Arguments : (ArgumentList : ArgumentList, AssignmentExpression)"
es5id: 11.2.4_A1.4_T4
description: >
Return an internal list whose length is one greater than the
length of ArgumentList and whose items are the items of
ArgumentList, in order, followed at the end by
GetValue(AssignmentExpression), which is the last item of the new
list
--- |
1250 |
scope-lex-close.js |
---
esid: sec-ecmascript-function-objects-call-thisargument-argumentslist
description: >
Removal of lexical environment for the function parameters and body
info: |
[...]
3. Let callerContext be the running execution context.
[...]
8. Remove calleeContext from the execution context stack and restore
callerContext as the running execution context.
[...]
features: [let]
--- |
966 |
scope-lex-open.js |
---
esid: sec-ecmascript-function-objects-call-thisargument-argumentslist
description: >
Creation of new variable environment for the function parameters and body
(as distinct from that for the function's BindingIdentifier)
info: |
[...]
3. Let callerContext be the running execution context.
4. Let calleeContext be PrepareForOrdinaryCall(F, undefined).
[...]
9.2.1.1 PrepareForOrdinaryCall
[...]
8. Let localEnv be NewFunctionEnvironment(F, newTarget).
9. Set the LexicalEnvironment of calleeContext to localEnv.
10. Set the VariableEnvironment of calleeContext to localEnv.
[...]
features: [let]
--- |
1304 |
scope-var-close.js |
---
esid: sec-prepareforordinarycall
description: >
Removal of variable environment for the function parameters and body
info: |
[...]
3. Let callerContext be the running execution context.
[...]
8. Remove calleeContext from the execution context stack and restore
callerContext as the running execution context.
[...]
--- |
914 |
scope-var-open.js |
---
esid: sec-prepareforordinarycall
description: >
Creation of new variable environment for the function parameters and body
(as distinct from that for the function's BindingIdentifier)
info: |
[...]
3. Let callerContext be the running execution context.
4. Let calleeContext be PrepareForOrdinaryCall(F, undefined).
[...]
9.2.1.1 PrepareForOrdinaryCall
[...]
8. Let localEnv be NewFunctionEnvironment(F, newTarget).
9. Set the LexicalEnvironment of calleeContext to localEnv.
10. Set the VariableEnvironment of calleeContext to localEnv.
[...]
--- |
1456 |
shell.js |
|
0 |
spread-err-mult-err-expr-throws.js |
---
description: Spread operator following other arguments when evaluation throws (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [generators]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1161 |
spread-err-mult-err-iter-get-value.js |
---
description: Spread operator following other arguments when GetIterator fails (@@iterator function return value) (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [Symbol.iterator]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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.
--- |
1431 |
spread-err-mult-err-itr-get-call.js |
---
description: Spread operator following other arguments when GetIterator fails (@@iterator function invocation) (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [Symbol.iterator]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1367 |
spread-err-mult-err-itr-get-get.js |
---
description: Spread operator following other arguments when GetIterator fails (@@iterator property access) (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [Symbol.iterator]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1407 |
spread-err-mult-err-itr-step.js |
---
description: Spread operator following other arguments when IteratorStep fails (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [Symbol.iterator]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1550 |
spread-err-mult-err-itr-value.js |
---
description: Spread operator following other arguments when IteratorValue fails (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [Symbol.iterator]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1557 |
spread-err-mult-err-obj-unresolvable.js |
---
description: Object Spread operator results in error when using an unresolvable reference (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [object-spread]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1194 |
spread-err-mult-err-unresolvable.js |
---
description: Spread operator following other arguments when reference is unresolvable (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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.
--- |
1328 |
spread-err-sngl-err-expr-throws.js |
---
description: Spread operator applied to the only argument when evaluation throws (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [generators]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1146 |
spread-err-sngl-err-itr-get-call.js |
---
description: Spread operator applied to the only argument when GetIterator fails (@@iterator function invocation) (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [Symbol.iterator]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1353 |
spread-err-sngl-err-itr-get-get.js |
---
description: Spread operator applied to the only argument when GetIterator fails (@@iterator property access) (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [Symbol.iterator]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1393 |
spread-err-sngl-err-itr-get-value.js |
---
description: Spread operator applied to the only argument when GetIterator fails (@@iterator function return value) (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [Symbol.iterator]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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.
--- |
1379 |
spread-err-sngl-err-itr-step.js |
---
description: Spread operator applied to the only argument when IteratorStep fails (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [Symbol.iterator]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1628 |
spread-err-sngl-err-itr-value.js |
---
description: Spread operator applied to the only argument when IteratorValue fails (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [Symbol.iterator]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1757 |
spread-err-sngl-err-obj-unresolvable.js |
---
description: Object Spread operator results in error when using an unresolvable reference (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [object-spread]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1188 |
spread-err-sngl-err-unresolvable.js |
---
description: Spread operator applied to the only argument when reference is unresolvable (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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.
--- |
1314 |
spread-mult-empty.js |
---
description: Spread operator following other arguments when no iteration occurs (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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.
--- |
1415 |
spread-mult-expr.js |
---
description: Spread operator applied to AssignmentExpression following other elements (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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.
--- |
1576 |
spread-mult-iter.js |
---
description: Spread operator following other arguments with a valid iterator (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [Symbol.iterator]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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.
--- |
1828 |
spread-mult-literal.js |
---
description: Spread operator applied to AssignmentExpression following other elements (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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.
--- |
1501 |
spread-mult-obj-ident.js |
---
description: Object Spread operator following other properties (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [object-spread]
flags: [generated]
includes: [propertyHelper.js]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1731 |
spread-mult-obj-null.js |
---
description: Object Spread operator following other arguments with null value (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [object-spread]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1295 |
spread-mult-obj-undefined.js |
---
description: Object Spread operator following other arguments with undefined (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [object-spread]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1304 |
spread-obj-getter-descriptor.js |
---
description: Spread operation with getter results in data property descriptor (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [object-spread]
flags: [generated]
includes: [propertyHelper.js]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1499 |
spread-obj-getter-init.js |
---
description: Getter in object literal is not evaluated (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [object-spread]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
--- |
1014 |
spread-obj-manipulate-outter-obj-in-getter.js |
---
description: Getter manipulates outter object before it's spread operation (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [object-spread]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1496 |
spread-obj-mult-spread-getter.js |
---
description: Multiple Object Spread usage calls getter multiple times (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [object-spread]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1429 |
spread-obj-mult-spread.js |
---
description: Multiple Object Spread operation (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [object-spread]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1364 |
spread-obj-null.js |
---
description: Null Object Spread is ignored (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [object-spread]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1183 |
spread-obj-override-immutable.js |
---
description: Object Spread overriding immutable properties (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [object-spread]
flags: [generated]
includes: [propertyHelper.js]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
--- |
1228 |
spread-obj-overrides-prev-properties.js |
---
description: Object Spread properties overrides previous definitions (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [object-spread]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1378 |
spread-obj-skip-non-enumerable.js |
---
description: Object Spread doesn't copy non-enumerable properties (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [object-spread]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
--- |
970 |
spread-obj-spread-order.js |
---
description: Spread operation follows [[OwnPropertyKeys]] order (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [Symbol, object-spread]
flags: [generated]
includes: [compareArray.js]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1578 |
spread-obj-symbol-property.js |
---
description: Spread operation where source object contains Symbol properties (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [Symbol, object-spread]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1487 |
spread-obj-undefined.js |
---
description: Undefined Object Spread is ignored (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [object-spread]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1198 |
spread-obj-with-overrides.js |
---
description: Object Spread properties being overriden (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [Symbol, object-spread]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1658 |
spread-sngl-empty.js |
---
description: Spread operator applied to the only argument when no iteration occurs (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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.
[...]
--- |
1288 |
spread-sngl-expr.js |
---
description: Spread operator applied to AssignmentExpression as only element (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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.
--- |
1599 |
spread-sngl-iter.js |
---
description: Spread operator applied to the only argument with a valid iterator (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [Symbol.iterator]
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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.
--- |
1711 |
spread-sngl-literal.js |
---
description: Spread operator applied to array literal as only element (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
flags: [generated]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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.
--- |
1517 |
spread-sngl-obj-ident.js |
---
description: Object Spread operator without other arguments (CallExpression)
esid: sec-function-calls-runtime-semantics-evaluation
features: [object-spread]
flags: [generated]
includes: [propertyHelper.js]
info: |
CallExpression : MemberExpression Arguments
[...]
9. Return EvaluateDirectCall(func, thisValue, Arguments, tailCall).
12.3.4.3 Runtime Semantics: EvaluateDirectCall
1. Let argList be ArgumentListEvaluation(arguments).
[...]
6. Let result be Call(func, thisValue, argList).
[...]
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).
--- |
1486 |
tco-call-args-strict.js |
---
description: Expression is a candidate for tail-call optimization.
esid: sec-static-semantics-hascallintailposition
flags: [onlyStrict]
features: [tail-call-optimization]
includes: [tcoHelper.js]
--- |
641 |
tco-member-args-strict.js |
---
description: Expression is a candidate for tail-call optimization.
esid: sec-static-semantics-hascallintailposition
flags: [onlyStrict]
features: [tail-call-optimization]
includes: [tcoHelper.js]
--- |
604 |
tco-non-eval-function-dynamic.js |
---
esid: sec-function-calls-runtime-semantics-evaluation
description: >
Tail-call with identifier named "eval" in function environment, local "eval" binding dynamically added.
info: |
12.3.4.1 Runtime Semantics: Evaluation
...
6. If Type(ref) is Reference and IsPropertyReference(ref) is false and
GetReferencedName(ref) is "eval", then
a. If SameValue(func, %eval%) is true, then
...
...
9. Return ? EvaluateCall(func, ref, arguments, tailCall).
12.3.4.2 Runtime Semantics: EvaluateCall( func, ref, arguments, tailPosition )
...
7. If tailPosition is true, perform PrepareForTailCall().
8. Let result be Call(func, thisValue, argList).
...
flags: [noStrict]
features: [tail-call-optimization]
includes: [tcoHelper.js]
--- |
1248 |
tco-non-eval-function.js |
---
esid: sec-function-calls-runtime-semantics-evaluation
description: >
Tail-call with identifier named "eval" in function environment.
info: |
12.3.4.1 Runtime Semantics: Evaluation
...
6. If Type(ref) is Reference and IsPropertyReference(ref) is false and
GetReferencedName(ref) is "eval", then
a. If SameValue(func, %eval%) is true, then
...
...
9. Return ? EvaluateCall(func, ref, arguments, tailCall).
12.3.4.2 Runtime Semantics: EvaluateCall( func, ref, arguments, tailPosition )
...
7. If tailPosition is true, perform PrepareForTailCall().
8. Let result be Call(func, thisValue, argList).
...
flags: [noStrict]
features: [tail-call-optimization]
includes: [tcoHelper.js]
--- |
1199 |
tco-non-eval-global.js |
---
esid: sec-function-calls-runtime-semantics-evaluation
description: >
Tail-call with identifier named "eval" in global environment.
info: |
12.3.4.1 Runtime Semantics: Evaluation
...
6. If Type(ref) is Reference and IsPropertyReference(ref) is false and
GetReferencedName(ref) is "eval", then
a. If SameValue(func, %eval%) is true, then
...
...
9. Return ? EvaluateCall(func, ref, arguments, tailCall).
12.3.4.2 Runtime Semantics: EvaluateCall( func, ref, arguments, tailPosition )
...
7. If tailPosition is true, perform PrepareForTailCall().
8. Let result be Call(func, thisValue, argList).
...
flags: [noStrict]
features: [tail-call-optimization]
includes: [tcoHelper.js]
--- |
1154 |
tco-non-eval-with.js |
---
esid: sec-function-calls-runtime-semantics-evaluation
description: >
Tail-call with identifier named "eval" in object environment.
info: |
12.3.4.1 Runtime Semantics: Evaluation
...
6. If Type(ref) is Reference and IsPropertyReference(ref) is false and
GetReferencedName(ref) is "eval", then
a. If SameValue(func, %eval%) is true, then
...
...
9. Return ? EvaluateCall(func, ref, arguments, tailCall).
12.3.4.2 Runtime Semantics: EvaluateCall( func, ref, arguments, tailPosition )
...
7. If tailPosition is true, perform PrepareForTailCall().
8. Let result be Call(func, thisValue, argList).
...
flags: [noStrict]
features: [tail-call-optimization]
includes: [tcoHelper.js]
--- |
1215 |
trailing-comma.js |
---
description: >
Check that trailing commas are permitted after spread arguments
in a call expression.
info: http://jeffmo.github.io/es-trailing-function-commas/
author: Jeff Morrison <lbljeffmo@gmail.com>
--- |
403 |
with-base-obj.js |
---
esid: sec-function-calls-runtime-semantics-evaluation
es6id: 12.3.4.1
description: Correct retrieval of environment's "with" base object
info: |
4. If Type(ref) is Reference, then
a. If IsPropertyReference(ref) is true, then
[...]
b. Else the base of ref is an Environment Record,
i. Let refEnv be GetBase(ref).
ii. Let thisValue be refEnv.WithBaseObject().
[...]
8. Return ? EvaluateDirectCall(func, thisValue, Arguments, tailCall).
flags: [noStrict]
--- |
952 |