@@ -31,20 +31,17 @@ <h1>Scope</h1>
31
31
<p >List of significant editorial modifications:</p >
32
32
<ul >
33
33
<li ><a href =" #sec-property-accessors" >Property Accessors</a >: Factoring part of the property access operations in the new EvaluateDynamicPropertyAccess and EvaluateStaticPropertyAccess abstract operations.</li >
34
- <li >Factoring out first step of EvaluateCall as in PR <a href =" https://github.com/tc39/ecma262/pull/963" >tc39/ecma262#963</a >.</li >
35
34
<li >In new content, adoption of calling convention for directed operations of PR <a href =" https://github.com/tc39/ecma262/pull/955" >tc39/ecma262##955</a >.</li >
36
35
</ul >
37
36
38
37
</emu-clause >
39
38
40
39
41
- <!-- es6num="11" -->
42
40
<!--
43
41
<emu-clause id="sec-ecmascript-language-lexical-grammar">
44
42
<h1>ECMAScript Language: Lexical Grammar (<a href="https://tc39.github.io/ecma262/#sec-ecmascript-language-lexical-grammar">11</a>)</h1>
45
43
-->
46
44
47
- <!-- es6num="11.7" -->
48
45
<emu-clause id =" sec-punctuators" >
49
46
<h1 >Punctuators (<a href =" https://tc39.github.io/ecma262/#sec-punctuators" >11.7</a >)</h1 >
50
47
<h2 >Syntax</h2 >
@@ -85,13 +82,11 @@ <h2>Syntax</h2>
85
82
</emu-clause>
86
83
-->
87
84
88
- <!-- es6num="12" -->
89
85
<!--
90
86
<emu-clause id="sec-ecmascript-language-expressions">
91
87
<h1>ECMAScript Language: Expressions (<a href="https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions">12</a>)</h1>
92
88
-->
93
89
94
- <!-- es6num="12.3" -->
95
90
<emu-clause id="sec-left-hand-side-expressions">
96
91
<h1>Left-Hand-Side Expressions (<a href="https://tc39.github.io/ecma262/#sec-left-hand-side-expressions">12.3</a>)</h1>
97
92
<h2>Syntax</h2>
@@ -100,7 +95,7 @@ <h2>Syntax</h2>
100
95
PrimaryExpression[?Yield, ?Await]
101
96
MemberExpression[?Yield, ?Await] ` [` Expression[+In, ? Yield , ? Await ] ` ]`
102
97
MemberExpression [? Yield , ? Await ] ` .` IdentifierName
103
- MemberExpression [? Yield , ? Await ] TemplateLiteral [? Yield , ? Await ]
98
+ MemberExpression [? Yield , ? Await ] TemplateLiteral [? Yield , ? Await , + Tagged ]
104
99
SuperProperty [? Yield , ? Await ]
105
100
MetaProperty
106
101
` new` MemberExpression [? Yield , ? Await ] Arguments [? Yield , ? Await ]
@@ -125,7 +120,7 @@ <h2>Syntax</h2>
125
120
CallExpression [? Yield , ? Await ] Arguments [? Yield , ? Await ]
126
121
CallExpression [? Yield , ? Await ] ` [` Expression [+ In , ? Yield , ? Await ] ` ]`
127
122
CallExpression [? Yield , ? Await ] ` .` IdentifierName
128
- CallExpression [? Yield , ? Await ] TemplateLiteral [? Yield , ? Await ]
123
+ CallExpression [? Yield , ? Await ] TemplateLiteral [? Yield , ? Await , + Tagged ]
129
124
130
125
SuperCall [Yield , Await ] :
131
126
` super` Arguments [? Yield , ? Await ]
@@ -163,12 +158,11 @@ <h2>Syntax</h2>
163
158
</emu-grammar >
164
159
<h2 >Supplemental Syntax</h2 >
165
160
<p >When processing an instance of the production <emu-grammar >CallExpression : CoverCallExpressionAndAsyncArrowHead </emu-grammar > the interpretation of | CoverCallExpressionAndAsyncArrowHead | is refined using the following grammar:</p >
166
- <emu-grammar >
161
+ <emu-grammar type = " definition " >
167
162
CallMemberExpression [Yield , Await ] :
168
163
MemberExpression [? Yield , ? Await ] Arguments [? Yield , ? Await ]
169
164
</emu-grammar >
170
165
171
- <!-- es6num="12.3.1" -->
172
166
<emu-clause id =" sec-static-semantics" >
173
167
<h1 >Static Semantics (<a href =" https://tc39.github.io/ecma262/#sec-static-semantics" >12.3.1</a >)</h1 >
174
168
@@ -178,11 +172,10 @@ <h1>Static Semantics: CoveredCallExpression</h1>
178
172
CallExpression : CoverCallExpressionAndAsyncArrowHead
179
173
</emu-grammar >
180
174
<emu-alg >
181
- 1. Return the result of parsing the lexical token stream matched by | CoverCallExpressionAndAsyncArrowHead | using | CallMemberExpression | as the goal symbol with its < sub >[Yield]</ sub > and < sub >[Await]</ sub > parameters set to the values used when parsing | CoverCallExpressionAndAsyncArrowHead | .
175
+ 1. Return the | CallMemberExpression | that is covered by | CoverCallExpressionAndAsyncArrowHead | .
182
176
</emu-alg >
183
177
</emu-clause >
184
178
185
- <!-- es6num="12.3.1.1" -->
186
179
<emu-clause id =" sec-static-semantics-static-semantics-contains" >
187
180
<h1 >Static Semantics: Contains</h1 >
188
181
<p >With parameter _symbol_ .</p >
@@ -225,7 +218,6 @@ <h1>Static Semantics: Contains</h1>
225
218
</ins >
226
219
</emu-clause >
227
220
228
- <!-- es6num="12.3.1.2" -->
229
221
<emu-clause id =" sec-static-semantics-static-semantics-isfunctiondefinition" >
230
222
<h1 >Static Semantics: IsFunctionDefinition</h1 >
231
223
<emu-see-also-para op =" IsFunctionDefinition" ></emu-see-also-para >
@@ -250,7 +242,6 @@ <h1>Static Semantics: IsFunctionDefinition</h1>
250
242
</emu-alg >
251
243
</emu-clause >
252
244
253
- <!-- es6num="12.3.1.3" -->
254
245
<emu-clause id =" sec-static-semantics-static-semantics-isdestructuring" >
255
246
<h1 >Static Semantics: IsDestructuring</h1 >
256
247
<emu-see-also-para op =" IsDestructuring" ></emu-see-also-para >
@@ -280,7 +271,6 @@ <h1>Static Semantics: IsDestructuring</h1>
280
271
</emu-alg >
281
272
</emu-clause >
282
273
283
- <!-- es6num="12.3.1.4" -->
284
274
<emu-clause id =" sec-static-semantics-static-semantics-isidentifierref" >
285
275
<h1 >Static Semantics: IsIdentifierRef</h1 >
286
276
<emu-see-also-para op =" IsIdentifierRef" ></emu-see-also-para >
@@ -305,7 +295,6 @@ <h1>Static Semantics: IsIdentifierRef</h1>
305
295
</emu-alg >
306
296
</emu-clause >
307
297
308
- <!-- es6num="12.3.1.5" -->
309
298
<emu-clause id =" sec-static-semantics-static-semantics-isvalidsimpleassignmenttarget" >
310
299
<h1 >Static Semantics: IsValidSimpleAssignmentTarget</h1 >
311
300
<emu-see-also-para op =" IsValidSimpleAssignmentTarget" ></emu-see-also-para >
@@ -350,7 +339,6 @@ <h1>Static Semantics: IsValidSimpleAssignmentTarget</h1>
350
339
</emu-clause >
351
340
</emu-clause >
352
341
353
- <!-- es6num="12.3.2" -->
354
342
<emu-clause id =" sec-property-accessors" >
355
343
<h1 >Property Accessors (<a href =" https://tc39.github.io/ecma262/#sec-property-accessors" >12.3.2</a >)</h1 >
356
344
<emu-note >
@@ -385,7 +373,6 @@ <h1>Property Accessors (<a href="https://tc39.github.io/ecma262/#sec-property-ac
385
373
<p >where < ; <i >identifier-name-string</i >> ; is the result of evaluating StringValue of | IdentifierName | .</p >
386
374
</emu-note >
387
375
388
- <!-- es6num="12.3.2.1" -->
389
376
<emu-clause id =" sec-property-accessors-runtime-semantics-evaluation" >
390
377
<h1 >Runtime Semantics: Evaluation</h1 >
391
378
<emu-grammar >MemberExpression : MemberExpression ` [` Expression ` ]` </emu-grammar >
@@ -440,18 +427,15 @@ <h1>Runtime Semantics: EvaluateStaticPropertyAccess(_baseValue_, _identifierName
440
427
441
428
</emu-clause >
442
429
443
- <!-- es6num="12.3.3" -->
444
430
<emu-clause id =" sec-new-operator" >
445
431
<h1 >The `new` Operator (<a href =" https://tc39.github.io/ecma262/#sec-new-operator" >12.3.3</a >)</h1 >
446
432
447
433
<p ><i >(not modified)</i ></p >
448
434
</emu-clause >
449
435
450
- <!-- es6num="12.3.4" -->
451
436
<emu-clause id =" sec-function-calls" >
452
437
<h1 >Function Calls (<a href =" https://tc39.github.io/ecma262/#sec-function-calls" >12.3.4</a >)</h1 >
453
438
454
- <!-- es6num="12.3.4.1" -->
455
439
<emu-clause id =" sec-function-calls-runtime-semantics-evaluation" >
456
440
<h1 >Runtime Semantics: Evaluation</h1 >
457
441
<emu-grammar >CallExpression : CoverCallExpressionAndAsyncArrowHead </emu-grammar >
@@ -463,8 +447,7 @@ <h1>Runtime Semantics: Evaluation</h1>
463
447
1. Let _func_ be ? GetValue(_ref_ ).
464
448
1. If Type(_ref_ ) is Reference, IsPropertyReference(_ref_ ) is *false* , and GetReferencedName(_ref_ ) is `"eval"` , then
465
449
1. If SameValue(_func_ , %eval%) is *true* , then
466
- 1. Let _argList_ be ArgumentListEvaluation of _arguments_ .
467
- 1. ReturnIfAbrupt(_argList_ ).
450
+ 1. Let _argList_ be ? ArgumentListEvaluation of _arguments_ .
468
451
1. If _argList_ has no elements, return *undefined* .
469
452
1. Let _evalText_ be the first element of _argList_ .
470
453
1. If the source code matching this | CallExpression | is strict mode code, let _strictCaller_ be *true* . Otherwise let _strictCaller_ be *false* .
@@ -486,9 +469,8 @@ <h1>Runtime Semantics: Evaluation</h1>
486
469
</emu-alg >
487
470
</emu-clause >
488
471
489
- <!-- es6num="12.3.4.2" -->
490
- <emu-clause id =" sec-evaluatecall" aoid =" EvaluateCall" >
491
- <h1 >Runtime Semantics: EvaluateCall(_func_ , _ref_ , _arguments_ , _tailPosition_ )</h1 >
472
+ <emu-clause id =" sec-evaluatecall" aoid =" EvaluateCall" oldids =" sec-evaluatedirectcall" >
473
+ <h1 >Runtime Semantics: EvaluateCall ( _func_ , _ref_ , _arguments_ , _tailPosition_ )</h1 >
492
474
<p >The abstract operation EvaluateCall takes as arguments a value _func_ , a value _ref_ , a Parse Node _arguments_ , and a Boolean argument _tailPosition_ . It performs the following steps:</p >
493
475
<emu-alg >
494
476
1. If Type(_ref_ ) is Reference, then
@@ -512,21 +494,18 @@ <h1>Runtime Semantics: EvaluateCall(_func_, _ref_, _arguments_, _tailPosition_ )
512
494
</emu-clause >
513
495
</emu-clause >
514
496
515
- <!-- es6num="12.3.5" -->
516
497
<emu-clause id =" sec-super-keyword" >
517
498
<h1 >The `super` Keyword (<a href =" https://tc39.github.io/ecma262/#sec-super-keyword" >12.3.5</a >)</h1 >
518
499
519
500
<p ><i >(not modified)</i ></p >
520
501
</emu-clause >
521
502
522
- <!-- es6num="12.3.6" -->
523
503
<emu-clause id =" sec-argument-lists" >
524
504
<h1 >Argument Lists (<a href =" https://tc39.github.io/ecma262/#sec-argument-lists" >12.3.6</a >)</h1 >
525
505
526
506
<p ><i >(not modified)</i ></p >
527
507
</emu-clause >
528
508
529
- <!-- es6num="12.3.7" -->
530
509
<emu-clause id =" sec-tagged-templates" >
531
510
<h1 >Tagged Templates (<a href =" https://tc39.github.io/ecma262/#sec-tagged-templates" >12.3.7</a >)</h1 >
532
511
<p ><i >(not modified)</i ></p >
@@ -603,7 +582,6 @@ <h1>Runtime Semantics: ChainEvaluation</h1>
603
582
</emu-clause >
604
583
</ins >
605
584
606
- <!-- es6num="12.3.8" -->
607
585
<emu-clause id =" sec-meta-properties" >
608
586
<h1 >Meta Properties (<a href =" https://tc39.github.io/ecma262/#sec-meta-properties" >12.3.8</a >)</h1 >
609
587
@@ -614,19 +592,15 @@ <h1>Meta Properties (<a href="https://tc39.github.io/ecma262/#sec-meta-propertie
614
592
</emu-clause>
615
593
-->
616
594
617
- <!-- es6num="14" -->
618
595
<!--
619
596
<emu-clause id="sec-ecmascript-language-functions-and-classes">
620
597
<h1>ECMAScript Language: Functions and Classes (<a href="https://tc39.github.io/ecma262/#sec-ecmascript-language-functions-and-classes">14</a>)</h1>
621
598
-->
622
- <!-- es6num="14.6" -->
623
599
<emu-clause id =" sec-tail-position-calls" >
624
600
<h1 >Tail Position Calls (<a href =" https://tc39.github.io/ecma262/#sec-tail-position-calls" >14.8</a >)</h1 >
625
- <!-- es6num="14.6.2" -->
626
601
<emu-clause id =" sec-static-semantics-hascallintailposition" >
627
602
<h1 >Static Semantics: HasCallInTailPosition (<a href =" https://tc39.github.io/ecma262/#sec-static-semantics-hascallintailposition" >14.8.2</a >)</h1 >
628
603
<p >With parameter _call_ .</p >
629
- <!-- es6num="14.6.2.2" -->
630
604
<emu-clause id =" sec-expression-rules" >
631
605
<h1 >Expression Rules</h1 >
632
606
<p ><i >The following cases are added:</i ></p >
0 commit comments