eval
Alias for
eval
global.
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
eval
is treated differently by the compiler. For example, when evaluating code containing block-scoped declarations (e.g.,let
,const
,function
,class
), the compiler may throw anerror
complaining 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