code: function (types, fn, context) {
  
  		// types can be a map of types/handlers
  		if (typeof types === 'object') {
  			for (var type in types) {
  				// we don't process space-separated events here for performance;
  				// it's a hot path since Layer uses the on(obj) syntax
  				this._on(type, types[type], fn);
  			}
  
  		} else {
  			// types can be a string of space-separated words
  			types = L.Util.splitWords(types);
  
  			for (var i = 0, len = types.length; i < len; i++) {
  				this._on(types[i], fn, context);
  			}
  		}
  
  		return this;
  	}
docs: /* @method on(type: String, fn: Function, context?: Object): this
  Adds a listener function (`fn`) to a particular event type of the object. You can optionally specify the context of the listener (object the this keyword will point to). You can also pass several space-separated types (e.g. `'click dblclick'`).
  
  @alternative
  @method on(eventMap: Object): this
  Adds a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}`