ladybird/Userland/Libraries/LibJS/Tests/comments-basic.js
davidot a1308bfc60 LibJS: Make new lines in block comments reset line has token
Before this a closing html comment would not be treated as a comment if
directly following a block comment which was not the first token of its
first line.
2021-12-21 14:04:23 +01:00

53 lines
1,005 B
JavaScript

test("regular comments", () => {
const source = `
var i = 0;
// i++;
/* i++; */
/*
i++;
*/
/**/ i++;
i;`;
expect(source).toEvalTo(1);
});
test("html comments", () => {
const source = `
var i = 0;
var j = 0;
<!-- i++; --> i++;
<!-- i++;
i++;
--> i++;
/**/ --> i++;
j --> i++;
i;`;
expect(source).toEvalTo(2);
});
test("html comments directly after block comment", () => {
expect("0 /* */-->i").not.toEval();
expect(`0 /*
*/-->i`).toEval();
expect(`0 /*
*/-->i
'a'`).toEvalTo("a");
});
test("unterminated multi-line comment", () => {
expect("/*").not.toEval();
expect("/**").not.toEval();
expect("/*/").not.toEval();
expect("/* foo").not.toEval();
expect("foo /*").not.toEval();
});
test("hashbang comments", () => {
expect("#!").toEvalTo(undefined);
expect("#!/bin/js").toEvalTo(undefined);
expect("#!\n1").toEvalTo(1);
expect(" #!").not.toEval();
expect("\n#!").not.toEval();
expect("#!\n#!").not.toEval();
});