File indexing completed on 2024-04-28 15:28:38

0001 <script>
0002 var rowsLogged = 0;
0003 
0004 function doLog(msg) {
0005     var table = document.getElementById("output");
0006     var col   = table.tBodies[0].rows[rowsLogged].cells[0];
0007     col.innerHTML = msg;
0008     rowsLogged++;
0009 }
0010 
0011 function doIt()
0012 {
0013     var r = RegExp("foo","g");
0014     doLog(r.compile.length);
0015 
0016 
0017     doLog(r);
0018 
0019     r.compile("bar");
0020     doLog(r);
0021 
0022     //Check flags?
0023     r.compile("baz", "g");
0024     doLog(r);
0025 
0026     //Test compiling a broken regexp -- exception raised, object unchanged.
0027     var exc = false;
0028     try {
0029         r.compile("(");
0030     } catch (e) {
0031         doLog("exception!");
0032         exc = true;
0033     }
0034 
0035     if (!exc) doLog("OK?");
0036     doLog(r);
0037 
0038     //Check broken flags?
0039     exc = false;
0040     try {
0041         r.compile("glarch", "x");
0042     } catch (e) {
0043         doLog("exception!");
0044         exc = true;
0045     }
0046 
0047     if (!exc) doLog("OK?");
0048     doLog(r);
0049 
0050 }
0051 
0052 </script>
0053 
0054 <body onload="doIt()">
0055 <table id="output" border="1">
0056     <thead>
0057         <th>Actual</th>
0058         <th>Expected</th>
0059     </thead>
0060     <tbody>
0061         <tr>
0062             <td></td>
0063             <td>1 <!-- 2 in IE, actually --></td>
0064         </tr>
0065         <tr>
0066             <td></td>
0067             <td>/foo/g</td>
0068         </tr>
0069         <tr>
0070             <td></td>
0071             <td>/bar/</td>
0072         </tr>
0073         <tr>
0074             <td></td>
0075             <td>/baz/g</td>
0076         </tr>
0077         <tr>
0078             <td></td>
0079             <td>exception!</td>
0080         </tr>
0081         <tr>
0082             <td></td>
0083             <td>/baz/g</td>
0084         </tr>
0085         <tr>
0086             <td></td>
0087             <td>exception!</td>
0088         </tr>
0089         <tr>
0090             <td></td>
0091             <td>/baz/g</td>
0092         </tr>
0093 
0094     </tbody>
0095 </table>