mirror of
https://github.com/tc39/test262.git
synced 2025-05-03 14:30:27 +02:00
* [javascriptcore-test262-automation] changes from git@github.com:WebKit/webkit.git at sha 949e26452cfa153a7f4afe593da97e2fe9e1b706 on Tue Jul 03 2018 14:35:15 GMT-0400 (Eastern Daylight Time)
37 lines
1.1 KiB
JavaScript
37 lines
1.1 KiB
JavaScript
|
|
function shouldBeSyntaxError(s) {
|
|
let isSyntaxError = false;
|
|
try {
|
|
eval(s);
|
|
} catch(e) {
|
|
if (e instanceof SyntaxError)
|
|
isSyntaxError = true;
|
|
}
|
|
if (!isSyntaxError)
|
|
throw new Error("expected a syntax error");
|
|
}
|
|
noInline(shouldBeSyntaxError);
|
|
|
|
function shouldNotBeSyntaxError(s) {
|
|
let isSyntaxError = false;
|
|
try {
|
|
eval(s);
|
|
} catch(e) {
|
|
if (e instanceof SyntaxError)
|
|
isSyntaxError = true;
|
|
}
|
|
if (isSyntaxError)
|
|
throw new Error("did not expect a syntax error");
|
|
}
|
|
|
|
function truth() { return true; }
|
|
noInline(truth);
|
|
|
|
shouldBeSyntaxError("class A { }; class A { };");
|
|
shouldBeSyntaxError("function foo() { class A { }; class A { }; }");
|
|
shouldBeSyntaxError("function foo() { if (truth()) { class A { }; class A { }; } }");
|
|
shouldBeSyntaxError("switch(10) { case 10: class A { }; break; case 20: class A { } }");
|
|
shouldBeSyntaxError("if (truth()) class A { }");
|
|
shouldNotBeSyntaxError("switch(10) { case 10: { class A { }; break; } case 20: class A { } }");
|
|
shouldNotBeSyntaxError("class A { } if (truth()) { class A { } }");
|