From 74b7058bce90e9bee4e50e5b330e342648c3534d Mon Sep 17 00:00:00 2001 From: Anne van Kesteren Date: Sun, 28 Feb 2016 11:01:23 +0100 Subject: [PATCH] Editorial: consistently use "a new empty List" --- spec.html | 100 +++++++++++++++++++++++++++--------------------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/spec.html b/spec.html index 8fb2de049d..7815219b8a 100644 --- a/spec.html +++ b/spec.html @@ -4223,7 +4223,7 @@

HasOwnProperty (_O_, _P_)

Call (_F_, _V_ [ , _argumentsList_ ])

-

The abstract operation Call is used to call the [[Call]] internal method of a function object. The operation is called with arguments _F_, _V_, and optionally _argumentsList_ where _F_ is the function object, _V_ is an ECMAScript language value that is the *this* value of the [[Call]], and _argumentsList_ is the value passed to the corresponding argument of the internal method. If _argumentsList_ is not present, an empty List is used as its value. This abstract operation performs the following steps:

+

The abstract operation Call is used to call the [[Call]] internal method of a function object. The operation is called with arguments _F_, _V_, and optionally _argumentsList_ where _F_ is the function object, _V_ is an ECMAScript language value that is the *this* value of the [[Call]], and _argumentsList_ is the value passed to the corresponding argument of the internal method. If _argumentsList_ is not present, a new empty List is used as its value. This abstract operation performs the following steps:

1. If _argumentsList_ was not passed, let _argumentsList_ be a new empty List. 1. If IsCallable(_F_) is *false*, throw a *TypeError* exception. @@ -4234,7 +4234,7 @@

Call (_F_, _V_ [ , _argumentsList_ ])

Construct (_F_ [ , _argumentsList_ [ , _newTarget_ ]])

-

The abstract operation Construct is used to call the [[Construct]] internal method of a function object. The operation is called with arguments _F_, and optionally _argumentsList_, and _newTarget_ where _F_ is the function object. _argumentsList_ and _newTarget_ are the values to be passed as the corresponding arguments of the internal method. If _argumentsList_ is not present, an empty List is used as its value. If _newTarget_ is not present, _F_ is used as its value. This abstract operation performs the following steps:

+

The abstract operation Construct is used to call the [[Construct]] internal method of a function object. The operation is called with arguments _F_, and optionally _argumentsList_, and _newTarget_ where _F_ is the function object. _argumentsList_ and _newTarget_ are the values to be passed as the corresponding arguments of the internal method. If _argumentsList_ is not present, a new empty List is used as its value. If _newTarget_ is not present, _F_ is used as its value. This abstract operation performs the following steps:

1. If _newTarget_ was not passed, let _newTarget_ be _F_. 1. If _argumentsList_ was not passed, let _argumentsList_ be a new empty List. @@ -4318,7 +4318,7 @@

CreateListFromArrayLike (_obj_ [ , _elementTypes_ ] )

1. If _elementTypes_ was not passed, let _elementTypes_ be « Undefined, Null, Boolean, String, Symbol, Number, Object ». 1. If Type(_obj_) is not Object, throw a *TypeError* exception. 1. Let _len_ be ? ToLength(? Get(_obj_, `"length"`)). - 1. Let _list_ be an empty List. + 1. Let _list_ be a new empty List. 1. Let _index_ be 0. 1. Repeat while _index_ < _len_ 1. Let _indexName_ be ! ToString(_index_). @@ -4333,7 +4333,7 @@

CreateListFromArrayLike (_obj_ [ , _elementTypes_ ] )

Invoke (_V_, _P_ [ , _argumentsList_ ])

-

The abstract operation Invoke is used to call a method property of an ECMAScript language value. The operation is called with arguments _V_, _P_, and optionally _argumentsList_ where _V_ serves as both the lookup point for the property and the *this* value of the call, _P_ is the property key, and _argumentsList_ is the list of arguments values passed to the method. If _argumentsList_ is not present, an empty List is used as its value. This abstract operation performs the following steps:

+

The abstract operation Invoke is used to call a method property of an ECMAScript language value. The operation is called with arguments _V_, _P_, and optionally _argumentsList_ where _V_ serves as both the lookup point for the property and the *this* value of the call, _P_ is the property key, and _argumentsList_ is the list of arguments values passed to the method. If _argumentsList_ is not present, a new empty List is used as its value. This abstract operation performs the following steps:

1. Assert: IsPropertyKey(_P_) is *true*. @@ -6578,9 +6578,9 @@

OrdinaryOwnPropertyKeys (_O_)

ObjectCreate (_proto_ [ , _internalSlotsList_ ])

-

The abstract operation ObjectCreate with argument _proto_ (an object or null) is used to specify the runtime creation of new ordinary objects. The optional argument _internalSlotsList_ is a List of the names of additional internal slots that must be defined as part of the object. If the list is not provided, an empty List is used. This abstract operation performs the following steps:

+

The abstract operation ObjectCreate with argument _proto_ (an object or null) is used to specify the runtime creation of new ordinary objects. The optional argument _internalSlotsList_ is a List of the names of additional internal slots that must be defined as part of the object. If the list is not provided, a new empty List is used. This abstract operation performs the following steps:

- 1. If _internalSlotsList_ was not provided, let _internalSlotsList_ be an empty List. + 1. If _internalSlotsList_ was not provided, let _internalSlotsList_ be a new empty List. 1. Let _obj_ be a newly created object with an internal slot for each name in _internalSlotsList_. 1. Set _obj_'s essential internal methods to the default ordinary object definitions specified in . 1. Set the [[Prototype]] internal slot of _obj_ to _proto_. @@ -6592,7 +6592,7 @@

ObjectCreate (_proto_ [ , _internalSlotsList_ ])

OrdinaryCreateFromConstructor ( _constructor_, _intrinsicDefaultProto_ [ , _internalSlotsList_ ] )

-

The abstract operation OrdinaryCreateFromConstructor creates an ordinary object whose [[Prototype]] value is retrieved from a constructor's `prototype` property, if it exists. Otherwise the intrinsic named by _intrinsicDefaultProto_ is used for [[Prototype]]. The optional _internalSlotsList_ is a List of the names of additional internal slots that must be defined as part of the object. If the list is not provided, an empty List is used. This abstract operation performs the following steps:

+

The abstract operation OrdinaryCreateFromConstructor creates an ordinary object whose [[Prototype]] value is retrieved from a constructor's `prototype` property, if it exists. Otherwise the intrinsic named by _intrinsicDefaultProto_ is used for [[Prototype]]. The optional _internalSlotsList_ is a List of the names of additional internal slots that must be defined as part of the object. If the list is not provided, a new empty List is used. This abstract operation performs the following steps:

1. Assert: _intrinsicDefaultProto_ is a String value that is this specification's name of an intrinsic object. The corresponding object must be an intrinsic that is intended to be used as the [[Prototype]] value of an object. 1. Let _proto_ be ? GetPrototypeFromConstructor(_constructor_, _intrinsicDefaultProto_). @@ -7031,8 +7031,8 @@

FunctionDeclarationInstantiation (_func_, _argumentsList_)

1. Let _varNames_ be the VarDeclaredNames of _code_. 1. Let _varDeclarations_ be the VarScopedDeclarations of _code_. 1. Let _lexicalNames_ be the LexicallyDeclaredNames of _code_. - 1. Let _functionNames_ be an empty List. - 1. Let _functionsToInitialize_ be an empty List. + 1. Let _functionNames_ be a new empty List. + 1. Let _functionsToInitialize_ be a new empty List. 1. For each _d_ in _varDeclarations_, in reverse list order do 1. If _d_ is neither a |VariableDeclaration| or a |ForBinding|, then 1. Assert: _d_ is either a |FunctionDeclaration| or a |GeneratorDeclaration|. @@ -7175,7 +7175,7 @@

[[Construct]] (_argumentsList_, _newTarget_)

CreateBuiltinFunction (_realm_, _steps_, _prototype_ [ , _internalSlotsList_ ])

-

The abstract operation CreateBuiltinFunction takes arguments _realm_, _prototype_, and _steps_. The optional argument _internalSlotsList_ is a List of the names of additional internal slots that must be defined as part of the object. If the list is not provided, an empty List is used. CreateBuiltinFunction returns a built-in function object created by the following steps:

+

The abstract operation CreateBuiltinFunction takes arguments _realm_, _prototype_, and _steps_. The optional argument _internalSlotsList_ is a List of the names of additional internal slots that must be defined as part of the object. If the list is not provided, a new empty List is used. CreateBuiltinFunction returns a built-in function object created by the following steps:

1. Assert: _realm_ is a Realm Record. 1. Assert: _steps_ is either a set of algorithm steps or other definition of a function's behaviour provided in this specification. @@ -7667,7 +7667,7 @@

CreateMappedArgumentsObject ( _func_, _formals_, _argumentsList_, _env_ )[[OwnPropertyKeys]] ( )

1. Let _extensibleTarget_ be ? IsExtensible(_target_). 1. Let _targetKeys_ be ? _target_.[[OwnPropertyKeys]](). 1. Assert: _targetKeys_ is a List containing only String and Symbol values. - 1. Let _targetConfigurableKeys_ be an empty List. - 1. Let _targetNonconfigurableKeys_ be an empty List. + 1. Let _targetConfigurableKeys_ be a new empty List. + 1. Let _targetNonconfigurableKeys_ be a new empty List. 1. Repeat, for each element _key_ of _targetKeys_, 1. Let _desc_ be ? _target_.[[GetOwnProperty]](_key_). 1. If _desc_ is not *undefined* and _desc_.[[Configurable]] is *false*, then @@ -11389,7 +11389,7 @@

Runtime Semantics: GetTemplateObject ( _templateLiteral_ )

Runtime Semantics: SubstitutionEvaluation

TemplateSpans : TemplateTail - 1. Return an empty List. + 1. Return a new empty List. TemplateSpans : TemplateMiddleList TemplateTail @@ -11831,7 +11831,7 @@

Runtime Semantics: EvaluateNew(_constructProduction_, _arguments_)

1. Assert: _arguments_ is either ~empty~ or an |Arguments| production. 1. Let _ref_ be the result of evaluating _constructProduction_. 1. Let _constructor_ be ? GetValue(_ref_). - 1. If _arguments_ is ~empty~, let _argList_ be an empty List. + 1. If _arguments_ is ~empty~, let _argList_ be a new empty List. 1. Else, 1. Let _argList_ be ArgumentListEvaluation of _arguments_. 1. ReturnIfAbrupt(_argList_). @@ -11994,7 +11994,7 @@

Runtime Semantics: ArgumentListEvaluation

Arguments : `(` `)` - 1. Return an empty List. + 1. Return a new empty List. ArgumentList : AssignmentExpression @@ -12004,7 +12004,7 @@

Runtime Semantics: ArgumentListEvaluation

ArgumentList : `...` AssignmentExpression - 1. Let _list_ be an empty List. + 1. Let _list_ be a new empty List. 1. Let _spreadRef_ be the result of evaluating |AssignmentExpression|. 1. Let _spreadObj_ be ? GetValue(_spreadRef_). 1. Let _iterator_ be ? GetIterator(_spreadObj_). @@ -14774,11 +14774,11 @@

Static Semantics: BoundNames

ObjectBindingPattern : `{` `}` - 1. Return an empty List. + 1. Return a new empty List. ArrayBindingPattern : `[` Elision? `]` - 1. Return an empty List. + 1. Return a new empty List. ArrayBindingPattern : `[` Elision? BindingRestElement `]` @@ -16037,7 +16037,7 @@

Runtime Semantics: ForIn/OfHeadEvaluation ( _TDZnames_, _expr_, _iterationKi

The abstract operation ForIn/OfHeadEvaluation is called with arguments _TDZnames_, _expr_, and _iterationKind_. The value of _iterationKind_ is either ~enumerate~ or ~iterate~.

1. Let _oldEnv_ be the running execution context's LexicalEnvironment. - 1. If _TDZnames_ is not an empty List, then + 1. If _TDZnames_ is not a new empty List, then 1. Assert: _TDZnames_ has no duplicate entries. 1. Let _TDZ_ be NewDeclarativeEnvironment(_oldEnv_). 1. Let _TDZEnvRec_ be _TDZ_'s EnvironmentRecord. @@ -17519,7 +17519,7 @@

Static Semantics: BoundNames

FormalParameters : [empty] - 1. Return an empty List. + 1. Return a new empty List. FormalParameterList : FormalsList `,` FunctionRestParameter @@ -17714,7 +17714,7 @@

Static Semantics: LexicallyDeclaredNames

FunctionStatementList : [empty] - 1. Return an empty List. + 1. Return a new empty List. FunctionStatementList : StatementList @@ -17728,7 +17728,7 @@

Static Semantics: LexicallyScopedDeclarations

FunctionStatementList : [empty] - 1. Return an empty List. + 1. Return a new empty List. FunctionStatementList : StatementList @@ -17742,7 +17742,7 @@

Static Semantics: VarDeclaredNames

FunctionStatementList : [empty] - 1. Return an empty List. + 1. Return a new empty List. FunctionStatementList : StatementList @@ -17756,7 +17756,7 @@

Static Semantics: VarScopedDeclarations

FunctionStatementList : [empty] - 1. Return an empty List. + 1. Return a new empty List. FunctionStatementList : StatementList @@ -18083,7 +18083,7 @@

Static Semantics: LexicallyDeclaredNames

ConciseBody : AssignmentExpression - 1. Return an empty List. + 1. Return a new empty List. @@ -18093,7 +18093,7 @@

Static Semantics: LexicallyScopedDeclarations

ConciseBody : AssignmentExpression - 1. Return an empty List. + 1. Return a new empty List. @@ -18103,7 +18103,7 @@

Static Semantics: VarDeclaredNames

ConciseBody : AssignmentExpression - 1. Return an empty List. + 1. Return a new empty List. @@ -18113,7 +18113,7 @@

Static Semantics: VarScopedDeclarations

ConciseBody : AssignmentExpression - 1. Return an empty List. + 1. Return a new empty List. @@ -19675,8 +19675,8 @@

Runtime Semantics: GlobalDeclarationInstantiation (_script_, _env_)

1. For each _name_ in _varNames_, do 1. If _envRec_.HasLexicalDeclaration(_name_) is *true*, throw a *SyntaxError* exception. 1. Let _varDeclarations_ be the VarScopedDeclarations of _script_. - 1. Let _functionsToInitialize_ be an empty List. - 1. Let _declaredFunctionNames_ be an empty List. + 1. Let _functionsToInitialize_ be a new empty List. + 1. Let _declaredFunctionNames_ be a new empty List. 1. For each _d_ in _varDeclarations_, in reverse list order do 1. If _d_ is neither a |VariableDeclaration| or a |ForBinding|, then 1. Assert: _d_ is either a |FunctionDeclaration| or a |GeneratorDeclaration|. @@ -19687,7 +19687,7 @@

Runtime Semantics: GlobalDeclarationInstantiation (_script_, _env_)

1. If _fnDefinable_ is *false*, throw a *TypeError* exception. 1. Append _fn_ to _declaredFunctionNames_. 1. Insert _d_ as the first element of _functionsToInitialize_. - 1. Let _declaredVarNames_ be an empty List. + 1. Let _declaredVarNames_ be a new empty List. 1. For each _d_ in _varDeclarations_, do 1. If _d_ is a |VariableDeclaration| or a |ForBinding|, then 1. For each String _vn_ in the BoundNames of _d_, do @@ -20055,7 +20055,7 @@

Static Semantics: VarDeclaredNames

Module : [empty] - 1. Return an empty List. + 1. Return a new empty List. ModuleItemList : ModuleItemList ModuleItem @@ -20065,7 +20065,7 @@

Static Semantics: VarDeclaredNames

ModuleItem : ImportDeclaration - 1. Return an empty List. + 1. Return a new empty List. ModuleItem : ExportDeclaration @@ -20842,7 +20842,7 @@

ModuleDeclarationInstantiation( ) Concrete Method

1. If _resolution_ is *null* or _resolution_ is `"ambiguous"`, throw a *SyntaxError* exception. 1. Call _envRec_.CreateImportBinding(_in_.[[LocalName]], _resolution_.[[Module]], _resolution_.[[BindingName]]). 1. Let _varDeclarations_ be the VarScopedDeclarations of _code_. - 1. Let _declaredVarNames_ be an empty List. + 1. Let _declaredVarNames_ be a new empty List. 1. For each element _d_ in _varDeclarations_ do 1. For each element _dn_ of the BoundNames of _d_ do 1. If _dn_ is not an element of _declaredVarNames_, then @@ -21806,8 +21806,8 @@

Runtime Semantics: EvalDeclarationInstantiation( _body_, _varEnv_, _lexEnv_, 1. Throw a *SyntaxError* exception. 1. NOTE: A direct `eval` will not hoist var declaration over a like-named lexical declaration. 1. Let _thisLex_ be _thisLex_'s outer environment reference. - 1. Let _functionsToInitialize_ be an empty List. - 1. Let _declaredFunctionNames_ be an empty List. + 1. Let _functionsToInitialize_ be a new empty List. + 1. Let _declaredFunctionNames_ be a new empty List. 1. For each _d_ in _varDeclarations_, in reverse list order do 1. If _d_ is neither a |VariableDeclaration| or a |ForBinding|, then 1. Assert: _d_ is either a |FunctionDeclaration| or a |GeneratorDeclaration|. @@ -21820,7 +21820,7 @@

Runtime Semantics: EvalDeclarationInstantiation( _body_, _varEnv_, _lexEnv_, 1. Append _fn_ to _declaredFunctionNames_. 1. Insert _d_ as the first element of _functionsToInitialize_. 1. NOTE: Annex adds additional steps at this point. - 1. Let _declaredVarNames_ be an empty List. + 1. Let _declaredVarNames_ be a new empty List. 1. For each _d_ in _varDeclarations_, do 1. If _d_ is a |VariableDeclaration| or a |ForBinding|, then 1. For each String _vn_ in the BoundNames of _d_, do @@ -22596,7 +22596,7 @@

Object.assign ( _target_, ..._sources_ )

1. If only one argument was passed, return _to_. 1. Let _sources_ be the List of argument values starting with the second argument. 1. For each element _nextSource_ of _sources_, in ascending index order, - 1. If _nextSource_ is *undefined* or *null*, let _keys_ be an empty List. + 1. If _nextSource_ is *undefined* or *null*, let _keys_ be a new empty List. 1. Else, 1. Let _from_ be ToObject(_nextSource_). 1. Let _keys_ be ? _from_.[[OwnPropertyKeys]](). @@ -22639,7 +22639,7 @@

Runtime Semantics: ObjectDefineProperties ( _O_, _Properties_ )

1. If Type(_O_) is not Object, throw a *TypeError* exception. 1. Let _props_ be ? ToObject(_Properties_). 1. Let _keys_ be ? _props_.[[OwnPropertyKeys]](). - 1. Let _descriptors_ be an empty List. + 1. Let _descriptors_ be a new empty List. 1. Repeat for each element _nextKey_ of _keys_ in List order, 1. Let _propDesc_ be ? _props_.[[GetOwnProperty]](_nextKey_). 1. If _propDesc_ is not *undefined* and _propDesc_.[[Enumerable]] is *true*, then @@ -23140,7 +23140,7 @@

Function.prototype.call (_thisArg_, ..._args_)

When the `call` method is called on an object _func_ with argument, _thisArg_ and zero or more _args_, the following steps are taken:

1. If IsCallable(_func_) is *false*, throw a *TypeError* exception. - 1. Let _argList_ be an empty List. + 1. Let _argList_ be a new empty List. 1. If this method was called with more than one argument, then in left to right order, starting with the second argument, append each argument as the last element of _argList_. 1. Perform PrepareForTailCall(). 1. Return ? Call(_func_, _thisArg_, _argList_). @@ -23370,7 +23370,7 @@

Symbol.for ( _key_ )

1. Append the Record { [[Key]]: _stringKey_, [[Symbol]]: _newSymbol_ } to the GlobalSymbolRegistry List. 1. Return _newSymbol_.
-

The GlobalSymbolRegistry is a List that is globally available. It is shared by all realms. Prior to the evaluation of any ECMAScript code it is initialized as an empty List. Elements of the GlobalSymbolRegistry are Records with the structure defined in .

+

The GlobalSymbolRegistry is a List that is globally available. It is shared by all realms. Prior to the evaluation of any ECMAScript code it is initialized as a new empty List. Elements of the GlobalSymbolRegistry are Records with the structure defined in .

@@ -26711,7 +26711,7 @@

String.prototype.replace (_searchValue_, _replaceValue_ )

1. Let _replValue_ be ? Call(_replaceValue_, *undefined*, « _matched_, _pos_, _string_ »). 1. Let _replStr_ be ? ToString(_replValue_). 1. Else, - 1. Let _captures_ be an empty List. + 1. Let _captures_ be a new empty List. 1. Let _replStr_ be GetSubstitution(_matched_, _string_, _pos_, _captures_, _replaceValue_). 1. Let _tailPos_ be _pos_ + the number of code units in _matched_. 1. Let _newString_ be the String formed by concatenating the first _pos_ code units of _string_, _replStr_, and the trailing substring of _string_ starting at index _tailPos_. If _pos_ is 0, the first element of the concatenation will be the empty String. @@ -29065,7 +29065,7 @@

RegExp.prototype [ @@replace ] ( _string_, _replaceValue_ )

1. Let _position_ be ? ToInteger(? Get(_result_, `"index"`)). 1. Let _position_ be max(min(_position_, _lengthS_), 0). 1. Let _n_ be 1. - 1. Let _captures_ be an empty List. + 1. Let _captures_ be a new empty List. 1. Repeat while _n_ ≤ _nCaptures_ 1. Let _capN_ be ? Get(_result_, ! ToString(_n_)). 1. If _capN_ is not *undefined*, then @@ -33541,7 +33541,7 @@

JSON.stringify ( _value_ [ , _replacer_ [ , _space_ ] ] )

The `stringify` function returns a String in UTF-16 encoded JSON format representing an ECMAScript value. It can take three parameters. The _value_ parameter is an ECMAScript value, which is usually an object or array, although it can also be a String, Boolean, Number or *null*. The optional _replacer_ parameter is either a function that alters the way objects and arrays are stringified, or an array of Strings and Numbers that acts as a white list for selecting the object properties that will be stringified. The optional _space_ parameter is a String or Number that allows the result to have white space injected into it to improve human readability.

These are the steps in stringifying an object:

- 1. Let _stack_ be an empty List. + 1. Let _stack_ be a new empty List. 1. Let _indent_ be the empty String. 1. Let _PropertyList_ and _ReplacerFunction_ be *undefined*. 1. If Type(_replacer_) is Object, then @@ -33550,7 +33550,7 @@

JSON.stringify ( _value_ [ , _replacer_ [ , _space_ ] ] )

1. Else, 1. Let _isArray_ be ? IsArray(_replacer_). 1. If _isArray_ is *true*, then - 1. Let _PropertyList_ be an empty List. + 1. Let _PropertyList_ be a new empty List. 1. Let _len_ be ? ToLength(? Get(_replacer_, `"length"`)). 1. Let _k_ be 0. 1. Repeat while _k_<_len_, @@ -33736,7 +33736,7 @@

Runtime Semantics: SerializeJSONObject ( _value_ )

1. Let _K_ be _PropertyList_. 1. Else, 1. Let _K_ be ? EnumerableOwnNames(_value_). - 1. Let _partial_ be an empty List. + 1. Let _partial_ be a new empty List. 1. For each element _P_ of _K_, 1. Let _strP_ be ? SerializeJSONProperty(_P_, _value_). 1. If _strP_ is not *undefined*, then @@ -33771,7 +33771,7 @@

Runtime Semantics: SerializeJSONArray ( _value_ )

1. Append _value_ to _stack_. 1. Let _stepback_ be _indent_. 1. Let _indent_ be the concatenation of _indent_ and _gap_. - 1. Let _partial_ be an empty List. + 1. Let _partial_ be a new empty List. 1. Let _len_ be ? ToLength(? Get(_value_, `"length"`)). 1. Let _index_ be 0. 1. Repeat while _index_ < _len_ @@ -36590,7 +36590,7 @@

Changes to FunctionDeclarationInstantiation

Changes to GlobalDeclarationInstantiation

During GlobalDeclarationInstantiation () the following steps are performed in place of step 14:

- 1. Let _declaredFunctionOrVarNames_ be an empty List. + 1. Let _declaredFunctionOrVarNames_ be a new empty List. 1. Append to _declaredFunctionOrVarNames_ the elements of _declaredFunctionNames_. 1. Append to _declaredFunctionOrVarNames_ the elements of _declaredVarNames_. 1. For each |FunctionDeclaration| _f_ that is directly contained in the |StatementList| of a |Block|, |CaseClause|, or |DefaultClause| Contained within _script_, @@ -36618,7 +36618,7 @@

Changes to EvalDeclarationInstantiation

During EvalDeclarationInstantiation () the following steps are performed in place of step 9:

1. If _strict_ is *false*, then - 1. Let _declaredFunctionOrVarNames_ be an empty List. + 1. Let _declaredFunctionOrVarNames_ be a new empty List. 1. Append to _declaredFunctionOrVarNames_ the elements of _declaredFunctionNames_. 1. Append to _declaredFunctionOrVarNames_ the elements of _declaredVarNames_. 1. For each |FunctionDeclaration| _f_ that is directly contained in the |StatementList| of a |Block|, |CaseClause|, or |DefaultClause| Contained within _body_,