Commit Graph

33 Commits

Author SHA1 Message Date
Rick Waldron 323233be54
chore: migrate $ERROR -> throw new Test262Error in test/language/l* (#3104)
Excludes test/language/line-terminators/*
2021-07-28 13:45:44 -07:00
Mike Pennisi d454b8389b Move some AnnexB tests per proposed spec change
Additionally, update test metadata and introduce two new tests to
complete coverage.

Reference: "Normative: Make B.1.{1,2} normative"
https://github.com/tc39/ecma262/pull/1867
2021-05-21 13:06:41 -04:00
Rick Waldron 1c33fdb0ca Test cases for invalid escape sequences preceding "use strict". Fixes gh-2893 2020-11-04 13:46:04 -05:00
Ross Kirsling f24b9004b3 Add tests for \9 in template/strict strings. 2020-08-03 21:33:44 -04:00
Ross Kirsling fb05c9a4df
Add tests for \8 in template/strict strings. (#2654) 2020-07-20 13:25:59 -07:00
Alexey Shvayka d279980b96 Add single quote string literal test 2020-03-30 19:30:49 -04:00
Alexey Shvayka 4742461e26 Add double quote string literal test 2020-03-30 19:30:49 -04:00
Leo Balter dec4e5df74
Merge pull request #1801 from mathiasbynens/issue-1634
Move `throw "…"` for negative parsing errors to a helper function
2018-11-13 17:23:09 -05:00
Rick Waldron f1e362d558 Fix typos; generate tests (#1907) 2018-10-26 17:11:05 -04:00
Mathias Bynens b9daa57dcb Rename to $DONOTEVALUATE per @leobalter's suggestion 2018-10-23 13:51:17 +02:00
Mathias Bynens e3feffb01e Move `throw "…"` for negative parsing errors to a helper function
Closes #1634.
2018-10-23 13:51:16 +02:00
Mike Pennisi ccaa9571ea Refactor string literal test for parsers
Thsi test for the parsing of string literals was expressed using `eval`.
This made the test more complex than necessary and also prevented the
test from providing value to ECMAScript parsers.

Remove the use of `eval` and instead express the expectation with
literal source text.
2018-07-13 16:17:19 -04:00
Mike Pennisi 4f1e628107 Remove erroneous test
This test is technically valid because it does trigger a SyntaxError in
conforming runtimes. However, it was authored and documented to test
LegacyOctalEscapeSequence, but due to an apparent typo, it actually
demonstrates an unrelated parsing error.

Because 'legacy-octal-escape-sequence-stricts.js' sufficiently tests the
restriction on LegacyOctalEscapeSequence, remove this test rather than
correct it.
2018-07-13 16:17:19 -04:00
Mike Pennisi 4e1a860abd Remove redundant test
This test for string literals asserts the restriction on
LegacyOctalEscapeSequence in strict mode. It is not sufficiently
distinct from the test 'legacy-octal-escape-sequence-stricts.js' to
warrant inclusion in the test suite. Because that test includes much
more thorough documentation, it should be preferred.
2018-07-13 16:17:19 -04:00
Mike Pennisi 2facd45c76 Remove redundant and indirect tests
A number of tests for string literals assert the restriction on
LegacyOctalEscapeSequence in strict mode code and differ only in the
escape sequence under test. Although each is valid, none of the escape
sequences are sufficiently distinct from the test
'legacy-octal-escape-sequence-stricts.js' to warrant their inclusion in
the test suite. Because that test's use of literal code makes it
consumable by parsers and because that test includes much more thorough
documentation, it should be preferred.

Summary of LegacyOctalEscapeSequences under test in the removed files:

    test/language/literals/string/7.8.4-10-s.js: eval('var x = " \\10 ";');
    test/language/literals/string/7.8.4-11-s.js: eval('var x = "\\16";');
    test/language/literals/string/7.8.4-12-s.js: eval('var x = "\\17";');
    test/language/literals/string/7.8.4-13-s.js: eval('var x = "\\30";');
    test/language/literals/string/7.8.4-14-s.js: eval('var x = "\\31";');
    test/language/literals/string/7.8.4-15-s.js: eval('var x = "\\37";');
    test/language/literals/string/7.8.4-16-s.js: eval('var x = "\\400";');
    test/language/literals/string/7.8.4-17-s.js: eval('var x = "\\411";');
    test/language/literals/string/7.8.4-18-s.js: eval('var x = "\\43a";');
    test/language/literals/string/7.8.4-19-s.js: eval('var x = "\\463";');
    test/language/literals/string/7.8.4-2-s.js:  eval('var x = "\\1";');
    test/language/literals/string/7.8.4-20-s.js: eval('var x = "\\474";');
    test/language/literals/string/7.8.4-21-s.js: eval('var x = "\\77";');
    test/language/literals/string/7.8.4-22-s.js: eval('var x = "\\777";');
    test/language/literals/string/7.8.4-23-s.js: eval('var x = "\\000";');
    test/language/literals/string/7.8.4-24-s.js: eval('var x = "\\001";');
    test/language/literals/string/7.8.4-25-s.js: eval('var x = "\\106";');
    test/language/literals/string/7.8.4-26-s.js: eval('var x = "\\207";');
    test/language/literals/string/7.8.4-27-s.js: eval('var x = "\\377";');
    test/language/literals/string/7.8.4-28-s.js: eval('var x = "\\376";');
    test/language/literals/string/7.8.4-29-s.js: eval('var x = "\\3760";');
    test/language/literals/string/7.8.4-3-s.js:  eval('var x = "a\\4";');
    test/language/literals/string/7.8.4-32-s.js: eval('var x = "\\1\\1";');
    test/language/literals/string/7.8.4-33-s.js: eval('var x = "\\1\\2\\7";');
    test/language/literals/string/7.8.4-4-s.js:  eval('var x = "z\\7";');
    test/language/literals/string/7.8.4-5-s.js:  eval('var x = "\\00a";');
    test/language/literals/string/7.8.4-6-s.js:  eval('var x = "\\01z";');
    test/language/literals/string/7.8.4-7-s.js:  eval('var x = "a\\03z";');
    test/language/literals/string/7.8.4-8-s.js:  eval('var x = " \\06";');
2018-07-13 16:17:19 -04:00
Richard Gibson 3758f6a97c Add tests for LineContinuation in StringLiteral 2018-05-21 12:19:48 -04:00
Richard Gibson dbc0c6b1cc Add json-superset feature 2018-05-08 14:19:44 -04:00
Richard Gibson ba124c31b2 Add tests for non-ASCII LineTerminator characters in string literals 2018-05-07 16:59:55 -04:00
Valerie 1e1d503c1b numeric literal seperators: test change in CodePoint production (#1464) 2018-02-28 13:58:22 -05:00
Rick Waldron 4afc330363 Fix: various lint fixes 2018-01-10 17:29:48 -05:00
Mike Pennisi 136110378b Rename negative test "phase" for parsing
Early errors may result from parsing the source text of a test file, but
they may also result from parsing some other source text as referenced
through the ES2015 module syntax. The latter form of early error is not
necessarily detectable by ECMAScript parsers, however. Because of this,
the label "early" is not sufficiently precise for all Test262 consumers
to correctly interpret all tests.

Update the "phase" name of "early" to "parse" for all those negative
tests that describe errors resulting from parsing of the file's source
text directly. A forthcoming commit will update the remaining tests to
use a "phase" name that is more specific to module resolution.
2018-01-05 15:17:50 -05:00
Rick Waldron 92a2621901 Frontmatter: fixup "info: >" to "info: |" 2018-01-05 12:27:59 -05:00
Leo Balter 60782de95e Tag tests for U+180E and complete coverage for RegExp matching 2017-09-25 15:27:59 -04:00
Mike Pennisi 81d00def42 Force "early error" tests to fail if evaluated
This pattern makes expectations more explicit by making test files more
literal.
2017-06-28 11:24:36 -04:00
Kevin Gibbons 1ca752482d Add test that noctal escapes are forbidden in strings in strict code 2017-06-19 12:03:47 -07:00
Mike Pennisi ade6d2e384 Remove "NotEarlyError" object
Because expectations regarding error "phase" are now expressed via test
meta-data, the test runner may now enforce this requirement on negative
tests.

Remove the "NotEarlyError" from the project source. This reduces the
amount of domain knowledge required to author tests and lessens the
potential for inconsistencies between tests.
2016-10-19 15:24:22 -04:00
Mike Pennisi 7d4b1d28ae Re-format tests for SyntaxErrors
Authored via the following command:

   $ find test -type f -print0 | \
       xargs -0 sed \
         -i 's/^\(\s*\)negative:\s*SyntaxError\s*$/\1negative:\n\1  phase: early\n\1  type: SyntaxError/g'
2016-10-19 15:24:21 -04:00
Mathias Bynens 3a5a09eba2 Ensure U+180E is no longer considered whitespace
Ref. https://hashseed.blogspot.com/2014/08/in-ecma-262-5.html
Ref. https://github.com/tc39/ecma262/pull/300#issuecomment-181376767
Ref. 9b10d2a597

Fix and add @anba’s U+180E tests
2016-07-06 10:11:32 -04:00
jugglinmike aebf3d63bc Add tests for Annex B extns to string literals (#610)
This change set does not include a test for restrictions relating to
template literals because such a test already exists in the project.

While a form of this test for string literals in strict mode code
existed previously, it is less precise and relies on unrelated
semantics. Remove the previous form and replace with a more direct
version.
2016-05-06 11:19:09 -04:00
André Bargull 1f97345668 Replace runTestCase with assert.throws [test/language/] 2015-08-11 17:43:21 +02:00
André Bargull a85f5039e0 Remove links to hg.ecmascript.org 2015-07-17 17:43:09 +02:00
Mike Pennisi 29ecced632 Update handling of directive prologues
Some tests specifically concern the application of the `use strict`
directive as it appears in JavaScript source code. These tests should
*not* be run with the `onlyStrict` flag because relying on the test
runner to enable strict mode makes the semantics of the source code
irrelevant. Update these tests to use the `noStrict` flag.

Other tests concern language semantics that are only valid in strict
mode, but the mechanism for enabling strictness is inconseqential.
Update these tests to use the `onlyStrict` flag and remove any redundant
`use strict` directive prologues contained within.

Still other tests are valid both within and outside of strict mode.
In keeping with the majority of other tests, do not specify any
restrictions on the environments in which these tests may be run.
2015-06-18 17:38:34 -04:00
Brian Terlson 2a74f0ec1b Reorganize ./test 2014-12-07 15:33:09 -08:00