evalCallExpression method

  1. @protected
dynamic evalCallExpression(
  1. CallExpression expression,
  2. Map<String, dynamic> context
)

Implementation

@protected
dynamic evalCallExpression(
  CallExpression expression,
  Map<String, dynamic> context,
) {
  final callee = eval(expression.callee, context);
  final arguments = expression.arguments
      .map((e) => eval(e, context))
      .toList();

  _logger.finest('[evalCallExpression]: [${expression.callee}]');

  try {
    return Function.apply(callee, arguments);
  } catch (e, stack) {
    _logger.severe(
      '[evalCallExpression]: Exception in evaluation of: [${expression.toTokenString()}]',
      e,
      stack,
    );
    rethrow;
  }
}