diff --git a/img/figure-2.png b/img/figure-2.png index f7dbfec652c..6ee5f64348e 100644 Binary files a/img/figure-2.png and b/img/figure-2.png differ diff --git a/spec.html b/spec.html index ce38f507ea9..e43c9bd952e 100644 --- a/spec.html +++ b/spec.html @@ -2909,16 +2909,6 @@

Well-Known Intrinsic Objects

The initial value of the *"prototype"* data property of %AsyncFunction%; i.e., %AsyncFunction.prototype% - - - %AsyncGenerator% - - - - - The initial value of the *"prototype"* property of %AsyncGeneratorFunction%; i.e., %AsyncGeneratorFunction.prototype% - - %AsyncGeneratorFunction% @@ -2929,16 +2919,6 @@

Well-Known Intrinsic Objects

The constructor of async iterator objects () - - - %AsyncGeneratorPrototype% - - - - - The initial value of the *"prototype"* property of %AsyncGenerator%; i.e., %AsyncGenerator.prototype% - - %AsyncIteratorPrototype% @@ -3245,16 +3225,6 @@

Well-Known Intrinsic Objects

The initial value of the *"prototype"* data property of %Function%; i.e., %Function.prototype% - - - %Generator% - - - - - The initial value of the *"prototype"* data property of %GeneratorFunction% - - %GeneratorFunction% @@ -3265,16 +3235,6 @@

Well-Known Intrinsic Objects

The constructor of generator objects () - - - %GeneratorPrototype% - - - - - The initial value of the *"prototype"* data property of %Generator%; i.e., %Generator.prototype% - - %Int8Array% @@ -20873,7 +20833,7 @@

Runtime Semantics: EvaluateBody

GeneratorBody : FunctionBody 1. Perform ? FunctionDeclarationInstantiation(_functionObject_, _argumentsList_). - 1. Let _G_ be ? OrdinaryCreateFromConstructor(_functionObject_, *"%Generator.prototype%"*, « [[GeneratorState]], [[GeneratorContext]] »). + 1. Let _G_ be ? OrdinaryCreateFromConstructor(_functionObject_, *"%GeneratorFunction.prototype.prototype%"*, « [[GeneratorState]], [[GeneratorContext]] »). 1. Perform GeneratorStart(_G_, |FunctionBody|). 1. Return Completion { [[Type]]: ~return~, [[Value]]: _G_, [[Target]]: ~empty~ }. @@ -20887,18 +20847,18 @@

Runtime Semantics: InstantiateFunctionObject

1. Let _name_ be StringValue of |BindingIdentifier|. 1. Let _sourceText_ be the source text matched by |GeneratorDeclaration|. - 1. Let _F_ be OrdinaryFunctionCreate(%Generator%, _sourceText_, |FormalParameters|, |GeneratorBody|, ~non-lexical-this~, _scope_). + 1. Let _F_ be OrdinaryFunctionCreate(%GeneratorFunction.prototype%, _sourceText_, |FormalParameters|, |GeneratorBody|, ~non-lexical-this~, _scope_). 1. Perform SetFunctionName(_F_, _name_). - 1. Let _prototype_ be OrdinaryObjectCreate(%Generator.prototype%). + 1. Let _prototype_ be OrdinaryObjectCreate(%GeneratorFunction.prototype.prototype%). 1. Perform DefinePropertyOrThrow(_F_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Return _F_. GeneratorDeclaration : `function` `*` `(` FormalParameters `)` `{` GeneratorBody `}` 1. Let _sourceText_ be the source text matched by |GeneratorDeclaration|. - 1. Let _F_ be OrdinaryFunctionCreate(%Generator%, _sourceText_, |FormalParameters|, |GeneratorBody|, ~non-lexical-this~, _scope_). + 1. Let _F_ be OrdinaryFunctionCreate(%GeneratorFunction.prototype%, _sourceText_, |FormalParameters|, |GeneratorBody|, ~non-lexical-this~, _scope_). 1. Perform SetFunctionName(_F_, *"default"*). - 1. Let _prototype_ be OrdinaryObjectCreate(%Generator.prototype%). + 1. Let _prototype_ be OrdinaryObjectCreate(%GeneratorFunction.prototype.prototype%). 1. Perform DefinePropertyOrThrow(_F_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Return _F_. @@ -20917,10 +20877,10 @@

Runtime Semantics: PropertyDefinitionEvaluation

1. ReturnIfAbrupt(_propKey_). 1. Let _scope_ be the running execution context's LexicalEnvironment. 1. Let _sourceText_ be the source text matched by |GeneratorMethod|. - 1. Let _closure_ be OrdinaryFunctionCreate(%Generator%, _sourceText_, |UniqueFormalParameters|, |GeneratorBody|, ~non-lexical-this~, _scope_). + 1. Let _closure_ be OrdinaryFunctionCreate(%GeneratorFunction.prototype%, _sourceText_, |UniqueFormalParameters|, |GeneratorBody|, ~non-lexical-this~, _scope_). 1. Perform MakeMethod(_closure_, _object_). 1. Perform SetFunctionName(_closure_, _propKey_). - 1. Let _prototype_ be OrdinaryObjectCreate(%Generator.prototype%). + 1. Let _prototype_ be OrdinaryObjectCreate(%GeneratorFunction.prototype.prototype%). 1. Perform DefinePropertyOrThrow(_closure_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Let _desc_ be the PropertyDescriptor { [[Value]]: _closure_, [[Writable]]: *true*, [[Enumerable]]: _enumerable_, [[Configurable]]: *true* }. 1. Return ? DefinePropertyOrThrow(_object_, _propKey_, _desc_). @@ -20934,9 +20894,9 @@

Runtime Semantics: NamedEvaluation

1. Let _scope_ be the LexicalEnvironment of the running execution context. 1. Let _sourceText_ be the source text matched by |GeneratorExpression|. - 1. Let _closure_ be OrdinaryFunctionCreate(%Generator%, _sourceText_, |FormalParameters|, |GeneratorBody|, ~non-lexical-this~, _scope_). + 1. Let _closure_ be OrdinaryFunctionCreate(%GeneratorFunction.prototype%, _sourceText_, |FormalParameters|, |GeneratorBody|, ~non-lexical-this~, _scope_). 1. Perform SetFunctionName(_closure_, _name_). - 1. Let _prototype_ be OrdinaryObjectCreate(%Generator.prototype%). + 1. Let _prototype_ be OrdinaryObjectCreate(%GeneratorFunction.prototype.prototype%). 1. Perform DefinePropertyOrThrow(_closure_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Return _closure_. @@ -20955,9 +20915,9 @@

Runtime Semantics: Evaluation

1. Let _name_ be StringValue of |BindingIdentifier|. 1. Perform _funcEnv_.CreateImmutableBinding(_name_, *false*). 1. Let _sourceText_ be the source text matched by |GeneratorExpression|. - 1. Let _closure_ be OrdinaryFunctionCreate(%Generator%, _sourceText_, |FormalParameters|, |GeneratorBody|, ~non-lexical-this~, _funcEnv_). + 1. Let _closure_ be OrdinaryFunctionCreate(%GeneratorFunction.prototype%, _sourceText_, |FormalParameters|, |GeneratorBody|, ~non-lexical-this~, _funcEnv_). 1. Perform SetFunctionName(_closure_, _name_). - 1. Let _prototype_ be OrdinaryObjectCreate(%Generator.prototype%). + 1. Let _prototype_ be OrdinaryObjectCreate(%GeneratorFunction.prototype.prototype%). 1. Perform DefinePropertyOrThrow(_closure_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Perform _funcEnv_.InitializeBinding(_name_, _closure_). 1. Return _closure_. @@ -21197,7 +21157,7 @@

Runtime Semantics: EvaluateBody

1. Perform ? FunctionDeclarationInstantiation(_functionObject_, _argumentsList_). - 1. Let _generator_ be ? OrdinaryCreateFromConstructor(_functionObject_, *"%AsyncGenerator.prototype%"*, « [[AsyncGeneratorState]], [[AsyncGeneratorContext]], [[AsyncGeneratorQueue]] »). + 1. Let _generator_ be ? OrdinaryCreateFromConstructor(_functionObject_, *"%AsyncGeneratorFunction.prototype.prototype%"*, « [[AsyncGeneratorState]], [[AsyncGeneratorContext]], [[AsyncGeneratorQueue]] »). 1. Perform ! AsyncGeneratorStart(_generator_, |FunctionBody|). 1. Return Completion { [[Type]]: ~return~, [[Value]]: _generator_, [[Target]]: ~empty~ }. @@ -21212,9 +21172,9 @@

Runtime Semantics: InstantiateFunctionObject

1. Let _name_ be StringValue of |BindingIdentifier|. 1. Let _sourceText_ be the source text matched by |AsyncGeneratorDeclaration|. - 1. Let _F_ be ! OrdinaryFunctionCreate(%AsyncGenerator%, _sourceText_, |FormalParameters|, |AsyncGeneratorBody|, ~non-lexical-this~, _scope_). + 1. Let _F_ be ! OrdinaryFunctionCreate(%AsyncGeneratorFunction.prototype%, _sourceText_, |FormalParameters|, |AsyncGeneratorBody|, ~non-lexical-this~, _scope_). 1. Perform ! SetFunctionName(_F_, _name_). - 1. Let _prototype_ be ! OrdinaryObjectCreate(%AsyncGenerator.prototype%). + 1. Let _prototype_ be ! OrdinaryObjectCreate(%AsyncGeneratorFunction.prototype.prototype%). 1. Perform ! DefinePropertyOrThrow(_F_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Return _F_. @@ -21224,9 +21184,9 @@

Runtime Semantics: InstantiateFunctionObject

1. Let _sourceText_ be the source text matched by |AsyncGeneratorDeclaration|. - 1. Let _F_ be OrdinaryFunctionCreate(%AsyncGenerator%, _sourceText_, |FormalParameters|, |AsyncGeneratorBody|, ~non-lexical-this~, _scope_). + 1. Let _F_ be OrdinaryFunctionCreate(%AsyncGeneratorFunction.prototype%, _sourceText_, |FormalParameters|, |AsyncGeneratorBody|, ~non-lexical-this~, _scope_). 1. Perform SetFunctionName(_F_, *"default"*). - 1. Let _prototype_ be OrdinaryObjectCreate(%AsyncGenerator.prototype%). + 1. Let _prototype_ be OrdinaryObjectCreate(%AsyncGeneratorFunction.prototype.prototype%). 1. Perform DefinePropertyOrThrow(_F_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Return _F_. @@ -21246,10 +21206,10 @@

Runtime Semantics: PropertyDefinitionEvaluation

1. ReturnIfAbrupt(_propKey_). 1. Let _scope_ be the running execution context's LexicalEnvironment. 1. Let _sourceText_ be the source text matched by |AsyncGeneratorMethod|. - 1. Let _closure_ be ! OrdinaryFunctionCreate(%AsyncGenerator%, _sourceText_, |UniqueFormalParameters|, |AsyncGeneratorBody|, ~non-lexical-this~, _scope_). + 1. Let _closure_ be ! OrdinaryFunctionCreate(%AsyncGeneratorFunction.prototype%, _sourceText_, |UniqueFormalParameters|, |AsyncGeneratorBody|, ~non-lexical-this~, _scope_). 1. Perform ! MakeMethod(_closure_, _object_). 1. Perform ! SetFunctionName(_closure_, _propKey_). - 1. Let _prototype_ be ! OrdinaryObjectCreate(%AsyncGenerator.prototype%). + 1. Let _prototype_ be ! OrdinaryObjectCreate(%AsyncGeneratorFunction.prototype.prototype%). 1. Perform ! DefinePropertyOrThrow(_closure_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Let _desc_ be PropertyDescriptor { [[Value]]: _closure_, [[Writable]]: *true*, [[Enumerable]]: _enumerable_, [[Configurable]]: *true* }. 1. Return ? DefinePropertyOrThrow(_object_, _propKey_, _desc_). @@ -21265,9 +21225,9 @@

Runtime Semantics: NamedEvaluation

1. Let _scope_ be the LexicalEnvironment of the running execution context. 1. Let _sourceText_ be the source text matched by |AsyncGeneratorExpression|. - 1. Let _closure_ be ! OrdinaryFunctionCreate(%AsyncGenerator%, _sourceText_, |FormalParameters|, |AsyncGeneratorBody|, ~non-lexical-this~, _scope_). + 1. Let _closure_ be ! OrdinaryFunctionCreate(%AsyncGeneratorFunction.prototype%, _sourceText_, |FormalParameters|, |AsyncGeneratorBody|, ~non-lexical-this~, _scope_). 1. Perform SetFunctionName(_closure_, _name_). - 1. Let _prototype_ be ! OrdinaryObjectCreate(%AsyncGenerator.prototype%). + 1. Let _prototype_ be ! OrdinaryObjectCreate(%AsyncGeneratorFunction.prototype.prototype%). 1. Perform ! DefinePropertyOrThrow(_closure_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Return _closure_. @@ -21292,9 +21252,9 @@

Runtime Semantics: Evaluation

1. Let _name_ be StringValue of |BindingIdentifier|. 1. Perform ! _funcEnv_.CreateImmutableBinding(_name_, *false*). 1. Let _sourceText_ be the source text matched by |AsyncGeneratorExpression|. - 1. Let _closure_ be ! OrdinaryFunctionCreate(%AsyncGenerator%, _sourceText_, |FormalParameters|, |AsyncGeneratorBody|, ~non-lexical-this~, _funcEnv_). + 1. Let _closure_ be ! OrdinaryFunctionCreate(%AsyncGeneratorFunction.prototype%, _sourceText_, |FormalParameters|, |AsyncGeneratorBody|, ~non-lexical-this~, _funcEnv_). 1. Perform ! SetFunctionName(_closure_, _name_). - 1. Let _prototype_ be ! OrdinaryObjectCreate(%AsyncGenerator.prototype%). + 1. Let _prototype_ be ! OrdinaryObjectCreate(%AsyncGeneratorFunction.prototype.prototype%). 1. Perform ! DefinePropertyOrThrow(_closure_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Perform ! _funcEnv_.InitializeBinding(_name_, _closure_). 1. Return _closure_. @@ -26311,7 +26271,7 @@

Object.preventExtensions ( _O_ )

Object.prototype

-

The initial value of `Object.prototype` is %Object.prototype%.

+

The initial value of `Object.prototype` is the Object prototype object.

This property has the attributes { [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *false* }.

@@ -26352,7 +26312,7 @@

Object.values ( _O_ )

Properties of the Object Prototype Object

-

The Object prototype object:

+

The Object prototype object: