Alias for
evalglobal.
Usage
var evil = require( '@stdlib/utils/eval' );
evil( str )
Alias for eval global.
var v = evil( '5*4*3*2*1' ); // returns 120
Notes
- A reference to
evalis treated differently by the compiler. For example, when evaluating code containing block-scoped declarations (e.g.,let,const,function,class), the compiler may throw anerrorcomplaining that block-scoped declarations are not yet supported outside ofstrict mode. One possible workaround is to include"use strict";in the evaluated code, as done in the example below.
Examples
var evil = require( '@stdlib/utils/eval' ); var ctors; var fcn; var i; function compile( ctor ) { var name; var str; name = ctor.match( /^(\w*)Array$/ )[ 1 ]; name += 'DataArray'; str = ''; str += '(function create(){'; str += '"use strict";'; str += 'class '+name+' extends '+ctor+'{'; str += 'constructor(x){'; str += 'super(x);'; str += '}'; str += '}'; str += 'return '+name+';'; str += '})();'; return str; } ctors = [ 'Int8Array', 'Uint8Array', 'Uint8ClampedArray', 'Int16Array', 'Uint16Array', 'Int32Array', 'Uint32Array', 'Float32Array', 'Float64Array', 'Array' ]; for ( i = 0; i < ctors.length; i++ ) { fcn = evil( compile( ctors[i] ) ); console.log( fcn.toString() ); }
CLI
Usage
Usage: js-eval [options] <code>
Options:
-h, --help Print this message.
-V, --version Print the package version.
Examples
$ js-eval '5*4*3*2*1'
120