|  | ||
|---|---|---|
| .. | ||
| bin | ||
| docs | ||
| etc | ||
| lib | ||
| package.json | ||
| README.md | ||
eval
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