| 
						 | 
						- 'use strict';
 - 
 - function ready(flagOrFunction) {
 -   this._ready = !!this._ready;
 -   this._readyCallbacks = this._readyCallbacks || [];
 - 
 -   if (arguments.length === 0) {
 -     // return a promise
 -     // support `this.ready().then(onready);` and `yield this.ready()`;
 -     return new Promise(function (resolve) {
 -       if (this._ready) {
 -         return resolve();
 -       }
 -       this._readyCallbacks.push(resolve);
 -     }.bind(this));
 -   } else if (typeof flagOrFunction === 'function') {
 -     this._readyCallbacks.push(flagOrFunction);
 -   } else {
 -     this._ready = !!flagOrFunction;
 -   }
 - 
 -   if (this._ready) {
 -     this._readyCallbacks.splice(0, Infinity).forEach(function(callback) {
 -       process.nextTick(callback);
 -     });
 -   }
 - }
 - 
 - function mixin(object) {
 -   object.ready = ready;
 - }
 - 
 - module.exports = mixin;
 - module.exports.mixin = mixin;
 
 
  |