blob: 432d37e633ee2731334cebe5a19e4d0164c258d6 [file] [log] [blame]
<body>
<p>
This test checks whether various forms of typeof expression are
allowed. It should printf number 12 times and unknown 6 times on
separate lines, and nothing else (besides this paragraph). In
particular it should not say FAIL.
</p>
<hr>
<pre id="console">
</pre>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function log(s)
{
document.getElementById('console').innerHTML += s + '<br>';
}
var x = 0;
var y = 0;
try { eval ('log(typeof x);'); } catch (e) { log("FAIL"); }
try { eval ('log(typeof window.x);'); } catch (e) { log("FAIL"); }
try { eval ('log(typeof window["x"]);'); } catch (e) { log("FAIL"); }
try { eval ('log(typeof (x));'); } catch (e) { log("FAIL"); }
try { eval ('log(typeof (window.x));'); } catch (e) { log("FAIL"); }
try { eval ('log(typeof (window["x"]));'); } catch (e) { log("FAIL"); }
try { eval ('log((y, typeof x));'); } catch (e) { log("FAIL"); }
try { eval ('log(typeof ((x)));'); } catch (e) { log("FAIL"); }
try { eval ('log(typeof ((window.x)));'); } catch (e) { log("FAIL"); }
try { eval ('log(typeof ((window["x"])));'); } catch (e) { log("FAIL"); }
try { eval ('log(typeof (y, x));'); } catch (e) { log("FAIL"); }
try { eval ('log(typeof (true ? x : y));'); } catch (e) { log("FAIL"); }
try { eval ('log(typeof nonexistent)'); } catch (e) { log("FAIL"); }
try { eval ('log(typeof window.nonexistent)'); } catch (e) { log("FAIL"); }
try { eval ('log(typeof window["nonexistent"])'); } catch (e) { log("FAIL");}
try { eval ('log(typeof (nonexistent))'); } catch (e) { log("FAIL");}
try { eval ('log(typeof (window.nonexistent))'); } catch (e) { log("FAIL"); }
try { eval ('log(typeof (window["nonexistent"]))'); } catch (e) { log("FAIL"); }
</script>
</body>