Return a string representing the source code of a provided function.
var function2string = require( '@stdlib/function/to-string' );
Returns a string representing the source code of a provided function.
function add( x, y ) {
return x + y;
}
var str = function2string( add );
// e.g., returns 'function add( x, y ) {\n return x + y;\n}'
-
If called on built-in functions, functions created by
Function.prototype.bind()
, or other non-JavaScript functions, the function returns a "native" function string similar to the following:"function foo() { [native code] }"
For intrinsic object methods and functions,
foo
is the initial name of the function. -
If called on a function created by the
Function
constructor, the function returns the source code of a synthesized function declaration having the name "anonymous" and using the provided parameters and function body. -
Starting in ES2018, the ECMAScript specification requires that the returned string contain the exact same source code as it was declared, including any whitespace and/or comments. If the host is unable to access the source code, the specification requires that the returned string be the native function string.
var ndarray = require( '@stdlib/ndarray/ctor' );
var erf = require( '@stdlib/math/base/special/erf' );
var daxpy = require( '@stdlib/blas/base/daxpy' );
var kebabcase = require( '@stdlib/string/kebabcase' );
var randu = require( '@stdlib/random/base/randu' );
var format = require( '@stdlib/string/format' );
var function2string = require( '@stdlib/function/to-string' );
var fcns = [
[ 'ndarray', ndarray ],
[ 'erf', erf ],
[ 'daxpy', daxpy ],
[ 'kebabcase', kebabcase ],
[ 'randu', randu ],
[ 'format', format ],
[ 'function2string', function2string ]
];
var i;
for ( i = 0; i < fcns.length; i++ ) {
console.log( format( 'Function: %s\n\n%s\n', fcns[ i ][ 0 ], function2string( fcns[ i ][ 1 ] ) ) );
}