Correction: add explicit language re: application of Forbidden Extensions, bullet 1

This commit is contained in:
Rick Waldron 2020-10-07 13:38:38 -04:00
parent 20e3101105
commit a6d38ffe9a
39 changed files with 53 additions and 36 deletions

View File

@ -4,7 +4,7 @@
template: forbidden-extensions/bullet-one
esid: sec-forbidden-extensions
desc: >
Forbidden extension, o.arguments
Forbidden extension, f.arguments
info: |
ECMAScript function objects defined using syntactic constructors in strict mode code must not be created with own properties named "caller" or "arguments". Such own properties also must not be created for function objects defined using an ArrowFunction, MethodDefinition, GeneratorDeclaration, GeneratorExpression, AsyncGeneratorDeclaration, AsyncGeneratorExpression, ClassDeclaration, ClassExpression, AsyncFunctionDeclaration, AsyncFunctionExpression, or AsyncArrowFunction regardless of whether the definition is contained in strict mode code. Built-in functions, strict functions created using the Function constructor, generator functions created using the Generator constructor, async functions created using the AsyncFunction constructor, and functions created using the bind method also must not be created with such own properties.

View File

@ -4,10 +4,12 @@
path: language/statements/function/forbidden-ext/b1/func-decl-
name: function declaration
esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject
desc: In non-strict code, f.caller is not forbidden
info: |
FunctionDeclaration :
function BindingIdentifier ( FormalParameters ) { FunctionBody }
In non-strict mode code, a function object created using the FunctionDeclaration
syntactic constructor, is not subject to the following forbidden extension:
---*/
var callCount = 0;

View File

@ -6,6 +6,9 @@ name: function expression
esid: sec-function-definitions-runtime-semantics-evaluation
info: |
FunctionExpression : function ( FormalParameters ) { FunctionBody }
In non-strict mode code, a function object created using the FunctionExpression
syntactic constructor, is not subject to the following forbidden extension:
---*/
var callCount = 0;

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/arrow-function.template
/*---
description: Forbidden extension, o.arguments (arrow function expression)
description: Forbidden extension, f.arguments (arrow function expression)
esid: sec-arrow-function-definitions-runtime-semantics-evaluation
flags: [generated, noStrict]
info: |

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/async-arrow-function.template
/*---
description: Forbidden extension, o.arguments (async arrow function expression)
description: Forbidden extension, f.arguments (async arrow function expression)
esid: sec-async-arrow-function-definitions
features: [async-functions]
flags: [generated, noStrict, async]

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/async-func-expr-named.template
/*---
description: Forbidden extension, o.arguments (async function named expression)
description: Forbidden extension, f.arguments (async function named expression)
esid: sec-async-function-definitions
features: [async-functions]
flags: [generated, noStrict, async]

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/async-func-expr-nameless.template
/*---
description: Forbidden extension, o.arguments (async function nameless expression)
description: Forbidden extension, f.arguments (async function nameless expression)
esid: sec-async-function-definitions
features: [async-functions]
flags: [generated, noStrict, async]

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/async-gen-func-expr.template
/*---
description: Forbidden extension, o.arguments (async generator function expression)
description: Forbidden extension, f.arguments (async generator function expression)
esid: sec-asyncgenerator-definitions-evaluation
features: [async-iteration]
flags: [generated, noStrict, async]

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/async-gen-named-func-expr.template
/*---
description: Forbidden extension, o.arguments (async generator named function expression)
description: Forbidden extension, f.arguments (async generator named function expression)
esid: sec-asyncgenerator-definitions-evaluation
features: [async-iteration]
flags: [generated, noStrict, async]

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/cls-expr-async-gen-meth-static.template
/*---
description: Forbidden extension, o.arguments (static class expression async generator method)
description: Forbidden extension, f.arguments (static class expression async generator method)
esid: sec-class-definitions-runtime-semantics-evaluation
features: [async-iteration]
flags: [generated, noStrict, async]

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/cls-expr-async-gen-meth.template
/*---
description: Forbidden extension, o.arguments (class expression async generator method)
description: Forbidden extension, f.arguments (class expression async generator method)
esid: sec-class-definitions-runtime-semantics-evaluation
features: [async-iteration]
flags: [generated, noStrict, async]

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/cls-expr-async-meth-static.template
/*---
description: Forbidden extension, o.arguments (static class expression async method)
description: Forbidden extension, f.arguments (static class expression async method)
esid: sec-class-definitions-runtime-semantics-evaluation
features: [async-functions]
flags: [generated, noStrict, async]

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/cls-expr-async-meth.template
/*---
description: Forbidden extension, o.arguments (class expression async method)
description: Forbidden extension, f.arguments (class expression async method)
esid: sec-class-definitions-runtime-semantics-evaluation
features: [async-functions]
flags: [generated, noStrict, async]

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/cls-expr-gen-meth-static.template
/*---
description: Forbidden extension, o.arguments (static class expression generator method)
description: Forbidden extension, f.arguments (static class expression generator method)
esid: sec-class-definitions-runtime-semantics-evaluation
features: [generators]
flags: [generated, noStrict]

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/cls-expr-gen-meth.template
/*---
description: Forbidden extension, o.arguments (class expression method)
description: Forbidden extension, f.arguments (class expression method)
esid: sec-class-definitions-runtime-semantics-evaluation
features: [generators]
flags: [generated, noStrict]

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/cls-expr-meth-static.template
/*---
description: Forbidden extension, o.arguments (static class expression method)
description: Forbidden extension, f.arguments (static class expression method)
esid: sec-class-definitions-runtime-semantics-evaluation
flags: [generated, noStrict]
info: |

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/cls-expr-meth.template
/*---
description: Forbidden extension, o.arguments (class expression method)
description: Forbidden extension, f.arguments (class expression method)
esid: sec-class-definitions-runtime-semantics-evaluation
flags: [generated, noStrict]
info: |

View File

@ -2,12 +2,15 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/func-expr.template
/*---
description: Forbidden extension, o.arguments (function expression)
description: Forbidden extension, f.arguments (function expression)
esid: sec-function-definitions-runtime-semantics-evaluation
flags: [generated, noStrict]
info: |
FunctionExpression : function ( FormalParameters ) { FunctionBody }
In non-strict mode code, a function object created using the FunctionExpression
syntactic constructor, is not subject to the following forbidden extension:
ECMAScript function objects defined using syntactic constructors in strict mode code must not be created with own properties named "caller" or "arguments". Such own properties also must not be created for function objects defined using an ArrowFunction, MethodDefinition, GeneratorDeclaration, GeneratorExpression, AsyncGeneratorDeclaration, AsyncGeneratorExpression, ClassDeclaration, ClassExpression, AsyncFunctionDeclaration, AsyncFunctionExpression, or AsyncArrowFunction regardless of whether the definition is contained in strict mode code. Built-in functions, strict functions created using the Function constructor, generator functions created using the Generator constructor, async functions created using the AsyncFunction constructor, and functions created using the bind method also must not be created with such own properties.
---*/

View File

@ -8,6 +8,9 @@ flags: [generated, noStrict]
info: |
FunctionExpression : function ( FormalParameters ) { FunctionBody }
In non-strict mode code, a function object created using the FunctionExpression
syntactic constructor, is not subject to the following forbidden extension:
ECMAScript function objects defined using syntactic constructors in strict mode code must not be created with own properties named "caller" or "arguments". Such own properties also must not be created for function objects defined using an ArrowFunction, MethodDefinition, GeneratorDeclaration, GeneratorExpression, AsyncGeneratorDeclaration, AsyncGeneratorExpression, ClassDeclaration, ClassExpression, AsyncFunctionDeclaration, AsyncFunctionExpression, or AsyncArrowFunction regardless of whether the definition is contained in strict mode code. Built-in functions, strict functions created using the Function constructor, generator functions created using the Generator constructor, async functions created using the AsyncFunction constructor, and functions created using the bind method also must not be created with such own properties.
---*/

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/func-expr-strict.template
/*---
description: Forbidden extension, o.arguments (function expression)
description: Forbidden extension, f.arguments (function expression)
esid: sec-function-definitions-runtime-semantics-evaluation
flags: [generated, noStrict]
info: |

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/gen-func-expr.template
/*---
description: Forbidden extension, o.arguments (generator function expression)
description: Forbidden extension, f.arguments (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators]
flags: [generated, noStrict]

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/async-gen-meth.template
/*---
description: Forbidden extension, o.arguments (async generator method)
description: Forbidden extension, f.arguments (async generator method)
esid: sec-asyncgenerator-definitions-propertydefinitionevaluation
features: [async-iteration]
flags: [generated, noStrict, async]

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/async-meth.template
/*---
description: Forbidden extension, o.arguments (async method)
description: Forbidden extension, f.arguments (async method)
esid: sec-async-function-definitions
features: [async-functions]
flags: [generated, noStrict, async]

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/gen-meth.template
/*---
description: Forbidden extension, o.arguments (generator method)
description: Forbidden extension, f.arguments (generator method)
esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
features: [generators]
flags: [generated, noStrict]

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/meth.template
/*---
description: Forbidden extension, o.arguments (method)
description: Forbidden extension, f.arguments (method)
esid: sec-runtime-semantics-definemethod
flags: [generated, noStrict]
info: |

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/async-func-decl.template
/*---
description: Forbidden extension, o.arguments (async function declaration)
description: Forbidden extension, f.arguments (async function declaration)
esid: sec-async-function-definitions
features: [async-functions]
flags: [generated, noStrict, async]

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/async-gen-func-decl.template
/*---
description: Forbidden extension, o.arguments (async generator function declaration)
description: Forbidden extension, f.arguments (async generator function declaration)
esid: sec-asyncgenerator-definitions-instantiatefunctionobject
features: [async-iteration]
flags: [generated, noStrict, async]

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/cls-decl-async-gen-meth-static.template
/*---
description: Forbidden extension, o.arguments (static class expression generator method)
description: Forbidden extension, f.arguments (static class expression generator method)
esid: sec-runtime-semantics-bindingclassdeclarationevaluation
features: [async-iteration]
flags: [generated, noStrict, async]

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/cls-decl-async-gen-meth.template
/*---
description: Forbidden extension, o.arguments (class expression method)
description: Forbidden extension, f.arguments (class expression method)
esid: sec-class-definitions-runtime-semantics-evaluation
features: [async-iteration]
flags: [generated, noStrict, async]

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/cls-decl-async-meth-static.template
/*---
description: Forbidden extension, o.arguments (static class declaration async method)
description: Forbidden extension, f.arguments (static class declaration async method)
esid: sec-runtime-semantics-bindingclassdeclarationevaluation
features: [async-functions]
flags: [generated, noStrict, async]

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/cls-decl-async-meth.template
/*---
description: Forbidden extension, o.arguments (class declaration async method)
description: Forbidden extension, f.arguments (class declaration async method)
esid: sec-class-definitions-runtime-semantics-evaluation
features: [async-functions]
flags: [generated, noStrict, async]

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/cls-decl-gen-meth-static.template
/*---
description: Forbidden extension, o.arguments (static class expression generator method)
description: Forbidden extension, f.arguments (static class expression generator method)
esid: sec-runtime-semantics-bindingclassdeclarationevaluation
features: [generators]
flags: [generated, noStrict]

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/cls-decl-gen-meth.template
/*---
description: Forbidden extension, o.arguments (class expression method)
description: Forbidden extension, f.arguments (class expression method)
esid: sec-class-definitions-runtime-semantics-evaluation
features: [generators]
flags: [generated, noStrict]

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/cls-decl-meth-static.template
/*---
description: Forbidden extension, o.arguments (static class expression method)
description: Forbidden extension, f.arguments (static class expression method)
esid: sec-runtime-semantics-bindingclassdeclarationevaluation
flags: [generated, noStrict]
info: |

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/cls-decl-meth.template
/*---
description: Forbidden extension, o.arguments (class expression method)
description: Forbidden extension, f.arguments (class expression method)
esid: sec-runtime-semantics-bindingclassdeclarationevaluation
flags: [generated, noStrict]
info: |

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/func-decl-strict.template
/*---
description: Forbidden extension, o.arguments (function declaration)
description: Forbidden extension, f.arguments (function declaration)
esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject
flags: [generated, noStrict]
info: |

View File

@ -2,13 +2,16 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/func-decl.template
/*---
description: Forbidden extension, o.arguments (function declaration)
description: Forbidden extension, f.arguments (function declaration)
esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject
flags: [generated, noStrict]
info: |
FunctionDeclaration :
function BindingIdentifier ( FormalParameters ) { FunctionBody }
In non-strict mode code, a function object created using the FunctionDeclaration
syntactic constructor, is not subject to the following forbidden extension:
ECMAScript function objects defined using syntactic constructors in strict mode code must not be created with own properties named "caller" or "arguments". Such own properties also must not be created for function objects defined using an ArrowFunction, MethodDefinition, GeneratorDeclaration, GeneratorExpression, AsyncGeneratorDeclaration, AsyncGeneratorExpression, ClassDeclaration, ClassExpression, AsyncFunctionDeclaration, AsyncFunctionExpression, or AsyncArrowFunction regardless of whether the definition is contained in strict mode code. Built-in functions, strict functions created using the Function constructor, generator functions created using the Generator constructor, async functions created using the AsyncFunction constructor, and functions created using the bind method also must not be created with such own properties.
---*/

View File

@ -9,6 +9,9 @@ info: |
FunctionDeclaration :
function BindingIdentifier ( FormalParameters ) { FunctionBody }
In non-strict mode code, a function object created using the FunctionDeclaration
syntactic constructor, is not subject to the following forbidden extension:
ECMAScript function objects defined using syntactic constructors in strict mode code must not be created with own properties named "caller" or "arguments". Such own properties also must not be created for function objects defined using an ArrowFunction, MethodDefinition, GeneratorDeclaration, GeneratorExpression, AsyncGeneratorDeclaration, AsyncGeneratorExpression, ClassDeclaration, ClassExpression, AsyncFunctionDeclaration, AsyncFunctionExpression, or AsyncArrowFunction regardless of whether the definition is contained in strict mode code. Built-in functions, strict functions created using the Function constructor, generator functions created using the Generator constructor, async functions created using the AsyncFunction constructor, and functions created using the bind method also must not be created with such own properties.
---*/

View File

@ -2,7 +2,7 @@
// - src/function-forms/forbidden-ext-direct-access-prop-arguments.case
// - src/function-forms/forbidden-extensions/bullet-one/gen-func-decl.template
/*---
description: Forbidden extension, o.arguments (generator function declaration)
description: Forbidden extension, f.arguments (generator function declaration)
esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
features: [generators]
flags: [generated, noStrict]