Is there any non-eval way to create a function with a runtime-determined name?
<p>Is there any way to create a function with a <strong>real name</strong> that's determined at runtime without using <code>eval</code>, and using only pure JavaScript? (So, no generated <code>script</code> elements, as those are specific to the browser environment [and in many ways would be <code>eval</code> in disguise anyway]; no using non-standard features of one particular JavaScript engine, etc.)</p>

<p>Note that I'm specifically <em>not</em> asking about anonymous functions referenced by variables or properties that have names, e.g.:</p>

<pre><code>// NOT this
var name = /* ...come up with the name... */;
var obj = {};
obj[name] = function() { /* ... */ };
</code></pre>

<p>There, while the object property has a name, the <em>function</em> does not. Anonymous functions are fine for lots of things, but not what I'm looking for here. I want the function to have a name (e.g., to show up in call stacks in debuggers, etc.).</p>
