context.js
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;
  }
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;
  }
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 ; }
At emit time, bind the listener within the correct context.
At emit time bind the listener within the correct context .