Extend test for HTML comments (#684)

Extend test for HTML comments

The V8 engine incorrectly requires a leading newline character for
MultiLineComments which contain the optional trailing HTMLCloseComment
[1]. Extend the current tests to fail when such an invalid restriction
is in place.
[1] https://bugs.chromium.org/p/v8/issues/detail?id=5142
This commit is contained in:
jugglinmike 2016-06-28 18:54:40 -04:00 committed by Tom Care
parent a57c1f25f1
commit 23efc2c96a
1 changed files with 31 additions and 1 deletions

View File

@ -46,6 +46,36 @@ counter += 1;
*/ /**/ /* second optional SingleLineDelimitedCommentSequence */-->the comment extends to these characters */ /**/ /* second optional SingleLineDelimitedCommentSequence */-->the comment extends to these characters
counter += 1; counter += 1;
// The V8 engine exhibited a bug where HTMLCloseComment was not recognized
// within MultiLineComment in cases where MultiLineComment was not the first
// token on the line of source text. The following tests demonstrate the same
// productions listed above with the addition of such a leading token.
0/*
*/-->
counter += 1;
0/*
*/-->the comment extends to these characters
counter += 1;
0/* optional FirstCommentLine
*/-->the comment extends to these characters
counter += 1;
0/*
optional
MultiLineCommentChars */-->the comment extends to these characters
counter += 1;
0/*
*/ /* optional SingleLineDelimitedCommentSequence */-->the comment extends to these characters
counter += 1;
0/*
*/ /**/ /* second optional SingleLineDelimitedCommentSequence */-->the comment extends to these characters
counter += 1;
// Because this test concerns the interpretation of non-executable character // Because this test concerns the interpretation of non-executable character
// sequences within ECMAScript source code, special care must be taken to // sequences within ECMAScript source code, special care must be taken to
// ensure that executable code is evaluated as expected. // ensure that executable code is evaluated as expected.
@ -53,6 +83,6 @@ counter += 1;
// Express the intended behavior by intentionally throwing an error; this // Express the intended behavior by intentionally throwing an error; this
// guarantees that test runners will only consider the test "passing" if // guarantees that test runners will only consider the test "passing" if
// executable sequences are correctly interpreted as such. // executable sequences are correctly interpreted as such.
if (counter === 6) { if (counter === 12) {
throw new Test262Error(); throw new Test262Error();
} }