Share your code.
function-namepublic
node-function-name
Set the "name" property of Function
objects
Very simple module. Sets the non-writable name
property of Function
objects. In older versions of node, this functionality is exposed internally to
V8, but not exposed to JavaScript, so a native module is required. In newer
versions of node, function names can be redefined with Object.defineProperty
,
which this module uses.
Note that unfortunately only String values are allowed.
NOTE: For users of node prior to
iojs@3.0.0
, you'll need to use an earlier version of this module,function-name@1
, which provides a C++ implementation.
Installation
Install with npm
:
$ npm install function-name
Example
var set = ; { throw 'blah';} console;// "test" // change the "name" property to 'foo' ; console;// "foo" // spaces, and even usually illegal UTF8 chars, are allowed ; console;// " ☃ " // the newly set "name" also appears in stack traces! ;// Error: blah // at ☃ (/Users/nrajlich/node-function-name/t.js:4:9) // at Object.<anonymous> (/Users/nrajlich/node-function-name/t.js:23:1) // at Module._compile (module.js:449:26) // at Object.Module._extensions..js (module.js:467:10) // at Module.load (module.js:356:32) // at Function.Module._load (module.js:312:12) // at Module.runMain (module.js:492:10) // at process.startup.processNextTick.process._tickCallback (node.js:244:9)
That's it!