# 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

    93x
    92x
    92x

     // @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)
    }