code: function safelyToThen(maybeThenable) {
    // Promise Standard 2.3.3.1
    let then =
      maybeThenable instanceof IPromise
        ? IPromise.prototype.then
        : maybeThenable && maybeThenable.then;
    if (
      maybeThenable &&
      (Shared.isFunction(maybeThenable) || Shared.isObject(maybeThenable)) &&
      Shared.isFunction(then)
    ) {
      return function applyThen() {
        then.apply(maybeThenable, arguments);
      };
    }
  }
docs: if resolve(result) result is a thenable return or wait util onFulfilled or onRejected
  
  @param { all } maybeThenable