<p>This tests verifies the scope of a function's name.
</p>
<pre id="console"></pre>

<script>
function log(s)
{
	document.getElementById("console").appendChild(document.createTextNode(s + "\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 declarations do not put the function's name in scope.
function f()
{
	shouldBe(
		f.name == 'f',
		"f.name == 'f'",
		true
	);

	f = 1;
	shouldBe(
		f == 1,
		"f == 1",
		true
	);
};

f();

// Function expressions do put the function's name in scope, as a read-only property.
var g = function g()
{
	shouldBe(
		g.name == 'g',
		"g.name == 'g'",
		true
	);

	g = 1;
	shouldBe(
		g == arguments.callee,
		"g == arguments.callee",
		true
	);
};

g();

</script>
