| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | 
							- "use strict";
 
- module.exports =
 
- function(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) {
 
- var util = require("./util");
 
- var tryCatch = util.tryCatch;
 
- Promise.method = function (fn) {
 
-     if (typeof fn !== "function") {
 
-         throw new Promise.TypeError("expecting a function but got " + util.classString(fn));
 
-     }
 
-     return function () {
 
-         var ret = new Promise(INTERNAL);
 
-         ret._captureStackTrace();
 
-         ret._pushContext();
 
-         var value = tryCatch(fn).apply(this, arguments);
 
-         var promiseCreated = ret._popContext();
 
-         debug.checkForgottenReturns(
 
-             value, promiseCreated, "Promise.method", ret);
 
-         ret._resolveFromSyncValue(value);
 
-         return ret;
 
-     };
 
- };
 
- Promise.attempt = Promise["try"] = function (fn) {
 
-     if (typeof fn !== "function") {
 
-         return apiRejection("expecting a function but got " + util.classString(fn));
 
-     }
 
-     var ret = new Promise(INTERNAL);
 
-     ret._captureStackTrace();
 
-     ret._pushContext();
 
-     var value;
 
-     if (arguments.length > 1) {
 
-         debug.deprecated("calling Promise.try with more than 1 argument");
 
-         var arg = arguments[1];
 
-         var ctx = arguments[2];
 
-         value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg)
 
-                                   : tryCatch(fn).call(ctx, arg);
 
-     } else {
 
-         value = tryCatch(fn)();
 
-     }
 
-     var promiseCreated = ret._popContext();
 
-     debug.checkForgottenReturns(
 
-         value, promiseCreated, "Promise.try", ret);
 
-     ret._resolveFromSyncValue(value);
 
-     return ret;
 
- };
 
- Promise.prototype._resolveFromSyncValue = function (value) {
 
-     if (value === util.errorObj) {
 
-         this._rejectCallback(value.e, false);
 
-     } else {
 
-         this._resolveCallback(value, true);
 
-     }
 
- };
 
- };
 
 
  |