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)
67 lines
1.5 KiB
JavaScript
67 lines
1.5 KiB
JavaScript
// This test checks that malformed regular expressions compiled at runtime throw SyntaxErrors
|
|
|
|
function testThrowsSyntaxtError(f)
|
|
{
|
|
try {
|
|
f();
|
|
} catch (e) {
|
|
if (!e instanceof SyntaxError)
|
|
throw "Expected SynteaxError, but got: " + e;
|
|
}
|
|
}
|
|
|
|
function fromExecWithBadUnicodeEscape()
|
|
{
|
|
let baseRE = /\u{123x}/;
|
|
let line = "abc";
|
|
|
|
(new RegExp(baseRE, "u")).exec(line);
|
|
}
|
|
|
|
function fromTestWithBadUnicodeProperty()
|
|
{
|
|
let baseRE = /a|\p{Blah}/;
|
|
let line = "abc";
|
|
|
|
(new RegExp(baseRE, "u")).test(line);
|
|
}
|
|
|
|
function fromSplitWithBadUnicodeIdentity()
|
|
{
|
|
let baseRE = /,|:|\-/;
|
|
let line = "abc:def-ghi";
|
|
|
|
let fields = line.split(new RegExp(baseRE, "u"));
|
|
}
|
|
|
|
function fromMatchWithBadUnicodeBackReference()
|
|
{
|
|
let baseRE = /\123/;
|
|
let line = "xyz";
|
|
|
|
let fields = line.match(new RegExp(baseRE, "u"));
|
|
}
|
|
|
|
function fromReplaceWithBadUnicodeEscape()
|
|
{
|
|
let baseRE = /\%/;
|
|
let line = "xyz";
|
|
|
|
let fields = line.replace(new RegExp(baseRE, "u"), "x");
|
|
}
|
|
|
|
function fromSearchWithBadUnicodeEscape()
|
|
{
|
|
let baseRE = /\=/;
|
|
let line = "xyz";
|
|
|
|
let fields = line.search(new RegExp(baseRE, "u"));
|
|
}
|
|
|
|
testThrowsSyntaxtError(fromExecWithBadUnicodeEscape);
|
|
testThrowsSyntaxtError(fromTestWithBadUnicodeProperty);
|
|
testThrowsSyntaxtError(fromSplitWithBadUnicodeIdentity);
|
|
testThrowsSyntaxtError(fromMatchWithBadUnicodeBackReference);
|
|
testThrowsSyntaxtError(fromReplaceWithBadUnicodeEscape);
|
|
testThrowsSyntaxtError(fromSearchWithBadUnicodeEscape);
|