docs: function fromString(event,elem){
    var resolver = new Resolver(),
        det = elem[detacher],
        m,d;
  
    function listener(ev){
    	resolver.accept(ev);
    	elem.removeEventListener(event,listener,false)
      d.detach();
    }
  
    m = event.match(/^window\.(.*)/);
    if(m){
      elem = global.window;
      event = m[1];
    }
  
    elem.addEventListener(event,listener,false);
    d = det.listen(elem.removeEventListener,[event,listener,false],elem);
    det.add(resolver);
  
    return resolver.yielded;
  }