# Tenko parser test case

- Path: tests/testcases/strict_mode/directive_headers/ident_3d_5barguments5d/function_decl/as_func_name_w_directive.md

> :: strict mode : directive headers : ident 3d 5barguments5d : function decl
>
> ::> as func name w directive

## Input


`````js
function arguments(b){ "use strict"; }
`````

## Output

_Note: the whole output block is auto-generated. Manual changes will be overwritten!_

Below follow outputs in five parsing modes: sloppy, sloppy+annexb, strict script, module, module+annexb.

Note that the output parts are auto-generated by the test runner to reflect actual result.

### Sloppy mode

Parsed with script goal and as if the code did not start with strict mode header.

`````
throws: Parser error!
  Can not use reserved keyword `arguments` in strict mode as id for function that has a use strict directive

start@1:0, error@1:9
╔══╦════════════════
 1 ║ function arguments(b){ "use strict"; }
   ║          ^^^^^^^^^------- error
╚══╩════════════════

`````

### Strict mode

Parsed with script goal but as if it was starting with `"use strict"` at the top.

`````
throws: Parser error!
  Cannot use this name (`arguments`) as a variable name because: Cannot create a binding named `arguments` in strict mode

start@1:0, error@1:9
╔══╦════════════════
 1 ║ function arguments(b){ "use strict"; }
   ║          ^^^^^^^^^------- error
╚══╩════════════════

`````

### Module goal

Parsed with the module goal.

_Output same as strict mode._

### Sloppy mode with AnnexB

Parsed with script goal with AnnexB rules enabled and as if the code did not start with strict mode header.

_Output same as sloppy mode._

### Module goal with AnnexB

Parsed with the module goal with AnnexB rules enabled.

_Output same as strict mode._
