This commit updates Meta/import-webkit-regexp-tests.py and re-imports WebKit tests. Removed pcre-test-1 from SKIP_TESTS because we pass it. Removed everything except slow.js from XFAIL_TESTS. We pass everything except slow.js, which still hits the step limit. Moved overflow.js to SKIP_FILES because it tests WebKit's behaviour of rejecting regexps with huge quantifiers. Ladybird, Chrome, and Firefox just clamp them.
58 lines
1.6 KiB
JavaScript
58 lines
1.6 KiB
JavaScript
test("constructor", () => {
|
|
// WebKit assertion compatibility shim for Ladybird's test-js harness
|
|
|
|
function description(msg) {
|
|
// No-op, just used for test documentation in WebKit.
|
|
}
|
|
|
|
function debug(msg) {
|
|
// No-op, just used for debugging in WebKit tests.
|
|
}
|
|
|
|
function shouldBe(actual_code, expected_code) {
|
|
let actual = eval(actual_code);
|
|
let expected = eval(expected_code);
|
|
if (typeof actual === "string" && typeof expected === "string") {
|
|
expect(actual).toBe(expected);
|
|
} else if (Array.isArray(actual) && Array.isArray(expected)) {
|
|
expect(actual).toEqual(expected);
|
|
} else if (actual !== null && typeof actual === "object" && expected !== null && typeof expected === "object") {
|
|
expect(actual).toEqual(expected);
|
|
} else {
|
|
expect(actual).toBe(expected);
|
|
}
|
|
}
|
|
|
|
function shouldBeTrue(code) {
|
|
expect(eval(code)).toBeTrue();
|
|
}
|
|
|
|
function shouldBeFalse(code) {
|
|
expect(eval(code)).toBeFalse();
|
|
}
|
|
|
|
function shouldBeNull(code) {
|
|
expect(eval(code)).toBeNull();
|
|
}
|
|
|
|
function shouldBeUndefined(code) {
|
|
expect(eval(code)).toBeUndefined();
|
|
}
|
|
|
|
function shouldThrow(code, expected_error) {
|
|
expect(() => eval(code)).toThrow();
|
|
}
|
|
|
|
function shouldNotThrow(code) {
|
|
eval(code);
|
|
}
|
|
|
|
description("This test checks use of the regexp constructor.");
|
|
|
|
var re = /abc/;
|
|
|
|
shouldBeTrue("re === RegExp(re)");
|
|
shouldBeTrue("re !== new RegExp(re)");
|
|
shouldBeTrue("re !== RegExp(re,'i')");
|
|
shouldBeTrue("re !== new RegExp(re,'i')");
|
|
});
|