2 'Test RegExp.compile method.'
5 re = new RegExp("a", "i");
6 shouldBe("re.toString()", "'/a/i'");
9 shouldBe("re.multiline", "false");
10 shouldBe("re.ignoreCase", "false");
11 shouldBe("re.global", "false");
12 shouldBe("re.test('A')", "false");
13 shouldBe("re.toString()", "'/a/'");
16 shouldBe("re.toString()", "'/b/g'");
18 re.compile(new RegExp("c"));
19 shouldBe("re.toString()", "'/c/'");
21 re.compile(new RegExp("c", "i"));
22 shouldBe("re.ignoreCase", "true");
23 shouldBe("re.test('C')", "true");
24 shouldBe("re.toString()", "'/c/i'");
26 shouldThrow("re.compile(new RegExp('c'), 'i');");
28 // It's OK to supply a second argument, as long as the argument is "undefined".
29 re.compile(re, undefined);
30 shouldBe("re.toString()", "'/c/i'");
32 shouldThrow("re.compile(new RegExp('+'));");
34 re.compile(undefined);
35 shouldBe("re.toString()", "'/undefined/'");
38 shouldBe("re.toString()", "'/null/'");
41 shouldBe("re.toString()", "'/(?:)/'");
43 re.compile("z", undefined);
44 shouldBe("re.toString()", "'/z/'");
46 // Compiling should reset lastIndex.
49 shouldBe("re.lastIndex", "0");
51 shouldBe("re.lastIndex", "1");