From e515abfa0ee42611c30b32f9e5155181689f12a2 Mon Sep 17 00:00:00 2001 From: Mike Pennisi <mike@mikepennisi.com> Date: Tue, 1 Jan 2019 11:42:20 -0500 Subject: [PATCH] Refactor LT tests for parsers: multi-line comment The tests for the parsing of line terminators were expressed using eval. This made the tests more complex than necessary and also prevented the tests from providing value to ECMAScript parsers. Remove the use of eval and instead express the expectations with literal source text. Rename the files to make each test's purpose more clear. --- .../language/line-terminators/S7.3_A5.1_T2.js | 20 ------------- test/language/line-terminators/S7.3_A5.3.js | 18 ----------- .../line-terminators/comment-multi-lf.js | 30 +++++++++++++++++++ .../line-terminators/comment-multi-ls.js | 28 +++++++++++++++++ 4 files changed, 58 insertions(+), 38 deletions(-) delete mode 100644 test/language/line-terminators/S7.3_A5.1_T2.js delete mode 100644 test/language/line-terminators/S7.3_A5.3.js create mode 100644 test/language/line-terminators/comment-multi-lf.js create mode 100644 test/language/line-terminators/comment-multi-ls.js diff --git a/test/language/line-terminators/S7.3_A5.1_T2.js b/test/language/line-terminators/S7.3_A5.1_T2.js deleted file mode 100644 index 168faa99a3..0000000000 --- a/test/language/line-terminators/S7.3_A5.1_T2.js +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2009 the Sputnik authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -info: Multi line comment can contain LINE FEED (U+000A) -es5id: 7.3_A5.1_T2 -description: Insert real LINE FEED into multi line comment ----*/ - -/*CHECK#1*/ -var x = 0; -/* -multi -line -comment -x = 1; -*/ -if (x !== 0) { - $ERROR('#1: var x = 0; /*\\nmulti\\nline\\ncomment\\nx = 1;\\n*/ x === 0. Actual: ' + (x)); -} diff --git a/test/language/line-terminators/S7.3_A5.3.js b/test/language/line-terminators/S7.3_A5.3.js deleted file mode 100644 index 48abd6b12c..0000000000 --- a/test/language/line-terminators/S7.3_A5.3.js +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2009 the Sputnik authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -info: Multi line comment can contain LINE SEPARATOR (U+2028) -es5id: 7.3_A5.3 -description: Insert LINE SEPARATOR (U+2028) into multi line comment ----*/ - -// CHECK#1 -eval("/*\u2028 multi line \u2028 comment \u2028*/"); - -//CHECK#2 -var x = 0; -eval("/*\u2028 multi line \u2028 comment \u2028 x = 1;*/"); -if (x !== 0) { - $ERROR('#1: var x = 0; eval("/*\\u2028 multi line \\u2028 comment \\u2028 x = 1;*/"); x === 0. Actual: ' + (x)); -} diff --git a/test/language/line-terminators/comment-multi-lf.js b/test/language/line-terminators/comment-multi-lf.js new file mode 100644 index 0000000000..99a36a9aac --- /dev/null +++ b/test/language/line-terminators/comment-multi-lf.js @@ -0,0 +1,30 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Multi line comment can contain LINE FEED (U+000A) +esid: sec-line-terminators +es5id: 7.3_A5.1_T2 +description: Insert real LINE FEED 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/comment-multi-ls.js b/test/language/line-terminators/comment-multi-ls.js new file mode 100644 index 0000000000..64d9873a07 --- /dev/null +++ b/test/language/line-terminators/comment-multi-ls.js @@ -0,0 +1,28 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: Multi line comment can contain LINE SEPARATOR (U+2028) +esid: sec-line-terminators +es5id: 7.3_A5.3 +description: Insert LINE SEPARATOR (U+2028) 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(); +} -- GitLab