code: function call(fnThen, resolve, reject) {
  		var bOnce;
  
  		/*
  		 * @param {any} [vReason]
  		 *   The reason for rejection
  		 */
  		function rejectPromise(vReason) {
  			if (!bOnce) {
  				bOnce = true;
  				reject(vReason);
  			}
  		}
  
  		/*
  		 * @param {any} [vResult]
  		 *   The thenable to wrap or the result to synchronously fulfill with
  		 */
  		function resolvePromise(vResult) {
  			if (!bOnce) {
  				bOnce = true;
  				resolve(vResult);
  			}
  		}
  
  		try {
  			fnThen(resolvePromise, rejectPromise);
  		} catch (e) {
  			rejectPromise(e);
  		}
  	}
docs: a SyncPromise which is resolved w/o arguments /*
  @see https://promisesaplus.com
  
  2.3.3.3. If then is a function, call it with x as this, first argument resolvePromise, and
  second argument rejectPromise, where:
  2.3.3.3.1. If/when resolvePromise is called with a value y, run [[Resolve]](promise, y).
  2.3.3.3.2. If/when rejectPromise is called with a reason r, reject promise with r.
  2.3.3.3.3. If both resolvePromise and rejectPromise are called, or multiple calls to the same
  argument are made, the first call takes precedence, and any further calls are ignored.
  2.3.3.3.4. If calling then throws an exception e,
  2.3.3.3.4.1. If resolvePromise or rejectPromise have been called, ignore it.
  2.3.3.3.4.2. Otherwise, reject promise with e as the reason.
  
  @param {function} fnThen
  The "then" function
  @param {function} resolve
  The [[Resolve]](promise, .) function
  @param {function} reject
  The "reject" function