js/src/jit-test/tests/basic/bug513898-regexp.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:fd4bf0577e9c
1 /*
2 * Any copyright is dedicated to the Public Domain.
3 * http://creativecommons.org/licenses/publicdomain/
4 * Contributor: haytjes <hv1989@gmail.com>
5 */
6
7 /* Check the undefined pattern is equivalent to empty string. */
8
9 assertEq(RegExp(undefined).source, '');
10 assertEq(RegExp(undefined).global, false);
11 assertEq("test".replace(RegExp(undefined), "*"), '*test');
12 assertEq(new RegExp(undefined).source, '');
13 assertEq(new RegExp(undefined).global, false);
14 assertEq('test'.replace(new RegExp(undefined), "*"), '*test');
15
16 /* Global flags. */
17
18 assertEq(new RegExp(undefined, "g").global, true);
19 assertEq("test".replace(new RegExp(undefined, "g"), "*"), "*t*e*s*t*");
20 assertEq(RegExp(undefined, "g").global, true);
21 assertEq("test".replace(RegExp(undefined, "g"), "*"), "*t*e*s*t*");
22
23 /* Undefined flags. */
24
25 var re = new RegExp(undefined, undefined);
26 assertEq(re.multiline, false);
27 assertEq(re.global, false);
28 assertEq(re.ignoreCase, false);
29
30 var re = new RegExp("test", undefined);
31 assertEq(re.multiline, false);
32 assertEq(re.global, false);
33 assertEq(re.ignoreCase, false);
34
35 /* Flags argument that requires toString. */
36
37 function Flags() {};
38
39 Flags.prototype.toString = function dogToString() { return ""; }
40
41 var re = new RegExp(undefined, new Flags());
42 assertEq(re.multiline, false);
43 assertEq(re.global, false);
44 assertEq(re.ignoreCase, false);
45
46 Flags.prototype.toString = function dogToString() { return "gim"; }
47
48 var re = new RegExp(undefined, new Flags());
49 assertEq(re.multiline, true);
50 assertEq(re.global, true);
51 assertEq(re.ignoreCase, true);

mercurial