Warning, file /frameworks/kjs/tests/regexp-compile.html was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
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>