  
  // --------------------------------------------------
  // Events (imp.)
  // --------------------------------------------------

  Dom.prototype.ready = function (fn) {
    this.each(function (el) {
      el.onreadystatechange = function () {
        if (el.readyState = "complete") {
          fn();
        }
      };
    });
  };

  impEvts = [
    "blur",
    "click",
    "change",
    "dblclick",
    "drag",
    "dragstart",
    "dragend",
    "dragenter",
    "dragleave",
    "dragover",
    "drop",
    "error",
    "focus",
    "keyup",
    "keydown",
    "keypress",
    "load",
    "mousedown",
    "mouseleave",
    "mouseenter",
    "mouseover",
    "mousemove",
    "mouseout",
    "ready",
    "submit"
  ];

  for (_i = 0; _i < impEvts.length; _i += 1) {
    Dom.prototype[impEvts[_i]] = function (fn) {
      this.on(impEvts[_i], fn);
    };
  }
@@ -831,31 +831,124 @@
     
-this.on(impEvts%5B_i%5D, fn
+if (typeof fn === %22function%22) %7B%0A        return this.on(impEvts%5B_i%5D, fn);%0A      %7D%0A%0A      return this.fire(impEvts%5B_i%5D
 );%0A 

Fix simple events