Fixing the change log entry.
[WebKit-https.git] / LayoutTests / sputnik / Conformance / 07_Lexical_Conventions / 7.8_Literals / 7.8.5_Regular_Expression_Literals / S7.8.5_A2.1_T2.html
1 <html>
2 <head>
3 <meta charset='utf-8'>
4 <style>
5 .pass {
6     font-weight: bold;
7     color: green;
8 }
9 .fail {
10     font-weight: bold;
11     color: red;
12 }
13 </style>
14
15 <script>
16 if (window.layoutTestController)
17     layoutTestController.dumpAsText();
18
19 function SputnikError(message)
20 {
21     this.message = message;
22 }
23
24 SputnikError.prototype.toString = function ()
25 {
26     return 'SputnikError: ' + this.message;
27 };
28
29 var sputnikException;
30
31 function testPrint(msg)
32 {
33     var span = document.createElement("span");
34     document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace 
35     span.innerHTML = msg + '<br />';
36 }
37
38 function escapeHTML(text)
39 {
40     return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
41 }
42
43 function printTestPassed(msg)
44 {
45     testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
46 }
47
48 function printTestFailed(msg)
49 {
50     testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
51 }
52
53 function testFailed(msg)
54 {
55     throw new SputnikError(msg);
56 }
57
58 var successfullyParsed = false;
59 </script>
60
61 </head>
62 <body>
63 <p>S7.8.5_A2.1_T2</p>
64 <div id='console'></div>
65 <script>
66 try {
67
68 /**
69  * @name: S7.8.5_A2.1_T2;
70  * @section: 7.8.5, 15.10.1;
71  * @assertion: RegularExpressionChar :: NonTerminator but not \ or /, 
72  * RegularExpressionFlags :: [empty];
73  * @description: Complex test with eval, using syntax pattern;
74 */
75
76 //CHECK
77 errorCount = 0;
78 count = 0;
79 var hex = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"];
80 for (i1 = 0; i1 < 16; i1++) {
81   for (i2 = 0; i2 < 16; i2++) {
82     for (i3 = 0; i3 < 16; i3++) {
83       for (i4 = 0; i4 < 16; i4++) {
84         try {               
85           var uu = hex[i1] + hex[i2] + hex[i3] + hex[i4];
86               var Elimination = 
87           ((uu === "002A") || (uu === "002F") || (uu === "005C") || (uu === "002B") || 
88            (uu === "003F") || (uu === "0028") || (uu === "0029") || 
89            (uu === "005B") || (uu === "005D") || (uu === "007B") || (uu === "007D"));
90            /* 
91                 * \u002A     / \u002F     \ \u005C     + \u002B
92                 ? \u003F     ( \u0028     ) \u0029
93                 [ \u005B     ] \u005D     { \u007B     } \u007D          
94            */
95           var LineTerminator = ((uu === "000A") || (uu === "000D") || (uu === "2028") || (uu === "2029"));                      
96           if ((Elimination || LineTerminator ) === false) {                       
97             var xx = "nnnn" + String.fromCharCode("0x" + uu);                  
98             var pattern = eval("/" + xx + "/");  
99             if (pattern.source !== xx) {
100               testFailed('#' + uu + ' ');
101               errorCount++;
102             }                   
103       
104           } else {
105             count--;
106           }                     
107         } catch (e) {         
108           testFailed('#' + uu + ' ');
109           errorCount++;
110         }
111         count++;
112       }  
113     }
114   }
115 }
116
117 if (errorCount > 0) {    
118   testFailed('Total error: ' + errorCount + ' bad Regular Expression First Char in ' + count);
119
120
121 } catch (ex) {
122     sputnikException = ex;
123 }
124
125 var successfullyParsed = true;
126 </script>
127
128 <script>
129 if (!successfullyParsed)
130     printTestFailed('successfullyParsed is not set');
131 else if (sputnikException)
132     printTestFailed(sputnikException);
133 else
134     printTestPassed("");
135 testPrint('<br /><span class="pass">TEST COMPLETE</span>');
136 </script>
137 </body>
138 </html>