diff --git a/src/function-forms/forbidden-ext-direct-access-prop-arguments.case b/src/function-forms/forbidden-ext-direct-access-prop-arguments.case index ff771ce48d..fc0fb3aedb 100644 --- a/src/function-forms/forbidden-ext-direct-access-prop-arguments.case +++ b/src/function-forms/forbidden-ext-direct-access-prop-arguments.case @@ -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. diff --git a/src/function-forms/forbidden-extensions/bullet-one/func-decl.template b/src/function-forms/forbidden-extensions/bullet-one/func-decl.template index 8a502fae43..0bb81df964 100644 --- a/src/function-forms/forbidden-extensions/bullet-one/func-decl.template +++ b/src/function-forms/forbidden-extensions/bullet-one/func-decl.template @@ -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; diff --git a/src/function-forms/forbidden-extensions/bullet-one/func-expr.template b/src/function-forms/forbidden-extensions/bullet-one/func-expr.template index 0e0b7cb903..106b09c12b 100644 --- a/src/function-forms/forbidden-extensions/bullet-one/func-expr.template +++ b/src/function-forms/forbidden-extensions/bullet-one/func-expr.template @@ -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; diff --git a/test/language/expressions/arrow-function/forbidden-ext/b1/arrow-function-forbidden-ext-direct-access-prop-arguments.js b/test/language/expressions/arrow-function/forbidden-ext/b1/arrow-function-forbidden-ext-direct-access-prop-arguments.js index c1b29a927e..01c18ef780 100644 --- a/test/language/expressions/arrow-function/forbidden-ext/b1/arrow-function-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/expressions/arrow-function/forbidden-ext/b1/arrow-function-forbidden-ext-direct-access-prop-arguments.js @@ -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: | diff --git a/test/language/expressions/async-arrow-function/forbidden-ext/b1/async-arrow-function-forbidden-ext-direct-access-prop-arguments.js b/test/language/expressions/async-arrow-function/forbidden-ext/b1/async-arrow-function-forbidden-ext-direct-access-prop-arguments.js index 672766e4d6..658e83c94e 100644 --- a/test/language/expressions/async-arrow-function/forbidden-ext/b1/async-arrow-function-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/expressions/async-arrow-function/forbidden-ext/b1/async-arrow-function-forbidden-ext-direct-access-prop-arguments.js @@ -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] diff --git a/test/language/expressions/async-function/forbidden-ext/b1/async-func-expr-named-forbidden-ext-direct-access-prop-arguments.js b/test/language/expressions/async-function/forbidden-ext/b1/async-func-expr-named-forbidden-ext-direct-access-prop-arguments.js index 8a55a9adcf..dbf54fddcd 100644 --- a/test/language/expressions/async-function/forbidden-ext/b1/async-func-expr-named-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/expressions/async-function/forbidden-ext/b1/async-func-expr-named-forbidden-ext-direct-access-prop-arguments.js @@ -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] diff --git a/test/language/expressions/async-function/forbidden-ext/b1/async-func-expr-nameless-forbidden-ext-direct-access-prop-arguments.js b/test/language/expressions/async-function/forbidden-ext/b1/async-func-expr-nameless-forbidden-ext-direct-access-prop-arguments.js index 3431bc62f8..d90e0c0824 100644 --- a/test/language/expressions/async-function/forbidden-ext/b1/async-func-expr-nameless-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/expressions/async-function/forbidden-ext/b1/async-func-expr-nameless-forbidden-ext-direct-access-prop-arguments.js @@ -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] diff --git a/test/language/expressions/async-generator/forbidden-ext/b1/async-gen-func-expr-forbidden-ext-direct-access-prop-arguments.js b/test/language/expressions/async-generator/forbidden-ext/b1/async-gen-func-expr-forbidden-ext-direct-access-prop-arguments.js index aea8685269..ccf10b3a55 100644 --- a/test/language/expressions/async-generator/forbidden-ext/b1/async-gen-func-expr-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/expressions/async-generator/forbidden-ext/b1/async-gen-func-expr-forbidden-ext-direct-access-prop-arguments.js @@ -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] diff --git a/test/language/expressions/async-generator/forbidden-ext/b1/async-gen-named-func-expr-forbidden-ext-direct-access-prop-arguments.js b/test/language/expressions/async-generator/forbidden-ext/b1/async-gen-named-func-expr-forbidden-ext-direct-access-prop-arguments.js index 0144ddb1bf..210e5a984a 100644 --- a/test/language/expressions/async-generator/forbidden-ext/b1/async-gen-named-func-expr-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/expressions/async-generator/forbidden-ext/b1/async-gen-named-func-expr-forbidden-ext-direct-access-prop-arguments.js @@ -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] diff --git a/test/language/expressions/class/async-gen-method-static/forbidden-ext/b1/cls-expr-async-gen-meth-static-forbidden-ext-direct-access-prop-arguments.js b/test/language/expressions/class/async-gen-method-static/forbidden-ext/b1/cls-expr-async-gen-meth-static-forbidden-ext-direct-access-prop-arguments.js index 34f19bc3aa..1383564ea9 100644 --- a/test/language/expressions/class/async-gen-method-static/forbidden-ext/b1/cls-expr-async-gen-meth-static-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/expressions/class/async-gen-method-static/forbidden-ext/b1/cls-expr-async-gen-meth-static-forbidden-ext-direct-access-prop-arguments.js @@ -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] diff --git a/test/language/expressions/class/async-gen-method/forbidden-ext/b1/cls-expr-async-gen-meth-forbidden-ext-direct-access-prop-arguments.js b/test/language/expressions/class/async-gen-method/forbidden-ext/b1/cls-expr-async-gen-meth-forbidden-ext-direct-access-prop-arguments.js index 4ddba4bf4f..d1aade87fa 100644 --- a/test/language/expressions/class/async-gen-method/forbidden-ext/b1/cls-expr-async-gen-meth-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/expressions/class/async-gen-method/forbidden-ext/b1/cls-expr-async-gen-meth-forbidden-ext-direct-access-prop-arguments.js @@ -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] diff --git a/test/language/expressions/class/async-method-static/forbidden-ext/b1/cls-expr-async-meth-static-forbidden-ext-direct-access-prop-arguments.js b/test/language/expressions/class/async-method-static/forbidden-ext/b1/cls-expr-async-meth-static-forbidden-ext-direct-access-prop-arguments.js index c0f425965d..917d024fa5 100644 --- a/test/language/expressions/class/async-method-static/forbidden-ext/b1/cls-expr-async-meth-static-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/expressions/class/async-method-static/forbidden-ext/b1/cls-expr-async-meth-static-forbidden-ext-direct-access-prop-arguments.js @@ -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] diff --git a/test/language/expressions/class/async-method/forbidden-ext/b1/cls-expr-async-meth-forbidden-ext-direct-access-prop-arguments.js b/test/language/expressions/class/async-method/forbidden-ext/b1/cls-expr-async-meth-forbidden-ext-direct-access-prop-arguments.js index 3d59d0cef0..55b2fc7534 100644 --- a/test/language/expressions/class/async-method/forbidden-ext/b1/cls-expr-async-meth-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/expressions/class/async-method/forbidden-ext/b1/cls-expr-async-meth-forbidden-ext-direct-access-prop-arguments.js @@ -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] diff --git a/test/language/expressions/class/gen-method-static/forbidden-ext/b1/cls-expr-gen-meth-static-forbidden-ext-direct-access-prop-arguments.js b/test/language/expressions/class/gen-method-static/forbidden-ext/b1/cls-expr-gen-meth-static-forbidden-ext-direct-access-prop-arguments.js index 62c9c149ef..ef2d6c5aab 100644 --- a/test/language/expressions/class/gen-method-static/forbidden-ext/b1/cls-expr-gen-meth-static-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/expressions/class/gen-method-static/forbidden-ext/b1/cls-expr-gen-meth-static-forbidden-ext-direct-access-prop-arguments.js @@ -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] diff --git a/test/language/expressions/class/gen-method/forbidden-ext/b1/cls-expr-gen-meth-forbidden-ext-direct-access-prop-arguments.js b/test/language/expressions/class/gen-method/forbidden-ext/b1/cls-expr-gen-meth-forbidden-ext-direct-access-prop-arguments.js index 88bb2d6a42..abc4dfa71e 100644 --- a/test/language/expressions/class/gen-method/forbidden-ext/b1/cls-expr-gen-meth-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/expressions/class/gen-method/forbidden-ext/b1/cls-expr-gen-meth-forbidden-ext-direct-access-prop-arguments.js @@ -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] diff --git a/test/language/expressions/class/method-static/forbidden-ext/b1/cls-expr-meth-static-forbidden-ext-direct-access-prop-arguments.js b/test/language/expressions/class/method-static/forbidden-ext/b1/cls-expr-meth-static-forbidden-ext-direct-access-prop-arguments.js index 6713a59103..938647338d 100644 --- a/test/language/expressions/class/method-static/forbidden-ext/b1/cls-expr-meth-static-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/expressions/class/method-static/forbidden-ext/b1/cls-expr-meth-static-forbidden-ext-direct-access-prop-arguments.js @@ -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: | diff --git a/test/language/expressions/class/method/forbidden-ext/b1/cls-expr-meth-forbidden-ext-direct-access-prop-arguments.js b/test/language/expressions/class/method/forbidden-ext/b1/cls-expr-meth-forbidden-ext-direct-access-prop-arguments.js index a2f5878625..becf8b750e 100644 --- a/test/language/expressions/class/method/forbidden-ext/b1/cls-expr-meth-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/expressions/class/method/forbidden-ext/b1/cls-expr-meth-forbidden-ext-direct-access-prop-arguments.js @@ -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: | diff --git a/test/language/expressions/function/forbidden-ext/b1/func-expr-forbidden-ext-direct-access-prop-arguments.js b/test/language/expressions/function/forbidden-ext/b1/func-expr-forbidden-ext-direct-access-prop-arguments.js index 9f2849fe8c..f3a081443d 100644 --- a/test/language/expressions/function/forbidden-ext/b1/func-expr-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/expressions/function/forbidden-ext/b1/func-expr-forbidden-ext-direct-access-prop-arguments.js @@ -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. ---*/ diff --git a/test/language/expressions/function/forbidden-ext/b1/func-expr-forbidden-ext-direct-access-prop-caller.js b/test/language/expressions/function/forbidden-ext/b1/func-expr-forbidden-ext-direct-access-prop-caller.js index 4decc361a7..c3bcee4157 100644 --- a/test/language/expressions/function/forbidden-ext/b1/func-expr-forbidden-ext-direct-access-prop-caller.js +++ b/test/language/expressions/function/forbidden-ext/b1/func-expr-forbidden-ext-direct-access-prop-caller.js @@ -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. ---*/ diff --git a/test/language/expressions/function/forbidden-ext/b1/func-expr-strict-forbidden-ext-direct-access-prop-arguments.js b/test/language/expressions/function/forbidden-ext/b1/func-expr-strict-forbidden-ext-direct-access-prop-arguments.js index 46e946bafa..1d9332d775 100644 --- a/test/language/expressions/function/forbidden-ext/b1/func-expr-strict-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/expressions/function/forbidden-ext/b1/func-expr-strict-forbidden-ext-direct-access-prop-arguments.js @@ -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: | diff --git a/test/language/expressions/generators/forbidden-ext/b1/gen-func-expr-forbidden-ext-direct-access-prop-arguments.js b/test/language/expressions/generators/forbidden-ext/b1/gen-func-expr-forbidden-ext-direct-access-prop-arguments.js index 98d9e309a4..3b102f1931 100644 --- a/test/language/expressions/generators/forbidden-ext/b1/gen-func-expr-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/expressions/generators/forbidden-ext/b1/gen-func-expr-forbidden-ext-direct-access-prop-arguments.js @@ -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] diff --git a/test/language/expressions/object/method-definition/forbidden-ext/b1/async-gen-meth-forbidden-ext-direct-access-prop-arguments.js b/test/language/expressions/object/method-definition/forbidden-ext/b1/async-gen-meth-forbidden-ext-direct-access-prop-arguments.js index caf50d6261..cc2e691bc6 100644 --- a/test/language/expressions/object/method-definition/forbidden-ext/b1/async-gen-meth-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/expressions/object/method-definition/forbidden-ext/b1/async-gen-meth-forbidden-ext-direct-access-prop-arguments.js @@ -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] diff --git a/test/language/expressions/object/method-definition/forbidden-ext/b1/async-meth-forbidden-ext-direct-access-prop-arguments.js b/test/language/expressions/object/method-definition/forbidden-ext/b1/async-meth-forbidden-ext-direct-access-prop-arguments.js index 672a6a9cfb..a88ec7140c 100644 --- a/test/language/expressions/object/method-definition/forbidden-ext/b1/async-meth-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/expressions/object/method-definition/forbidden-ext/b1/async-meth-forbidden-ext-direct-access-prop-arguments.js @@ -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] diff --git a/test/language/expressions/object/method-definition/forbidden-ext/b1/gen-meth-forbidden-ext-direct-access-prop-arguments.js b/test/language/expressions/object/method-definition/forbidden-ext/b1/gen-meth-forbidden-ext-direct-access-prop-arguments.js index 89d58a4479..3f9b5660cf 100644 --- a/test/language/expressions/object/method-definition/forbidden-ext/b1/gen-meth-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/expressions/object/method-definition/forbidden-ext/b1/gen-meth-forbidden-ext-direct-access-prop-arguments.js @@ -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] diff --git a/test/language/expressions/object/method-definition/forbidden-ext/b1/meth-forbidden-ext-direct-access-prop-arguments.js b/test/language/expressions/object/method-definition/forbidden-ext/b1/meth-forbidden-ext-direct-access-prop-arguments.js index 6c7627fd00..270fed6934 100644 --- a/test/language/expressions/object/method-definition/forbidden-ext/b1/meth-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/expressions/object/method-definition/forbidden-ext/b1/meth-forbidden-ext-direct-access-prop-arguments.js @@ -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: | diff --git a/test/language/statements/async-function/forbidden-ext/b1/async-func-decl-forbidden-ext-direct-access-prop-arguments.js b/test/language/statements/async-function/forbidden-ext/b1/async-func-decl-forbidden-ext-direct-access-prop-arguments.js index 329d9efbfa..1374b8338f 100644 --- a/test/language/statements/async-function/forbidden-ext/b1/async-func-decl-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/statements/async-function/forbidden-ext/b1/async-func-decl-forbidden-ext-direct-access-prop-arguments.js @@ -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] diff --git a/test/language/statements/async-generator/forbidden-ext/b1/async-gen-func-decl-forbidden-ext-direct-access-prop-arguments.js b/test/language/statements/async-generator/forbidden-ext/b1/async-gen-func-decl-forbidden-ext-direct-access-prop-arguments.js index 48459b209f..9ce1fc28e9 100644 --- a/test/language/statements/async-generator/forbidden-ext/b1/async-gen-func-decl-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/statements/async-generator/forbidden-ext/b1/async-gen-func-decl-forbidden-ext-direct-access-prop-arguments.js @@ -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] diff --git a/test/language/statements/class/async-gen-method-static/forbidden-ext/b1/cls-decl-async-gen-meth-static-forbidden-ext-direct-access-prop-arguments.js b/test/language/statements/class/async-gen-method-static/forbidden-ext/b1/cls-decl-async-gen-meth-static-forbidden-ext-direct-access-prop-arguments.js index da7bbb2fec..0f820be22b 100644 --- a/test/language/statements/class/async-gen-method-static/forbidden-ext/b1/cls-decl-async-gen-meth-static-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/statements/class/async-gen-method-static/forbidden-ext/b1/cls-decl-async-gen-meth-static-forbidden-ext-direct-access-prop-arguments.js @@ -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] diff --git a/test/language/statements/class/async-gen-method/forbidden-ext/b1/cls-decl-async-gen-meth-forbidden-ext-direct-access-prop-arguments.js b/test/language/statements/class/async-gen-method/forbidden-ext/b1/cls-decl-async-gen-meth-forbidden-ext-direct-access-prop-arguments.js index 6cf810870f..c085b86c20 100644 --- a/test/language/statements/class/async-gen-method/forbidden-ext/b1/cls-decl-async-gen-meth-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/statements/class/async-gen-method/forbidden-ext/b1/cls-decl-async-gen-meth-forbidden-ext-direct-access-prop-arguments.js @@ -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] diff --git a/test/language/statements/class/async-method-static/forbidden-ext/b1/cls-decl-async-meth-static-forbidden-ext-direct-access-prop-arguments.js b/test/language/statements/class/async-method-static/forbidden-ext/b1/cls-decl-async-meth-static-forbidden-ext-direct-access-prop-arguments.js index 5be5de5d64..77ddc0c213 100644 --- a/test/language/statements/class/async-method-static/forbidden-ext/b1/cls-decl-async-meth-static-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/statements/class/async-method-static/forbidden-ext/b1/cls-decl-async-meth-static-forbidden-ext-direct-access-prop-arguments.js @@ -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] diff --git a/test/language/statements/class/async-method/forbidden-ext/b1/cls-decl-async-meth-forbidden-ext-direct-access-prop-arguments.js b/test/language/statements/class/async-method/forbidden-ext/b1/cls-decl-async-meth-forbidden-ext-direct-access-prop-arguments.js index 24bdd1f770..31d22ee2c9 100644 --- a/test/language/statements/class/async-method/forbidden-ext/b1/cls-decl-async-meth-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/statements/class/async-method/forbidden-ext/b1/cls-decl-async-meth-forbidden-ext-direct-access-prop-arguments.js @@ -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] diff --git a/test/language/statements/class/gen-method-static/forbidden-ext/b1/cls-decl-gen-meth-static-forbidden-ext-direct-access-prop-arguments.js b/test/language/statements/class/gen-method-static/forbidden-ext/b1/cls-decl-gen-meth-static-forbidden-ext-direct-access-prop-arguments.js index b7ed5806f5..af268dc916 100644 --- a/test/language/statements/class/gen-method-static/forbidden-ext/b1/cls-decl-gen-meth-static-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/statements/class/gen-method-static/forbidden-ext/b1/cls-decl-gen-meth-static-forbidden-ext-direct-access-prop-arguments.js @@ -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] diff --git a/test/language/statements/class/gen-method/forbidden-ext/b1/cls-decl-gen-meth-forbidden-ext-direct-access-prop-arguments.js b/test/language/statements/class/gen-method/forbidden-ext/b1/cls-decl-gen-meth-forbidden-ext-direct-access-prop-arguments.js index 3b8a2e73c0..6498eeb494 100644 --- a/test/language/statements/class/gen-method/forbidden-ext/b1/cls-decl-gen-meth-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/statements/class/gen-method/forbidden-ext/b1/cls-decl-gen-meth-forbidden-ext-direct-access-prop-arguments.js @@ -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] diff --git a/test/language/statements/class/method-static/forbidden-ext/b1/cls-decl-meth-static-forbidden-ext-direct-access-prop-arguments.js b/test/language/statements/class/method-static/forbidden-ext/b1/cls-decl-meth-static-forbidden-ext-direct-access-prop-arguments.js index 11bd02de86..556b2f1889 100644 --- a/test/language/statements/class/method-static/forbidden-ext/b1/cls-decl-meth-static-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/statements/class/method-static/forbidden-ext/b1/cls-decl-meth-static-forbidden-ext-direct-access-prop-arguments.js @@ -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: | diff --git a/test/language/statements/class/method/forbidden-ext/b1/cls-decl-meth-forbidden-ext-direct-access-prop-arguments.js b/test/language/statements/class/method/forbidden-ext/b1/cls-decl-meth-forbidden-ext-direct-access-prop-arguments.js index 349961c3d1..4cf2df46b7 100644 --- a/test/language/statements/class/method/forbidden-ext/b1/cls-decl-meth-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/statements/class/method/forbidden-ext/b1/cls-decl-meth-forbidden-ext-direct-access-prop-arguments.js @@ -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: | diff --git a/test/language/statements/function/forbidden-ext/b1/cls-expr-meth-forbidden-ext-direct-access-prop-arguments.js b/test/language/statements/function/forbidden-ext/b1/cls-expr-meth-forbidden-ext-direct-access-prop-arguments.js index 1d8a35be33..68c43b5609 100644 --- a/test/language/statements/function/forbidden-ext/b1/cls-expr-meth-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/statements/function/forbidden-ext/b1/cls-expr-meth-forbidden-ext-direct-access-prop-arguments.js @@ -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: | diff --git a/test/language/statements/function/forbidden-ext/b1/func-decl-forbidden-ext-direct-access-prop-arguments.js b/test/language/statements/function/forbidden-ext/b1/func-decl-forbidden-ext-direct-access-prop-arguments.js index f03037f611..8f1e6fd20c 100644 --- a/test/language/statements/function/forbidden-ext/b1/func-decl-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/statements/function/forbidden-ext/b1/func-decl-forbidden-ext-direct-access-prop-arguments.js @@ -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. ---*/ diff --git a/test/language/statements/function/forbidden-ext/b1/func-decl-forbidden-ext-direct-access-prop-caller.js b/test/language/statements/function/forbidden-ext/b1/func-decl-forbidden-ext-direct-access-prop-caller.js index efc31e5eea..f7bc5989a1 100644 --- a/test/language/statements/function/forbidden-ext/b1/func-decl-forbidden-ext-direct-access-prop-caller.js +++ b/test/language/statements/function/forbidden-ext/b1/func-decl-forbidden-ext-direct-access-prop-caller.js @@ -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. ---*/ diff --git a/test/language/statements/generators/forbidden-ext/b1/gen-func-decl-forbidden-ext-direct-access-prop-arguments.js b/test/language/statements/generators/forbidden-ext/b1/gen-func-decl-forbidden-ext-direct-access-prop-arguments.js index 739a03f019..a9c5809953 100644 --- a/test/language/statements/generators/forbidden-ext/b1/gen-func-decl-forbidden-ext-direct-access-prop-arguments.js +++ b/test/language/statements/generators/forbidden-ext/b1/gen-func-decl-forbidden-ext-direct-access-prop-arguments.js @@ -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]