All files / src interpreter.js

100% Statements 3/3
100% Branches 2/2
100% Functions 2/2
100% Lines 3/3

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15              105x 104x 104x          
// @flow
 
import compiler from './compiler'
import type { OutputType, SourceCodeType } from './types'
import builtIns from './builtins.js'
 
export default (sourceCode: SourceCodeType): OutputType => {
  const compiledFunction = eval(compiler(sourceCode)) // eslint-disable-line no-eval
  return (input: mixed, variables?: {[string]: mixed}): mixed =>
    compiledFunction({
      ...builtIns,
      ...JSON.parse(JSON.stringify(variables || {}))
    })(input)
}