Complete test coverage for labelled fn decls

Ensure that early errors restricting labelled function declarations
within WithStatement and IfStatement are honored. Rename existing tests
to match the specification's spelling.
This commit is contained in:
Mike Pennisi 2016-06-30 11:46:03 -04:00
parent ec9d79c027
commit 53df13bf9d
18 changed files with 97 additions and 0 deletions

View File

@ -0,0 +1,25 @@
// Copyright (C) 2016 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-if-statement-static-semantics-early-errors
es6id: 13.6.1
description: >
A labelled function declaration is never permitted in the first of two
Statement positions
info: |
IfStatement :
if ( Expression ) Statement else Statement
if ( Expression ) Statement
- It is a Syntax Error if IsLabelledFunction(Statement) is true.
NOTE It is only necessary to apply this rule if the extension specified in
B.3.2 is implemented.
In the absence of Annex B.3.2, a SyntaxError should be produced due to the
labelled function declaration itself.
negative: SyntaxError
---*/
if (false) label1: label2: function test262() {} else ;

View File

@ -0,0 +1,25 @@
// Copyright (C) 2016 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-if-statement-static-semantics-early-errors
es6id: 13.6.1
description: >
A labelled function declaration is never permitted in the sole Statement
position
info: |
IfStatement :
if ( Expression ) Statement else Statement
if ( Expression ) Statement
- It is a Syntax Error if IsLabelledFunction(Statement) is true.
NOTE It is only necessary to apply this rule if the extension specified in
B.3.2 is implemented.
In the absence of Annex B.3.2, a SyntaxError should be produced due to the
labelled function declaration itself.
negative: SyntaxError
---*/
if (false) label1: label2: function test262() {}

View File

@ -0,0 +1,25 @@
// Copyright (C) 2016 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-if-statement-static-semantics-early-errors
es6id: 13.6.1
description: >
A labelled function declaration is never permitted in the second of two
Statement positions
info: |
IfStatement :
if ( Expression ) Statement else Statement
if ( Expression ) Statement
- It is a Syntax Error if IsLabelledFunction(Statement) is true.
NOTE It is only necessary to apply this rule if the extension specified in
B.3.2 is implemented.
In the absence of Annex B.3.2, a SyntaxError should be produced due to the
labelled function declaration itself.
negative: SyntaxError
---*/
if (true) ; else label1: label2: function test262() {}

View File

@ -0,0 +1,22 @@
// Copyright (C) 2016 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-with-statement-static-semantics-early-errors
es6id: 13.11.1
description:
A labelled function declaration is never permitted in the Statement position
info: |
WithStatementa: with ( Expression ) Statement
[...]
- It is a Syntax Error if IsLabelledFunction(Statement) is true.
NOTE It is only necessary to apply the second rule if the extension specified
in B.3.2 is implemented.
In the absence of Annex B.3.2, a SyntaxError should be produced due to the
labelled function declaration itself.
negative: SyntaxError
---*/
with ({}) label1: label2: function test262() {}