StringObjectUse should not be a structure check for the original string object structure
[WebKit-https.git] / LayoutTests / sputnik / Conformance / 07_Lexical_Conventions / 7.9_Automatic_Semicolon_Insertion / S7.9_A5.8_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.9_A5.8_T1</p>
64 <div id='console'></div>
65 <script>
66 try {
67
68 /**
69 * @name: S7.9_A5.8_T1;
70 * @section: 7.9;
71 * @assertion: Since LineTerminator(LT) between Postfix Increment/Decrement Operator(I/DO) and operand is admitted, 
72 * Additive/Substract Operator(A/SO) in combination with I/DO separated by LT or white spaces after automatic semicolon insertion gives valid result;
73 * @description: Try use Variable1 \n + \n ++ \n Variable2 construction;
74 */
75
76 var x=0, y=0;
77 z=
78 x
79
80 ++
81 y
82
83 //////////////////////////////////////////////////////////////////////////////
84 //CHECK#1
85 if ((z!==1)&&(y!==1)&&(x!==0)) {
86         testFailed('#1: ');
87 }
88 //
89 //////////////////////////////////////////////////////////////////////////////
90
91 z=
92 x
93 + ++
94 y
95
96 //////////////////////////////////////////////////////////////////////////////
97 //CHECK#2
98 if ((z!==2)&&(y!==2)&&(x!==0)) {
99         testFailed('');
100 }
101 //
102 //////////////////////////////////////////////////////////////////////////////
103
104 z=
105 x
106 +    ++
107 y
108
109 //////////////////////////////////////////////////////////////////////////////
110 //CHECK#3
111 if ((z!==3)&&(y!==3)&&(x!==0)) {
112         testFailed('');
113 }
114 //
115 //////////////////////////////////////////////////////////////////////////////
116
117 } catch (ex) {
118     sputnikException = ex;
119 }
120
121 var successfullyParsed = true;
122 </script>
123
124 <script>
125 if (!successfullyParsed)
126     printTestFailed('successfullyParsed is not set');
127 else if (sputnikException)
128     printTestFailed(sputnikException);
129 else
130     printTestPassed("");
131 testPrint('<br /><span class="pass">TEST COMPLETE</span>');
132 </script>
133 </body>
134 </html>