You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Editorial: Reinstate an SDO rule
PR tc39#1933 deleted SDO rules that are handled by the chain production rule,
but it also deleted this one which isn't.
(It has "TV" on the left and "TRV" on the right.)
Editorial: Move an <emu-note> element
PR tc39#1490 (among other things) moved the evaluation semantics for ArrowFunction
from the Evaluation SDO to the NamedEvaluation SDO.
The accompanying <emu-note> should have moved at the same time
(in particular because of the reference to "step 3").
Editorial: Delete <emu-note> in TimeClip clause
PR tc39#1827 (among other things) removed step 4 from the algorithm for TimeClip,
obsoleting the accompanying emu-note that describes "the point of step 4".
Conceivably, the note could be reworded to describe the effect of
'ToInteger' on step 3, but I don't think it'd be worth the bother.
Editorial: Change "Step 2.a" to "Step 2.b" in RepeatMatcher note
PR tc39#1889 (among other things) inserted a step before the former 2.a,
but didn't update the note that referenced it.
Editorial: Change step 7 to step 6 in SortCompare note
Commit 9c1e076 (2015-10-26) introduced the '?' abbreviation for ReturnIfAbrupt.
This caused the ToString call on step 7 to move to step 6,
but the note that referred to it wasn't updated.
Editorial: Fix typo: "Descritor" -> "Descriptor"
Editorial: Fix typo: "GeneratorObject" -> "generator object"
(There's no such thing as a GeneratorObject.)
Editorial: Delete "as a parameter" after "is present"
(It's the only place in the spec where we use that phrasing.)
Editorial: Change "which" to "that"
... in "{String,Array,Map,Set} methods which return such iterators"
Editorial: Insert a comma in SetDefaultGlobalBindings()
Formerly, it read like "containing" modified "the property",
when it actually modified "the property descriptor".
Editorial: Change "lexical environment" to "Environment Record"
... in FunctionDeclarationInstantiation,
to balance the NOTE in the other arm of the if-else,
and also for consistency with the NOTE at 27.a.
(I should have done this in PR tc39#1697.)
Editorial: Change "step 3" to "step 4" in Note
... that accompanies the NamedEvaluation semantics for
ArrowFunction : ArrowParameters `=>` ConciseBody
PR tc39#1870 (among other things) inserted a step before the former step 3,
but didn't update the note that referenced it.
If the Type of the return value is Property Descriptor, the return value must be a <emu-xref href="#sec-completepropertydescriptor">complete property descriptor</emu-xref>.
2547
2547
</li>
2548
2548
<li>
2549
-
If _P_ is described as a non-configurable, non-writable own data property, all future calls to [[GetOwnProperty]] ( _P_ ) must return Property Descritor whose [[Value]] is SameValue as _P_'s [[Value]] attribute.
2549
+
If _P_ is described as a non-configurable, non-writable own data property, all future calls to [[GetOwnProperty]] ( _P_ ) must return Property Descriptor whose [[Value]] is SameValue as _P_'s [[Value]] attribute.
2550
2550
</li>
2551
2551
<li>
2552
2552
If _P_'s attributes other than [[Writable]] may change over time or if the property might be deleted, then _P_'s [[Configurable]] attribute must be *true*.
1. For each property of the Global Object specified in clause <emu-xref href="#sec-global-object"></emu-xref>, do
7419
7419
1. Let _name_ be the String value of the property name.
7420
-
1. Let _desc_ be the fully populated data property descriptor for the property containing the specified attributes for the property. For properties listed in <emu-xref href="#sec-function-properties-of-the-global-object"></emu-xref>, <emu-xref href="#sec-constructor-properties-of-the-global-object"></emu-xref>, or <emu-xref href="#sec-other-properties-of-the-global-object"></emu-xref> the value of the [[Value]] attribute is the corresponding intrinsic object from _realmRec_.
7420
+
1. Let _desc_ be the fully populated data property descriptor for the property, containing the specified attributes for the property. For properties listed in <emu-xref href="#sec-function-properties-of-the-global-object"></emu-xref>, <emu-xref href="#sec-constructor-properties-of-the-global-object"></emu-xref>, or <emu-xref href="#sec-other-properties-of-the-global-object"></emu-xref> the value of the [[Value]] attribute is the corresponding intrinsic object from _realmRec_.
1. If *"arguments"* is an element of _functionNames_ or if *"arguments"* is an element of _lexicalNames_, then
8625
8625
1. Set _argumentsObjectNeeded_ to *false*.
8626
8626
1. If _strict_ is *true* or if _hasParameterExpressions_ is *false*, then
8627
-
1. NOTE: Only a single lexical environment is needed for the parameters and top-level vars.
8627
+
1. NOTE: Only a single Environment Record is needed for the parameters and top-level vars.
8628
8628
1. Let _env_ be the LexicalEnvironment of _calleeContext_.
8629
8629
1. Else,
8630
8630
1. NOTE: A separate Environment Record is needed to ensure that bindings created by direct eval calls in the formal parameter list are outside the environment where parameters are declared.
@@ -11821,6 +11821,9 @@ <h1>Static Semantics: TV and TRV</h1>
11821
11821
<li>
11822
11822
The TV of <emu-grammar>TemplateCharacter :: `\` NotEscapeSequence</emu-grammar> is *undefined*.
11823
11823
</li>
11824
+
<li>
11825
+
The TV of <emu-grammar>TemplateCharacter :: LineTerminatorSequence</emu-grammar> is the TRV of |LineTerminatorSequence|.
11826
+
</li>
11824
11827
<li>
11825
11828
The TV of <emu-grammar>LineContinuation :: `\` LineTerminatorSequence</emu-grammar> is the empty code unit sequence.
<p>An |ArrowFunction| does not define local bindings for `arguments`, `super`, `this`, or `new.target`. Any reference to `arguments`, `super`, `this`, or `new.target` within an |ArrowFunction| must resolve to a binding in a lexically enclosing environment. Typically this will be the Function Environment of an immediately enclosing function. Even though an |ArrowFunction| may contain references to `super`, the function object created in step 4 is not made into a method by performing MakeMethod. An |ArrowFunction| that references `super` is always contained within a non-|ArrowFunction| and the necessary state to implement `super` is accessible via the _scope_ that is captured by the function object of the |ArrowFunction|.</p>
1. Return the result of performing NamedEvaluation for this |ArrowFunction| with argument *""*.
20131
20137
</emu-alg>
20132
-
<emu-note>
20133
-
<p>An |ArrowFunction| does not define local bindings for `arguments`, `super`, `this`, or `new.target`. Any reference to `arguments`, `super`, `this`, or `new.target` within an |ArrowFunction| must resolve to a binding in a lexically enclosing environment. Typically this will be the Function Environment of an immediately enclosing function. Even though an |ArrowFunction| may contain references to `super`, the function object created in step 3 is not made into a method by performing MakeMethod. An |ArrowFunction| that references `super` is always contained within a non-|ArrowFunction| and the necessary state to implement `super` is accessible via the _scope_ that is captured by the function object of the |ArrowFunction|.</p>
1. If abs(_time_) > 8.64 × 10<sup>15</sup>, return *NaN*.
28551
28554
1. Return ! ToInteger(_time_).
28552
28555
</emu-alg>
28553
-
<emu-note>
28554
-
<p>The point of step 4 is that an implementation is permitted a choice of internal representations of time values, for example as a 64-bit signed integer or as a 64-bit floating-point value. Depending on the implementation, this internal representation may or may not distinguish *-0* and *+0*.</p>
<p>The abstract operation CreateStringIterator takes argument _string_. This operation is used to create iterator objects for String methods which return such iterators. It performs the following steps when called:</p>
30665
+
<p>The abstract operation CreateStringIterator takes argument _string_. This operation is used to create iterator objects for String methods that return such iterators. It performs the following steps when called:</p>
30666
30666
<emu-alg>
30667
30667
1. Assert: Type(_string_) is String.
30668
30668
1. Let _iterator_ be OrdinaryObjectCreate(%StringIteratorPrototype%, « [[IteratedString]], [[StringNextIndex]] »).
<p>because each iteration of the outermost `*` clears all captured Strings contained in the quantified |Atom|, which in this case includes capture Strings numbered 2, 3, 4, and 5.</p>
31534
31534
</emu-note>
31535
31535
<emu-note>
31536
-
<p>Step 2.a of the RepeatMatcher states that once the minimum number of repetitions has been satisfied, any more expansions of |Atom| that match the empty character sequence are not considered for further repetitions. This prevents the regular expression engine from falling into an infinite loop on patterns such as:</p>
31536
+
<p>Step 2.b of the RepeatMatcher states that once the minimum number of repetitions has been satisfied, any more expansions of |Atom| that match the empty character sequence are not considered for further repetitions. This prevents the regular expression engine from falling into an infinite loop on patterns such as:</p>
<p>Because non-existent property values always compare greater than *undefined* property values, and *undefined* always compares greater than any other value, *undefined* property values always sort to the end of the result, followed by non-existent property values.</p>
34273
34273
</emu-note>
34274
34274
<emu-note>
34275
-
<p>Method calls performed by the ToString abstract operations in steps 5 and 7 have the potential to cause SortCompare to not behave as a consistent comparison function.</p>
34275
+
<p>Method calls performed by the ToString abstract operations in steps 5 and 6 have the potential to cause SortCompare to not behave as a consistent comparison function.</p>
<p>The abstract operation CreateArrayIterator takes arguments _array_ and _kind_. This operation is used to create iterator objects for Array methods which return such iterators. It performs the following steps when called:</p>
34505
+
<p>The abstract operation CreateArrayIterator takes arguments _array_ and _kind_. This operation is used to create iterator objects for Array methods that return such iterators. It performs the following steps when called:</p>
34506
34506
<emu-alg>
34507
34507
1. Assert: Type(_array_) is Object.
34508
34508
1. Assert: _kind_ is ~key+value~, ~key~, or ~value~.
<p>The abstract operation CreateMapIterator takes arguments _map_ and _kind_. This operation is used to create iterator objects for Map methods which return such iterators. It performs the following steps when called:</p>
36042
+
<p>The abstract operation CreateMapIterator takes arguments _map_ and _kind_. This operation is used to create iterator objects for Map methods that return such iterators. It performs the following steps when called:</p>
<p>The abstract operation CreateSetIterator takes arguments _set_ and _kind_. This operation is used to create iterator objects for Set methods which return such iterators. It performs the following steps when called:</p>
36376
+
<p>The abstract operation CreateSetIterator takes arguments _set_ and _kind_. This operation is used to create iterator objects for Set methods that return such iterators. It performs the following steps when called:</p>
0 commit comments