From 937d0b1df1521e7ac4e1d22d521548fe5f2ba9ed Mon Sep 17 00:00:00 2001 From: Mike Pennisi Date: Sun, 31 Mar 2019 20:14:09 -0400 Subject: [PATCH 1/3] Remove redundant test The production under test is also used in the following file: test/language/literals/numeric/legacy-octal-integer-strict.js That test expresses the syntax with literal source text, making it useful for parsers. Remove this test in favor of the other. --- test/language/literals/numeric/7.8.3-2-s.js | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 test/language/literals/numeric/7.8.3-2-s.js diff --git a/test/language/literals/numeric/7.8.3-2-s.js b/test/language/literals/numeric/7.8.3-2-s.js deleted file mode 100644 index ec7db555e8..0000000000 --- a/test/language/literals/numeric/7.8.3-2-s.js +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (c) 2012 Ecma International. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -es5id: 7.8.3-2-s -description: Strict Mode - octal extension (00) is forbidden in strict mode -flags: [onlyStrict] ----*/ - -var err = null; - -try { - eval("var _7_8_3_2 = 00;"); -} catch (e) { - err = e; -} - -assert(err instanceof SyntaxError); -assert.sameValue(typeof _7_8_3_2, "undefined"); From e0120fcbd601d091760955bdaa11c4bb91a87809 Mon Sep 17 00:00:00 2001 From: Mike Pennisi Date: Sun, 31 Mar 2019 20:19:49 -0400 Subject: [PATCH 2/3] Refactor literal tests for parsers The tests for the parsing of literal values 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. --- ...8.3-6-s.js => legacy-octal-integery-000-strict} | 14 +++++--------- ...8.3-7-s.js => legacy-octal-integery-005-strict} | 14 +++++--------- ....8.3-3-s.js => legacy-octal-integery-01-strict} | 14 +++++--------- ...8.3-1-s.js => legacy-octal-integery-010-strict} | 14 +++++--------- ....8.3-4-s.js => legacy-octal-integery-06-strict} | 14 +++++--------- ....8.3-5-s.js => legacy-octal-integery-07-strict} | 14 +++++--------- 6 files changed, 30 insertions(+), 54 deletions(-) rename test/language/literals/numeric/{7.8.3-6-s.js => legacy-octal-integery-000-strict} (61%) rename test/language/literals/numeric/{7.8.3-7-s.js => legacy-octal-integery-005-strict} (61%) rename test/language/literals/numeric/{7.8.3-3-s.js => legacy-octal-integery-01-strict} (61%) rename test/language/literals/numeric/{7.8.3-1-s.js => legacy-octal-integery-010-strict} (61%) rename test/language/literals/numeric/{7.8.3-4-s.js => legacy-octal-integery-06-strict} (61%) rename test/language/literals/numeric/{7.8.3-5-s.js => legacy-octal-integery-07-strict} (61%) diff --git a/test/language/literals/numeric/7.8.3-6-s.js b/test/language/literals/numeric/legacy-octal-integery-000-strict similarity index 61% rename from test/language/literals/numeric/7.8.3-6-s.js rename to test/language/literals/numeric/legacy-octal-integery-000-strict index d71528b639..a62ef52b27 100644 --- a/test/language/literals/numeric/7.8.3-6-s.js +++ b/test/language/literals/numeric/legacy-octal-integery-000-strict @@ -4,16 +4,12 @@ /*--- es5id: 7.8.3-6-s description: Strict Mode - octal extension (000) is forbidden in strict mode +negative: + phase: parse + type: SyntaxError flags: [onlyStrict] ---*/ -var err = null; +$DONOTEVALUATE(); -try { - eval("var _7_8_3_6 = 000;"); -} catch (e) { - err = e; -} - -assert(err instanceof SyntaxError); -assert.sameValue(typeof _7_8_3_6, "undefined"); +000; diff --git a/test/language/literals/numeric/7.8.3-7-s.js b/test/language/literals/numeric/legacy-octal-integery-005-strict similarity index 61% rename from test/language/literals/numeric/7.8.3-7-s.js rename to test/language/literals/numeric/legacy-octal-integery-005-strict index 0f755cdb1d..f32c082333 100644 --- a/test/language/literals/numeric/7.8.3-7-s.js +++ b/test/language/literals/numeric/legacy-octal-integery-005-strict @@ -4,16 +4,12 @@ /*--- es5id: 7.8.3-7-s description: Strict Mode - octal extension (005) is forbidden in strict mode +negative: + phase: parse + type: SyntaxError flags: [onlyStrict] ---*/ -var err = null; +$DONOTEVALUATE(); -try { - eval("var _7_8_3_7 = 005;"); -} catch (e) { - err = e; -} - -assert(err instanceof SyntaxError); -assert.sameValue(typeof _7_8_3_7, "undefined"); +005; diff --git a/test/language/literals/numeric/7.8.3-3-s.js b/test/language/literals/numeric/legacy-octal-integery-01-strict similarity index 61% rename from test/language/literals/numeric/7.8.3-3-s.js rename to test/language/literals/numeric/legacy-octal-integery-01-strict index 18b4da88da..fc89b50f41 100644 --- a/test/language/literals/numeric/7.8.3-3-s.js +++ b/test/language/literals/numeric/legacy-octal-integery-01-strict @@ -4,16 +4,12 @@ /*--- es5id: 7.8.3-3-s description: Strict Mode - octal extension (01) is forbidden in strict mode +negative: + phase: parse + type: SyntaxError flags: [onlyStrict] ---*/ -var err = null; +$DONOTEVALUATE(); -try { - eval("var _7_8_3_3 = 01;"); -} catch (e) { - err = e; -} - -assert(err instanceof SyntaxError); -assert.sameValue(typeof _7_8_3_3, "undefined"); +01; diff --git a/test/language/literals/numeric/7.8.3-1-s.js b/test/language/literals/numeric/legacy-octal-integery-010-strict similarity index 61% rename from test/language/literals/numeric/7.8.3-1-s.js rename to test/language/literals/numeric/legacy-octal-integery-010-strict index 87480a5df6..7bb23e259d 100644 --- a/test/language/literals/numeric/7.8.3-1-s.js +++ b/test/language/literals/numeric/legacy-octal-integery-010-strict @@ -4,16 +4,12 @@ /*--- es5id: 7.8.3-1-s description: Strict Mode - octal extension (010) is forbidden in strict mode +negative: + phase: parse + type: SyntaxError flags: [onlyStrict] ---*/ -var err = null; +$DONOTEVALUATE(); -try { - eval("var _7_8_3_1 = 010;"); -} catch (e) { - err = e; -} - -assert(err instanceof SyntaxError); -assert.sameValue(typeof _7_8_3_1, "undefined"); +010; diff --git a/test/language/literals/numeric/7.8.3-4-s.js b/test/language/literals/numeric/legacy-octal-integery-06-strict similarity index 61% rename from test/language/literals/numeric/7.8.3-4-s.js rename to test/language/literals/numeric/legacy-octal-integery-06-strict index 79fe5aa2e8..ac6eab9cf7 100644 --- a/test/language/literals/numeric/7.8.3-4-s.js +++ b/test/language/literals/numeric/legacy-octal-integery-06-strict @@ -4,16 +4,12 @@ /*--- es5id: 7.8.3-4-s description: Strict Mode - octal extension (06) is forbidden in strict mode +negative: + phase: parse + type: SyntaxError flags: [onlyStrict] ---*/ -var err = null; +$DONOTEVALUATE(); -try { - eval("var _7_8_3_4 = 06;"); -} catch (e) { - err = e; -} - -assert(err instanceof SyntaxError); -assert.sameValue(typeof _7_8_3_4, "undefined"); +06; diff --git a/test/language/literals/numeric/7.8.3-5-s.js b/test/language/literals/numeric/legacy-octal-integery-07-strict similarity index 61% rename from test/language/literals/numeric/7.8.3-5-s.js rename to test/language/literals/numeric/legacy-octal-integery-07-strict index 2361233a7a..ac5c6bd3fe 100644 --- a/test/language/literals/numeric/7.8.3-5-s.js +++ b/test/language/literals/numeric/legacy-octal-integery-07-strict @@ -4,16 +4,12 @@ /*--- es5id: 7.8.3-5-s description: Strict Mode - octal extension (07) is forbidden in strict mode +negative: + phase: parse + type: SyntaxError flags: [onlyStrict] ---*/ -var err = null; +$DONOTEVALUATE(); -try { - eval("var _7_8_3_5 = 07;"); -} catch (e) { - err = e; -} - -assert(err instanceof SyntaxError); -assert.sameValue(typeof _7_8_3_5, "undefined"); +07; From c9249a8f9222191412961e40486444172615dd67 Mon Sep 17 00:00:00 2001 From: Mike Pennisi Date: Sun, 31 Mar 2019 20:26:12 -0400 Subject: [PATCH 3/3] Remove indirect tests These tests are ostensibly designed to validate parsing of Regular Expression literals--specifically those which use Unicode escape sequences to declare flags. However, because the syntax is expressed in terms of a string literal and then evaluated dynamically, the escape sequences in use have no bearing on the program code which is ultimately parsed. These tests therefore do not extend coverage in any meaningful way and may be removed. --- test/language/literals/regexp/S7.8.5_A3.1_T7.js | 15 --------------- test/language/literals/regexp/S7.8.5_A3.1_T8.js | 15 --------------- test/language/literals/regexp/S7.8.5_A3.1_T9.js | 15 --------------- 3 files changed, 45 deletions(-) delete mode 100644 test/language/literals/regexp/S7.8.5_A3.1_T7.js delete mode 100644 test/language/literals/regexp/S7.8.5_A3.1_T8.js delete mode 100644 test/language/literals/regexp/S7.8.5_A3.1_T9.js diff --git a/test/language/literals/regexp/S7.8.5_A3.1_T7.js b/test/language/literals/regexp/S7.8.5_A3.1_T7.js deleted file mode 100644 index 32ea84b120..0000000000 --- a/test/language/literals/regexp/S7.8.5_A3.1_T7.js +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2009 the Sputnik authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -info: "RegularExpressionFlags :: IdentifierPart" -es5id: 7.8.5_A3.1_T7 -description: "IdentifierPart :: \\u0067 (g)" ----*/ - -//CHECK#1 -var regexp; -eval("regexp = /(?:)/\u0067"); -if (regexp.global !== true) { - $ERROR('#1: var regexp = /(?:)/\\u0067; regexp.global === true. Actual: ' + (regexp.global)); -} diff --git a/test/language/literals/regexp/S7.8.5_A3.1_T8.js b/test/language/literals/regexp/S7.8.5_A3.1_T8.js deleted file mode 100644 index 1a44b782e1..0000000000 --- a/test/language/literals/regexp/S7.8.5_A3.1_T8.js +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2009 the Sputnik authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -info: "RegularExpressionFlags :: IdentifierPart" -es5id: 7.8.5_A3.1_T8 -description: "IdentifierPart :: \\u0069 (i)" ----*/ - -//CHECK#1 -var regexp; -eval("regexp = /(?:)/\u0069"); -if (regexp.ignoreCase !== true) { - $ERROR('#1: var regexp = /(?:)/\\u0069; regexp.ignoreCase === true. Actual: ' + (regexp.ignoreCase)); -} diff --git a/test/language/literals/regexp/S7.8.5_A3.1_T9.js b/test/language/literals/regexp/S7.8.5_A3.1_T9.js deleted file mode 100644 index 1032903d56..0000000000 --- a/test/language/literals/regexp/S7.8.5_A3.1_T9.js +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2009 the Sputnik authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -info: "RegularExpressionFlags :: IdentifierPart" -es5id: 7.8.5_A3.1_T9 -description: "IdentifierPart :: \\u006D (m)" ----*/ - -//CHECK#1 -var regexp; -eval("regexp = /(?:)/\u006D"); -if (regexp.multiline !== true) { - $ERROR('#1: var regexp = /(?:)/\\u006D; regexp.multiline === true. Actual: ' + (regexp.multiline)); -}