docs: function(type, handler, one, sig) {
  			if (gui.Type.isArray(type)) {
  				type.forEach(function(t) {
  					this._add(t, handler, one, sig);
  				}, this);
  			} else {
  				var list, index;
  				var map = this._tempname;
  				list = map.handlers[type];
  				if (!list) {
  					list = map.handlers[type] = [];
  				}
  				index = list.indexOf(handler);
  				if (index < 0) {
  					index = list.push(handler) - 1;
  				}
  				/*
  				 * @TODO
  				 * Adding a property to an array will
  				 * make it slower in Firefox. Fit it!
  				 */
  				if (one) {
  					list._one = list._one || Object.create(null);
  					list._one[index] = true;
  				}
  			}
  			return this;
  		}