From 3468dad291251d4759ab6270d4fb8b75befa8d93 Mon Sep 17 00:00:00 2001 From: Mike Pennisi <mike@mikepennisi.com> Date: Tue, 1 Jan 2019 12:03:27 -0500 Subject: [PATCH] Improve coverage for line terminators Previous commits restructured the tests for line terminators and made coverage gaps more apparent. Introduce new files to improve coverage. --- .../line-terminators/comment-multi-ps.js | 28 +++++++++++++++++++ .../line-terminators/invalid-regexp-cr.js | 17 +++++++++++ .../line-terminators/invalid-regexp-lf.js | 18 ++++++++++++ .../line-terminators/invalid-string-ls.js | 16 +++++++++++ .../line-terminators/invalid-string-ps.js | 16 +++++++++++ 5 files changed, 95 insertions(+) create mode 100644 test/language/line-terminators/comment-multi-ps.js create mode 100644 test/language/line-terminators/invalid-regexp-cr.js create mode 100644 test/language/line-terminators/invalid-regexp-lf.js create mode 100644 test/language/line-terminators/invalid-string-ls.js create mode 100644 test/language/line-terminators/invalid-string-ps.js diff --git a/test/language/line-terminators/comment-multi-ps.js b/test/language/line-terminators/comment-multi-ps.js new file mode 100644 index 0000000000..3f984ec6f4 --- /dev/null +++ b/test/language/line-terminators/comment-multi-ps.js @@ -0,0 +1,28 @@ +// Copyright 2019 Mike Pennisi. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Multi line comment can contain PARAGRAPH SEPARATOR (U+2029) +esid: sec-line-terminators +es5id: 7.3_A5.1_T2 +description: Insert real PARAGRAPH SEPARATOR into multi line comment +negative: + phase: runtime + type: Test262Error +---*/ + +// Because this test concerns the interpretation of non-executable character +// sequences within ECMAScript source code, special care must be taken to +// ensure that executable code is evaluated as expected. +// +// Express the intended behavior by intentionally throwing an error; this +// guarantees that test runners will only consider the test "passing" if +// executable sequences are correctly interpreted as such. + +var x = 0; + +/*
x = 1;
*/ + +if (x === 0) { + throw new Test262Error(); +} diff --git a/test/language/line-terminators/invalid-regexp-cr.js b/test/language/line-terminators/invalid-regexp-cr.js new file mode 100644 index 0000000000..449ee384cc --- /dev/null +++ b/test/language/line-terminators/invalid-regexp-cr.js @@ -0,0 +1,17 @@ +// Copyright 2019 Mike Pennisi. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-line-terminators +es5id: 7.3-7 +description: > + 7.3 - ES5 recognizes the character <CR> (\u000D) as terminating + regular expression literals +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +/ / diff --git a/test/language/line-terminators/invalid-regexp-lf.js b/test/language/line-terminators/invalid-regexp-lf.js new file mode 100644 index 0000000000..82fc50eb2d --- /dev/null +++ b/test/language/line-terminators/invalid-regexp-lf.js @@ -0,0 +1,18 @@ +// Copyright 2019 Mike Pennisi. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-line-terminators +es5id: 7.3-7 +description: > + 7.3 - ES5 recognizes the character <LF> (\u000A) as terminating + regular expression literals +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +/ +/ diff --git a/test/language/line-terminators/invalid-string-ls.js b/test/language/line-terminators/invalid-string-ls.js new file mode 100644 index 0000000000..07e0a7682d --- /dev/null +++ b/test/language/line-terminators/invalid-string-ls.js @@ -0,0 +1,16 @@ +// Copyright 2019 Mike Pennisi. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: LINE SEPARATOR (U+2028) within strings is not allowed +es5id: 7.3_A2.2_T1 +esid: sec-line-terminators +description: Insert LINE SEPARATOR (\u2028) into string +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +'
' diff --git a/test/language/line-terminators/invalid-string-ps.js b/test/language/line-terminators/invalid-string-ps.js new file mode 100644 index 0000000000..d2e3dec8e5 --- /dev/null +++ b/test/language/line-terminators/invalid-string-ps.js @@ -0,0 +1,16 @@ +// Copyright 2019 Mike Pennisi. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: PARAGRAPH SEPARATOR (U+2029) within strings is not allowed +es5id: 7.3_A2.2_T1 +esid: sec-line-terminators +description: Insert PARAGRAPH SEPARATOR (\u2029) into string +negative: + phase: parse + type: SyntaxError +---*/ + +$DONOTEVALUATE(); + +'
' -- GitLab