mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 20:47:45 +00:00
LibJS: Implement RegExp constructor according to the spec
This allows passing an existing RegExp object (or an object that is sufficiently like a RegExp object) as the "pattern" argument of the RegExp constructor.
This commit is contained in:
parent
2686c5f503
commit
3892b6e6ec
2 changed files with 80 additions and 2 deletions
|
@ -29,3 +29,26 @@ test("basic functionality", () => {
|
|||
expect(RegExp("foo", "g").toString()).toBe("/foo/g");
|
||||
expect(RegExp(undefined, "g").toString()).toBe("/(?:)/g");
|
||||
});
|
||||
|
||||
test("regexp object as pattern parameter", () => {
|
||||
expect(RegExp(/foo/).toString()).toBe("/foo/");
|
||||
expect(RegExp(/foo/g).toString()).toBe("/foo/g");
|
||||
expect(RegExp(/foo/g, "").toString()).toBe("/foo/");
|
||||
expect(RegExp(/foo/g, "y").toString()).toBe("/foo/y");
|
||||
|
||||
var regex_like_object_without_flags = {
|
||||
source: "foo",
|
||||
[Symbol.match]: function () {},
|
||||
};
|
||||
expect(RegExp(regex_like_object_without_flags).toString()).toBe("/foo/");
|
||||
expect(RegExp(regex_like_object_without_flags, "y").toString()).toBe("/foo/y");
|
||||
|
||||
var regex_like_object_with_flags = {
|
||||
source: "foo",
|
||||
flags: "g",
|
||||
[Symbol.match]: function () {},
|
||||
};
|
||||
expect(RegExp(regex_like_object_with_flags).toString()).toBe("/foo/g");
|
||||
expect(RegExp(regex_like_object_with_flags, "").toString()).toBe("/foo/");
|
||||
expect(RegExp(regex_like_object_with_flags, "y").toString()).toBe("/foo/y");
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue