call method

  1. @override
Object? call(
  1. Interpreter interpreter,
  2. List<Object?> arguments,
  3. Map<Symbol, Object?> namedArguments
)
override

Implementation

@override
Object? call(Interpreter interpreter, List<Object?> arguments,
    Map<Symbol, Object?> namedArguments) {
  var handlerName = namedArguments[const Symbol('handlerName')];
  if (handlerName == null) {
    throw "parameter handlerName is required";
  }
  Function(List<dynamic>) callback;
  var callbackParsed = namedArguments[const Symbol('callback')];
  if (callbackParsed == null) {
    throw "parameter callback is required";
  }
  callback = (args) {
    (callbackParsed as LoxFunction).call(interpreter, args, {});
  };
  controller.addJavaScriptHandler(
      handlerName: handlerName as String, callback: callback);
  return null;
}