code: function eval$delay(params) {
    var value = new Promise(function (resolve, reject) {
      setTimeout(function() {
        resolve(params.$delay);
      }, params.$wait);
    });
    return isScript(params.$delay)
            ? new this.js.Script(value)
            : value;
  }
docs: delayed evaluation
  @this   Evaluation
  @param  {Object} params instruction keywords ($delay, $wait)
  @return {Script|Promise} script to be evaluated or asynchronous value