StringObjectUse should not be a structure check for the original string object structure
[WebKit-https.git] / LayoutTests / sputnik / Conformance / 07_Lexical_Conventions / 7.6_Identifiers / S7.6_A2.1_T1.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.testRunner)
17     testRunner.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.6_A2.1_T1</p>
64 <div id='console'></div>
65 <script>
66 try {
67
68 /**
69  * @name: S7.6_A2.1_T1;
70  * @section: 7.6;
71  * @assertion: IdentifierPart :: IdentifierStart;
72  * @description: IdentifierStart :: UnicodeLetter;
73 */
74
75 //CHECK#1
76 try {
77   var identifier = "x" + "x";     
78   eval("var " + identifier + "=1");
79   if (xx !== 1) {
80     testFailed('#1.1: var identifier = "x" + "x"; eval("var " + identifier + "=1"); xx === 1. Actual: ' + (xx));
81   }
82 } catch (e) {
83   testFailed('#1.2: var identifier = "x" + "x"; eval("var " + identifier + "=1"); xx === 1. Actual: ' + (xx));
84 }
85
86 //CHECK#2
87 try {
88   var identifier = "x" + String.fromCharCode(0x0078);     
89   eval("var " + identifier + "=2");
90   if (xx !== 2) {
91     testFailed('#2.1: var identifier = "x" + String.fromCharCode(0x0078); eval("var " + identifier + "=2"); xx === 2. Actual: ' + (xx));
92   }
93 } catch (e) {
94   testFailed('#2.2: var identifier = "x" + String.fromCharCode(0x0078); eval("var " + identifier + "=2"); xx === 2. Actual: ' + (xx));
95 }
96
97 //CHECK#3
98 try {
99   var identifier = String.fromCharCode(0x0078) + String.fromCharCode(0x0078);     
100   eval("var " + identifier + "=3");
101   if (xx !== 3) {
102     testFailed('#3.1: var identifier = String.fromCharCode(0x0078) + String.fromCharCode(0x0078); eval("var " + identifier + "=3"); xx === 3. Actual: ' + (xx));
103   }
104 } catch (e) {
105   testFailed('#3.2: var identifier = String.fromCharCode(0x0078) + String.fromCharCode(0x0078); eval("var " + identifier + "=3"); xx === 3. Actual: ' + (xx));
106 }
107
108 //CHECK#4
109 try {
110   var identifier = "$" + String.fromCharCode(0x0078);     
111   eval("var " + identifier + "=4");
112   if ($x !== 4) {
113     testFailed('#4.1: var identifier = "$" + String.fromCharCode(0x0078); eval("var " + identifier + "=4"); $x === 4. Actual: ' + ($x));
114   }
115 } catch (e) {
116   testFailed('#4.2: var identifier = "$" + String.fromCharCode(0x0078); eval("var " + identifier + "=4"); $x === 4. Actual: ' + ($x));
117 }
118
119 //CHECK#5
120 try {
121   var identifier = "_" + String.fromCharCode(0x0078);     
122   eval("var " + identifier + "=5");
123   if (_x !== 5) {
124     testFailed('#5.1: var identifier = "_" + String.fromCharCode(0x0078); eval("var " + identifier + "=5"); _x === 5. Actual: ' + (_x));
125   }
126 } catch (e) {
127   testFailed('#5.2: var identifier = "_" + String.fromCharCode(0x0078); eval("var " + identifier + "=5"); _x === 5. Actual: ' + (_x));
128 }
129
130 //CHECK#6
131 try {
132   var \u0078x = 6;
133   if (xx !== 6) {
134     testFailed('#6.1: var \\u0078x = 1; xx === 6. Actual: ' + (xx));
135   }
136 } catch (e) {
137   testFailed('#6.2: var \\u0078x = 1; xx === 6. Actual: ' + (xx));
138 }
139
140 } catch (ex) {
141     sputnikException = ex;
142 }
143
144 var successfullyParsed = true;
145 </script>
146
147 <script>
148 if (!successfullyParsed)
149     printTestFailed('successfullyParsed is not set');
150 else if (sputnikException)
151     printTestFailed(sputnikException);
152 else
153     printTestPassed("");
154 testPrint('<br /><span class="pass">TEST COMPLETE</span>');
155 </script>
156 </body>
157 </html>