104 lines
1.8 KiB
HTML
104 lines
1.8 KiB
HTML
<p>This tests verifies the identity of function.arguments vs 'arguments' used locally.
|
|
</p>
|
|
<pre id="console"></pre>
|
|
|
|
<script>
|
|
function log(s)
|
|
{
|
|
document.getElementById("console").appendChild(document.createTextNode(s + "\r\n"));
|
|
}
|
|
|
|
function shouldBe(a, aDescription, b)
|
|
{
|
|
if (a == b) {
|
|
log("PASS: " + aDescription + " should be " + b + " and is.");
|
|
return;
|
|
}
|
|
log("FAIL: " + aDescription + " should be " + b + " but instead is " + a + ".");
|
|
}
|
|
|
|
if (window.testRunner) {
|
|
testRunner.dumpAsText();
|
|
}
|
|
|
|
function getArguments() { return arguments.callee.caller.arguments; }
|
|
|
|
(function() {
|
|
shouldBe(
|
|
getArguments() == arguments,
|
|
"getArguments() == arguments",
|
|
false
|
|
);
|
|
})();
|
|
|
|
(function() {
|
|
shouldBe(
|
|
getArguments() == eval('arguments'),
|
|
"getArguments() == eval('arguments')",
|
|
false
|
|
);
|
|
})();
|
|
|
|
(function() {
|
|
eval("");
|
|
shouldBe(
|
|
getArguments() == arguments,
|
|
"getArguments() == arguments {eval present}",
|
|
false
|
|
);
|
|
})();
|
|
|
|
(function() {
|
|
var f = function() { };
|
|
shouldBe(
|
|
getArguments() == arguments,
|
|
"getArguments() == arguments {function present}",
|
|
false
|
|
);
|
|
})();
|
|
|
|
(function(x) {
|
|
var f = function() { return x; };
|
|
shouldBe(
|
|
getArguments() == arguments,
|
|
"getArguments() == arguments {closure present}",
|
|
false
|
|
);
|
|
})(0);
|
|
|
|
(function() {
|
|
with ({ }) { };
|
|
shouldBe(
|
|
getArguments() == arguments,
|
|
"getArguments() == arguments {with present}",
|
|
false
|
|
);
|
|
})();
|
|
|
|
(function() {
|
|
try { } catch(e) { };
|
|
shouldBe(
|
|
getArguments() == arguments,
|
|
"getArguments() == arguments {catch present}",
|
|
false
|
|
);
|
|
})();
|
|
(function() {
|
|
var arguments;
|
|
shouldBe(
|
|
getArguments() == arguments,
|
|
"getArguments() == arguments {var declaration}",
|
|
false
|
|
);
|
|
})();
|
|
|
|
(function() {
|
|
function arguments() { };
|
|
shouldBe(
|
|
getArguments() == arguments,
|
|
"getArguments() == arguments {function declaration}",
|
|
false
|
|
);
|
|
})();
|
|
</script>
|