diff --git a/spec.html b/spec.html index 3ce4c55d89..9ab2eff4df 100644 --- a/spec.html +++ b/spec.html @@ -13576,17 +13576,18 @@

_key_: a property key or Private Name, _closure_: a function object, _enumerable_: a Boolean, - ): a PrivateElement or ~unused~ + ): either a normal completion containing either a PrivateElement or ~unused~, or an abrupt completion

- 1. Assert: _homeObject_ is an ordinary, extensible object with no non-configurable properties. + 1. Assert: _homeObject_ is an ordinary, extensible object. 1. If _key_ is a Private Name, then 1. Return PrivateElement { [[Key]]: _key_, [[Kind]]: ~method~, [[Value]]: _closure_ }. 1. Else, 1. Let _desc_ be the PropertyDescriptor { [[Value]]: _closure_, [[Writable]]: *true*, [[Enumerable]]: _enumerable_, [[Configurable]]: *true* }. - 1. Perform ! DefinePropertyOrThrow(_homeObject_, _key_, _desc_). + 1. Perform ? DefinePropertyOrThrow(_homeObject_, _key_, _desc_). + 1. NOTE: DefinePropertyOrThrow only returns an abrupt completion when attempting to define a class static method whose _key_ is *"prototype"*. 1. Return ~unused~. @@ -23809,7 +23810,7 @@

1. Let _methodDef_ be ? DefineMethod of |MethodDefinition| with argument _object_. 1. Perform SetFunctionName(_methodDef_.[[Closure]], _methodDef_.[[Key]]). - 1. Return DefineMethodProperty(_object_, _methodDef_.[[Key]], _methodDef_.[[Closure]], _enumerable_). + 1. Return ? DefineMethodProperty(_object_, _methodDef_.[[Key]], _methodDef_.[[Closure]], _enumerable_). MethodDefinition : `get` ClassElementName `(` `)` `{` FunctionBody `}` @@ -23855,7 +23856,7 @@

1. Perform SetFunctionName(_closure_, _propKey_). 1. Let _prototype_ be OrdinaryObjectCreate(%GeneratorFunction.prototype.prototype%). 1. Perform ! DefinePropertyOrThrow(_closure_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). - 1. Return DefineMethodProperty(_object_, _propKey_, _closure_, _enumerable_). + 1. Return ? DefineMethodProperty(_object_, _propKey_, _closure_, _enumerable_). AsyncGeneratorMethod : `async` `*` ClassElementName `(` UniqueFormalParameters `)` `{` AsyncGeneratorBody `}` @@ -23870,7 +23871,7 @@

1. Perform SetFunctionName(_closure_, _propKey_). 1. Let _prototype_ be OrdinaryObjectCreate(%AsyncGeneratorFunction.prototype.prototype%). 1. Perform ! DefinePropertyOrThrow(_closure_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). - 1. Return DefineMethodProperty(_object_, _propKey_, _closure_, _enumerable_). + 1. Return ? DefineMethodProperty(_object_, _propKey_, _closure_, _enumerable_). AsyncMethod : `async` ClassElementName `(` UniqueFormalParameters `)` `{` AsyncFunctionBody `}` @@ -23883,7 +23884,7 @@

1. Let _closure_ be OrdinaryFunctionCreate(%AsyncFunction.prototype%, _sourceText_, |UniqueFormalParameters|, |AsyncFunctionBody|, ~non-lexical-this~, _env_, _privateEnv_). 1. Perform MakeMethod(_closure_, _object_). 1. Perform SetFunctionName(_closure_, _propKey_). - 1. Return DefineMethodProperty(_object_, _propKey_, _closure_, _enumerable_). + 1. Return ? DefineMethodProperty(_object_, _propKey_, _closure_, _enumerable_).