docs: 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 = [];
              }
          }