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 an error complaining that block-scoped declarations are not yet supported outside of strict 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