dynamic delegate(
Invocation invocation
)

Perform invocation on reflectee. Equivalent to

if (invocation.isGetter) {
  return this.getField(invocation.memberName).reflectee;
} else if (invocation.isSetter) {
  return this.setField(invocation.memberName,
                       invocation.positionArguments[0]).reflectee;
} else {
  return this.invoke(invocation.memberName,
                     invocation.positionalArguments,
                     invocation.namedArguments).reflectee;
}

Source

/**
 * Perform [invocation] on [reflectee].
 * Equivalent to
 *
 *     if (invocation.isGetter) {
 *       return this.getField(invocation.memberName).reflectee;
 *     } else if (invocation.isSetter) {
 *       return this.setField(invocation.memberName,
 *                            invocation.positionArguments[0]).reflectee;
 *     } else {
 *       return this.invoke(invocation.memberName,
 *                          invocation.positionalArguments,
 *                          invocation.namedArguments).reflectee;
 *     }
 */
delegate(Invocation invocation);