bug513898-regexp.js (1552B)
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);