Если не был передан data, а publish вызван у какой-нибудь функции, то почему бы не использовать результат ее выполнения как data для слуштелей?
Например:
function calc(){
      return (global_value * 2) % 3;
}
calc.publish('click');

Так слушатели получат return от calc