How to mock jquery ready function

by Kishore Sahasranaman

JavaScript

// // http://stackoverflow.com/a/9899701
  (function (funcName, baseObj) {
      // The public function name defaults to window.docReady
      // but you can pass in your own object and own function name and those will be used
      // if you want to put them in a different namespace
      funcName = funcName || "docReady";
      baseObj = baseObj || window;
      var readyList = [];
      var readyFired = false;
      var readyEventHandlersInstalled = false;

      // call this when the document is ready
      // this function protects itself against being called more than once
      function ready() {
          if (!readyFired) {
              // this must be set to true before we start calling callbacks
              readyFired = true;
              for (var i = 0; i < readyList.length; i++) {
                  // if a callback here happens to add new ready handlers,
                  // the docReady() function will see that it already fired
                  // and will schedule the callback to run right after
                  // this event loop finishes so all handlers will still execute
                  // in order and no new ones will be added to the readyList
                  // while we are processing the list
                  readyList[i].fn.call(window, readyList[i].ctx);
              }
              // allow any closures held by these functions to free
              readyList = [];
          }
      }

      function readyStateChange() {
          if (document.readyState === "complete") {
              ready();
          }
      }

      // This is the one public interface
      // docReady(fn, context);
      // the context argument is optional - if present, it will be passed
      // as an argument to the callback
      baseObj[funcName] = function (callback, context) {
          // if ready has already fired, then just schedule the callback
          // to fire asynchronously, but right away
          if (readyFired) {
             ...