diff --git a/test/language/directive-prologue/func-decl-inside-func-decl-parse.js b/test/language/directive-prologue/func-decl-inside-func-decl-parse.js new file mode 100644 index 0000000000..3313dd1ea5 --- /dev/null +++ b/test/language/directive-prologue/func-decl-inside-func-decl-parse.js @@ -0,0 +1,21 @@ +// Copyright (c) 2018 Mike Pennisi. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es5id: 10.1.1-15-s +description: > + Strict Mode - Function code that is part of a FunctionDeclaration + is strict function code if FunctionDeclaration is contained in use + strict +negative: + phase: early + type: SyntaxError +flags: [noStrict] +---*/ + +function testcase() { + "use strict"; + function fun() { + var static; + } +} diff --git a/test/language/directive-prologue/func-decl-no-semi-parse.js b/test/language/directive-prologue/func-decl-no-semi-parse.js new file mode 100644 index 0000000000..608c9fa6b0 --- /dev/null +++ b/test/language/directive-prologue/func-decl-no-semi-parse.js @@ -0,0 +1,18 @@ +// Copyright (c) 2018 Mike Pennisi. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es5id: 10.1.1-2-s +description: > + Strict Mode - Use Strict Directive Prologue is ''use strict'' + which lost the last character ';' +negative: + phase: early + type: SyntaxError +flags: [noStrict] +---*/ + +function fun() { + "use strict" + var static; +} diff --git a/test/language/directive-prologue/func-decl-parse.js b/test/language/directive-prologue/func-decl-parse.js new file mode 100644 index 0000000000..dd3587f36b --- /dev/null +++ b/test/language/directive-prologue/func-decl-parse.js @@ -0,0 +1,18 @@ +// Copyright (c) 2018 Mike Pennisi. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es5id: 10.1.1-19-s +description: > + Strict Mode - Function code of a FunctionDeclaration contains Use + Strict Directive which appears at the start of the block +negative: + phase: early + type: SyntaxError +flags: [noStrict] +---*/ + +function fun() { + "use strict"; + var static; +} diff --git a/test/language/directive-prologue/func-expr-inside-func-decl-parse.js b/test/language/directive-prologue/func-expr-inside-func-decl-parse.js new file mode 100644 index 0000000000..0aadbb1c37 --- /dev/null +++ b/test/language/directive-prologue/func-expr-inside-func-decl-parse.js @@ -0,0 +1,19 @@ +// Copyright (c) 2018 Mike Pennisi. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es5id: 10.1.1-16-s +description: > + Strict Mode - Function code that is part of a FunctionExpression + is strict function code if FunctionExpression is contained in use + strict +negative: + phase: early + type: SyntaxError +flags: [noStrict] +---*/ + +function testcase() { + "use strict"; + var static; +} diff --git a/test/language/directive-prologue/func-expr-no-semi-parse.js b/test/language/directive-prologue/func-expr-no-semi-parse.js new file mode 100644 index 0000000000..7dfe1d7aa9 --- /dev/null +++ b/test/language/directive-prologue/func-expr-no-semi-parse.js @@ -0,0 +1,19 @@ +// Copyright (c) 2018 Mike Pennisi. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es5id: 10.1.1-2-s +description: > + Strict Mode - Use Strict Directive Prologue is ''use strict'' + which lost the last character ';' +negative: + phase: early + type: SyntaxError +flags: [noStrict] +---*/ + +(function() { + "use strict" + + var static; +}); diff --git a/test/language/directive-prologue/func-expr-parse.js b/test/language/directive-prologue/func-expr-parse.js new file mode 100644 index 0000000000..92d59a411a --- /dev/null +++ b/test/language/directive-prologue/func-expr-parse.js @@ -0,0 +1,19 @@ +// Copyright (c) 2018 Mike Pennisi. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es5id: 10.1.1-22-s +description: > + Strict Mode - Function code of a FunctionExpression contains Use + Strict Directive which appears at the start of the block +negative: + phase: early + type: SyntaxError +flags: [noStrict] +---*/ + +(function() { + "use strict"; + + var static; +});