code: function bind(unwrapped) {
      if (!(unwrapped && unwrapped[CONTEXTS_SYMBOL])) return unwrapped;
  
      var wrapped  = unwrapped;
      var contexts = unwrapped[CONTEXTS_SYMBOL];
      Object.keys(contexts).forEach(function (name) {
        var thunk = contexts[name];
        wrapped = thunk.namespace.bind(wrapped, thunk.context);
      });
      return wrapped;
    }
docs: At emit time, bind the listener within the correct context.