1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
<script>
var rowsLogged = 0;
function doLog(msg) {
var table = document.getElementById("output");
var col = table.tBodies[0].rows[rowsLogged].cells[0];
col.innerHTML = msg;
rowsLogged++;
}
function doIt()
{
var r = RegExp("foo","g");
doLog(r.compile.length);
doLog(r);
r.compile("bar");
doLog(r);
//Check flags?
r.compile("baz", "g");
doLog(r);
//Test compiling a broken regexp -- exception raised, object unchanged.
var exc = false;
try {
r.compile("(");
} catch (e) {
doLog("exception!");
exc = true;
}
if (!exc) doLog("OK?");
doLog(r);
//Check broken flags?
exc = false;
try {
r.compile("glarch", "x");
} catch (e) {
doLog("exception!");
exc = true;
}
if (!exc) doLog("OK?");
doLog(r);
}
</script>
<body onload="doIt()">
<table id="output" border="1">
<thead>
<th>Actual</th>
<th>Expected</th>
</thead>
<tbody>
<tr>
<td></td>
<td>1 <!-- 2 in IE, actually --></td>
</tr>
<tr>
<td></td>
<td>/foo/g</td>
</tr>
<tr>
<td></td>
<td>/bar/</td>
</tr>
<tr>
<td></td>
<td>/baz/g</td>
</tr>
<tr>
<td></td>
<td>exception!</td>
</tr>
<tr>
<td></td>
<td>/baz/g</td>
</tr>
<tr>
<td></td>
<td>exception!</td>
</tr>
<tr>
<td></td>
<td>/baz/g</td>
</tr>
</tbody>
</table>
|