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_T3.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_T3</p>
64 <div id='console'></div>
65 <script>
66 try {
67
68 /**
69  * @name: S7.6_A2.1_T3;
70  * @section: 7.6;
71  * @assertion: IdentifierPart :: IdentifierStart;
72  * @description: IdentifierStart :: _;
73 */
74
75 //CHECK#1
76 try {
77   var identifier = "x" + "_";     
78   eval("var " + identifier + "=1");
79   if (x_ !== 1) {
80     testFailed('#1.1: var identifier = "x" + "_"; eval("var " + identifier + "=1"); x_ === 1. Actual: ' + (x_));
81   }
82 } catch (e) {
83   testFailed('#1.2: var identifier = "x" + "_"; eval("var " + identifier + "=1"); x_ === 1. Actual: ' + (x_));
84 }
85
86 //CHECK#2
87 try {
88   var identifier = String.fromCharCode(0x0078) + "_";     
89   eval("var " + identifier + "=2");
90   if (x_ !== 2) {
91     testFailed('#2.1: var identifier = String.fromCharCode(0x0078) + "_"; eval("var " + identifier + "=2"); x_ === 2. Actual: ' + (x_));
92   }
93 } catch (e) {
94   testFailed('#2.2: var identifier = String.fromCharCode(0x0078) + "_"; eval("var " + identifier + "=2"); x_ === 2. Actual: ' + (x_));
95 }
96
97 //CHECK#3
98 try {
99   var identifier = "_" + "_";     
100   eval("var " + identifier + "=3");
101   if (__ !== 3) {
102     testFailed('#3.1: var identifier = "_" + "_"; eval("var " + identifier + "=3"); __ === 3. Actual: ' + (__));
103   }
104 } catch (e) {
105   testFailed('#3.2: var identifier = "_" + "_"; eval("var " + identifier + "=3"); __ === 3. Actual: ' + (__));
106 }
107
108 //CHECK#4
109 try {
110   var identifier = String.fromCharCode(0x005F) + String.fromCharCode(0x005F);     
111   eval("var " + identifier + "=4");
112   if (__ !== 4) {
113     testFailed('#4.1: var identifier = String.fromCharCode(0x005F) + String.fromCharCode(0x005F); eval("var " + identifier + "=4"); __ === 4. Actual: ' + (__));
114   }
115 } catch (e) {
116   testFailed('#4.2: var identifier = String.fromCharCode(0x005F) + String.fromCharCode(0x005F); eval("var " + identifier + "=4"); __ === 4. Actual: ' + (__));
117 }
118
119 //CHECK#5
120 try {
121   var identifier = "_" + "_";     
122   eval("var " + identifier + "=5");
123   if (__ !== 5) {
124     testFailed('#5.1: var identifier = "_" + "_"; eval("var " + identifier + "=5"); __ === 5. Actual: ' + (__));
125   }
126 } catch (e) {
127   testFailed('#5.2: var identifier = "_" + "_"; eval("var " + identifier + "=5"); __ === 5. Actual: ' + (__));
128 }
129
130 //CHECK#6
131 try {
132   var \u0078_ = 6;
133   if (x_ !== 6) {
134     testFailed('#6.1: var \\u0078_ = 1; x_ === 6. Actual: ' + (x_));
135   }
136 } catch (e) {
137   testFailed('#6.2: var \\u0078_ = 1; x_ === 6. Actual: ' + (x_));
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>