3 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
6 PASS testString is "It's the end of the world as we know it, and I feel fine."
7 PASS testString.replace('end','BEGINNING') is "It's the BEGINNING of the world as we know it, and I feel fine."
8 PASS testString.replace(/[aeiou]/gi,'-') is "-t's th- -nd -f th- w-rld -s w- kn-w -t, -nd - f--l f-n-."
9 PASS testString.replace(/[aeiou]/gi, function Capitalize(s){ return s.toUpperCase(); }) is "It's thE End Of thE wOrld As wE knOw It, And I fEEl fInE."
10 PASS testString.replace(/([aeiou])([a-z])/g, function Capitalize(){ return RegExp.$1.toUpperCase()+RegExp.$2; }) is "It's the End Of the wOrld As we knOw It, And I fEel fIne."
11 PASS testString.replace(/([aeiou])([a-z])/g, function Capitalize(orig,re1,re2) { return re1.toUpperCase()+re2; }) is "It's the End Of the wOrld As we knOw It, And I fEel fIne."
12 PASS testString.replace(/(.*)/g, function replaceWithDollars(matchGroup) { return '$1'; }) is "$1$1"
13 PASS testString.replace(/(.)(.*)/g, function replaceWithMultipleDollars(matchGroup) { return '$1$2'; }) is "$1$2"
14 PASS testString.replace(/(.)(.*)/, function checkReplacementArguments() { return arguments.length; }) is "5"
15 PASS testReplace(/x/g, false) is "0y1y2"
16 FAIL testReplace(/x/g, true) should throw an exception. Was 0y1y2.
17 PASS testReplace(/x/, false) is "0y1x2"
18 PASS testReplace(/x/, true) is "0y1x2"
19 PASS testReplace(/x/g, false); re.lastIndex is 0
20 FAIL testReplace(/x/g, true); re.lastIndex should throw an exception. Was 3.
21 PASS testReplace(/x/, false); re.lastIndex is 3
22 PASS testReplace(/x/, true); re.lastIndex is 3
23 PASS testReplace(/x/g, false) is "0y1y2"
24 FAIL testReplace(/x/g, true) should throw an exception. Was 0y1y2.
25 PASS testReplace(/x/, false) is "0y1x2"
26 PASS testReplace(/x/, true) is "0y1x2"
27 PASS testReplace(/x/g, false); re.lastIndex is 0
28 FAIL testReplace(/x/g, true); re.lastIndex should throw an exception. Was 3.
29 PASS testReplace(/x/, false); re.lastIndex is 3
30 PASS testReplace(/x/, true); re.lastIndex is 3
31 PASS testReplace(/x/g, false) is "01122"
32 PASS testReplace(/x/g, true) threw exception TypeError: Cannot assign to read only property 'lastIndex' of [object RegExp].
33 PASS testReplace(/x/, false) is "041x2"
34 PASS testReplace(/x/, true) threw exception TypeError: Cannot assign to read only property 'lastIndex' of [object RegExp].
35 PASS testReplace(/x/g, false); re.lastIndex is 2
36 PASS testReplace(/x/g, true); re.lastIndex threw exception TypeError: Cannot assign to read only property 'lastIndex' of [object RegExp].
37 PASS testReplace(/x/, false); re.lastIndex is 4
38 PASS testReplace(/x/, true); re.lastIndex threw exception TypeError: Cannot assign to read only property 'lastIndex' of [object RegExp].
39 PASS try { testReplace(/x/g, false); throw 0; } catch (e) { }; replacerCalled; is true
40 FAIL try { testReplace(/x/g, true); throw 0; } catch (e) { }; replacerCalled; should be false. Was true.
41 PASS successfullyParsed is true