import evalFunctionWithVm from './evalFunctionInVm';
import evalFunctionWithEval from './evalFunctionWithEval';

// The "stringify, then execute in a VM" strategy totally breaks Istanbul due
// to missing __coverage global objects. As a solution, export different
// code during coverage testing and during regular execution.
// Note that this doesn't get shipped to consumers because Rollup replaces it
// with rollup-plugin-replace, so process.env.COVERAGE is replaced with `false`
var evalFunc;
/* istanbul ignore else */
if (process.env.COVERAGE) {
  evalFunc = evalFunctionWithEval;
} else {
  evalFunc = evalFunctionWithVm;
}

export default evalFunc;