mirror of https://github.com/tc39/test262.git
52 lines
1.9 KiB
JavaScript
52 lines
1.9 KiB
JavaScript
// 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();
|
||
}
|