diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /js/src/tests/test262/annexB/language/comments | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/tests/test262/annexB/language/comments')
7 files changed, 275 insertions, 0 deletions
diff --git a/js/src/tests/test262/annexB/language/comments/browser.js b/js/src/tests/test262/annexB/language/comments/browser.js new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/js/src/tests/test262/annexB/language/comments/browser.js diff --git a/js/src/tests/test262/annexB/language/comments/multi-line-html-close.js b/js/src/tests/test262/annexB/language/comments/multi-line-html-close.js new file mode 100644 index 0000000000..5f5046bfe7 --- /dev/null +++ b/js/src/tests/test262/annexB/language/comments/multi-line-html-close.js @@ -0,0 +1,90 @@ +// |reftest| error:Test262Error +// Copyright (C) 2016 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +esid: sec-html-like-comments +description: Optional HTMLCloseComment following MultiLineComment +info: | + Comment :: + MultiLineComment + SingleLineComment + SingleLineHTMLOpenComment + SingleLineHTMLCloseComment + SingleLineDelimitedComment + + MultiLineComment :: + /* FirstCommentLine[opt] LineTerminator MultiLineCommentChars[opt] * / HTMLCloseComment[opt] + + HTMLCloseComment :: + WhiteSpaceSequence[opt] SingleLineDelimitedCommentSequence[opt] --> SingleLineCommentChars[opt] +negative: + phase: runtime + type: Test262Error +---*/ + +var counter = 0; +/* +*/--> +counter += 1; + +/* +*/-->the comment extends to these characters +counter += 1; + +/* optional FirstCommentLine +*/-->the comment extends to these characters +counter += 1; + +/* +optional +MultiLineCommentChars */-->the comment extends to these characters +counter += 1; + +/* +*/ /* optional SingleLineDelimitedCommentSequence */-->the comment extends to these characters +counter += 1; + +/* +*/ /**/ /* second optional SingleLineDelimitedCommentSequence */-->the comment extends to these characters +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 +// 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. +if (counter === 12) { + throw new Test262Error(); +} diff --git a/js/src/tests/test262/annexB/language/comments/shell.js b/js/src/tests/test262/annexB/language/comments/shell.js new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/js/src/tests/test262/annexB/language/comments/shell.js diff --git a/js/src/tests/test262/annexB/language/comments/single-line-html-close-asi.js b/js/src/tests/test262/annexB/language/comments/single-line-html-close-asi.js new file mode 100644 index 0000000000..843527d464 --- /dev/null +++ b/js/src/tests/test262/annexB/language/comments/single-line-html-close-asi.js @@ -0,0 +1,39 @@ +// |reftest| error:Test262Error +// Copyright (C) 2016 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +esid: sec-html-like-comments +description: > + A SingleLineHTMLCloseComment is considered to be a LineTerminator for + purposes of parsing by the syntactic grammar. +info: | + Comment :: + MultiLineComment + SingleLineComment + SingleLineHTMLOpenComment + SingleLineHTMLCloseComment + SingleLineDelimitedComment + + MultiLineComment :: + /* FirstCommentLine[opt] LineTerminator MultiLineCommentChars[opt] * / HTMLCloseComment[opt] + + HTMLCloseComment :: + WhiteSpaceSequence[opt] SingleLineDelimitedCommentSequence[opt] --> SingleLineCommentChars[opt] +negative: + phase: runtime + type: Test262Error +---*/ + +var foo = [23] +-->[0]; + +// 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. +if (foo[0] === 23) { + throw new Test262Error(); +} diff --git a/js/src/tests/test262/annexB/language/comments/single-line-html-close-unicode-separators.js b/js/src/tests/test262/annexB/language/comments/single-line-html-close-unicode-separators.js new file mode 100644 index 0000000000..8136a5db25 --- /dev/null +++ b/js/src/tests/test262/annexB/language/comments/single-line-html-close-unicode-separators.js @@ -0,0 +1,52 @@ +// |reftest| error:Test262Error +// Copyright (C) 2016 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +esid: sec-html-like-comments +description: SingleLineHTMLCloseComment +info: | + Comment :: + MultiLineComment + SingleLineComment + SingleLineHTMLOpenComment + SingleLineHTMLCloseComment + SingleLineDelimitedComment + + SingleLineHTMLCloseComment :: + LineTerminatorSequenceHTMLCloseComment + + HTMLCloseComment :: + WhiteSpaceSequence[opt] SingleLineDelimitedCommentSequence[opt] --> SingleLineCommentChars[opt] +negative: + phase: runtime + type: Test262Error +---*/ + +var counter = 0; + +// DANGER WILL ROBINSON! +// +// There are UTF-8-encoded Unicode separators in the lines below. Some text +// editors (notably including, in the experience of this test's author, the +// GNOME Text Editor used to attempt to create this file) don't properly insert +// and save both these characters. (It seemed to handle copy/pasting U+2028 +// LINE SEPARATOR from GNOME Character Map just fine, but U+2029 PARAGRAPH +// SEPARATOR got mangled in the final saved file.) Be extremely careful editing +// this file to not inadvertently break this test. + +counter
-->a U+2028 LINE SEPARATOR between "counter" and "-->" means this is all a comment +counter += 1; + +counter
-->a U+2029 PARAGRAPH SEPARATOR between "counter" and "-->" means this is all a comment +counter += 1; + +// 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. +if (counter === 2) { + throw new Test262Error(); +} diff --git a/js/src/tests/test262/annexB/language/comments/single-line-html-close.js b/js/src/tests/test262/annexB/language/comments/single-line-html-close.js new file mode 100644 index 0000000000..27d8bc2a05 --- /dev/null +++ b/js/src/tests/test262/annexB/language/comments/single-line-html-close.js @@ -0,0 +1,50 @@ +// |reftest| error:Test262Error +// Copyright (C) 2016 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +esid: sec-html-like-comments +description: SingleLineHTMLCloseComment +info: | + Comment :: + MultiLineComment + SingleLineComment + SingleLineHTMLOpenComment + SingleLineHTMLCloseComment + SingleLineDelimitedComment + + SingleLineHTMLCloseComment :: + LineTerminatorSequenceHTMLCloseComment + + HTMLCloseComment :: + WhiteSpaceSequence[opt] SingleLineDelimitedCommentSequence[opt] --> SingleLineCommentChars[opt] +negative: + phase: runtime + type: Test262Error +---*/ + +var counter = 0; +--> +counter += 1; + +-->the comment extends to these characters +counter += 1; + + -->the comment extends to these characters +counter += 1; + +/* optional SingleLineDelimitedCommentSequence */-->the comment extends to these characters +counter += 1; + +/**/ /* second optional SingleLineDelimitedCommentSequence */-->the comment extends to these characters +counter += 1; + +// 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. +if (counter === 5) { + throw new Test262Error(); +} diff --git a/js/src/tests/test262/annexB/language/comments/single-line-html-open.js b/js/src/tests/test262/annexB/language/comments/single-line-html-open.js new file mode 100644 index 0000000000..c9dd1791ad --- /dev/null +++ b/js/src/tests/test262/annexB/language/comments/single-line-html-open.js @@ -0,0 +1,44 @@ +// |reftest| error:Test262Error +// Copyright (C) 2016 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +esid: sec-html-like-comments +description: SingleLineHTMLOpenComment +info: | + Comment :: + MultiLineComment + SingleLineComment + SingleLineHTMLOpenComment + SingleLineHTMLCloseComment + SingleLineDelimitedComment + + SingleLineHTMLOpenComment :: + <!--SingleLineCommentCharsopt +negative: + phase: runtime + type: Test262Error +---*/ + +var counter = 0; +<!-- +counter += 1; + +<!--the comment extends to these characters +counter += 1; + +counter += 1;<!--the comment extends to these characters +counter += 1; + +var x = 0; +x = -1 <!--x; + +// 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. +if (counter === 4 && x === -1) { + throw new Test262Error(); +} |