{"ast":null,"code":"import promiseFinally from './finally'; // Store setTimeout reference so promise-polyfill will be unaffected by\n// other code modifying setTimeout (like sinon.useFakeTimers())\n\nvar setTimeoutFunc = setTimeout;\n\nfunction noop() {} // Polyfill for Function.prototype.bind\n\n\nfunction bind(fn, thisArg) {\n  return function () {\n    fn.apply(thisArg, arguments);\n  };\n}\n/**\n * @constructor\n * @param {Function} fn\n */\n\n\nfunction Promise(fn) {\n  if (!(this instanceof Promise)) throw new TypeError('Promises must be constructed via new');\n  if (typeof fn !== 'function') throw new TypeError('not a function');\n  /** @type {!number} */\n\n  this._state = 0;\n  /** @type {!boolean} */\n\n  this._handled = false;\n  /** @type {Promise|undefined} */\n\n  this._value = undefined;\n  /** @type {!Array<!Function>} */\n\n  this._deferreds = [];\n  doResolve(fn, this);\n}\n\nfunction handle(self, deferred) {\n  while (self._state === 3) {\n    self = self._value;\n  }\n\n  if (self._state === 0) {\n    self._deferreds.push(deferred);\n\n    return;\n  }\n\n  self._handled = true;\n\n  Promise._immediateFn(function () {\n    var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n\n    if (cb === null) {\n      (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n      return;\n    }\n\n    var ret;\n\n    try {\n      ret = cb(self._value);\n    } catch (e) {\n      reject(deferred.promise, e);\n      return;\n    }\n\n    resolve(deferred.promise, ret);\n  });\n}\n\nfunction resolve(self, newValue) {\n  try {\n    // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n    if (newValue === self) throw new TypeError('A promise cannot be resolved with itself.');\n\n    if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {\n      var then = newValue.then;\n\n      if (newValue instanceof Promise) {\n        self._state = 3;\n        self._value = newValue;\n        finale(self);\n        return;\n      } else if (typeof then === 'function') {\n        doResolve(bind(then, newValue), self);\n        return;\n      }\n    }\n\n    self._state = 1;\n    self._value = newValue;\n    finale(self);\n  } catch (e) {\n    reject(self, e);\n  }\n}\n\nfunction reject(self, newValue) {\n  self._state = 2;\n  self._value = newValue;\n  finale(self);\n}\n\nfunction finale(self) {\n  if (self._state === 2 && self._deferreds.length === 0) {\n    Promise._immediateFn(function () {\n      if (!self._handled) {\n        Promise._unhandledRejectionFn(self._value);\n      }\n    });\n  }\n\n  for (var i = 0, len = self._deferreds.length; i < len; i++) {\n    handle(self, self._deferreds[i]);\n  }\n\n  self._deferreds = null;\n}\n/**\n * @constructor\n */\n\n\nfunction Handler(onFulfilled, onRejected, promise) {\n  this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n  this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n  this.promise = promise;\n}\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\n\n\nfunction doResolve(fn, self) {\n  var done = false;\n\n  try {\n    fn(function (value) {\n      if (done) return;\n      done = true;\n      resolve(self, value);\n    }, function (reason) {\n      if (done) return;\n      done = true;\n      reject(self, reason);\n    });\n  } catch (ex) {\n    if (done) return;\n    done = true;\n    reject(self, ex);\n  }\n}\n\nPromise.prototype['catch'] = function (onRejected) {\n  return this.then(null, onRejected);\n};\n\nPromise.prototype.then = function (onFulfilled, onRejected) {\n  // @ts-ignore\n  var prom = new this.constructor(noop);\n  handle(this, new Handler(onFulfilled, onRejected, prom));\n  return prom;\n};\n\nPromise.prototype['finally'] = promiseFinally;\n\nPromise.all = function (arr) {\n  return new Promise(function (resolve, reject) {\n    if (!arr || typeof arr.length === 'undefined') throw new TypeError('Promise.all accepts an array');\n    var args = Array.prototype.slice.call(arr);\n    if (args.length === 0) return resolve([]);\n    var remaining = args.length;\n\n    function res(i, val) {\n      try {\n        if (val && (typeof val === 'object' || typeof val === 'function')) {\n          var then = val.then;\n\n          if (typeof then === 'function') {\n            then.call(val, function (val) {\n              res(i, val);\n            }, reject);\n            return;\n          }\n        }\n\n        args[i] = val;\n\n        if (--remaining === 0) {\n          resolve(args);\n        }\n      } catch (ex) {\n        reject(ex);\n      }\n    }\n\n    for (var i = 0; i < args.length; i++) {\n      res(i, args[i]);\n    }\n  });\n};\n\nPromise.resolve = function (value) {\n  if (value && typeof value === 'object' && value.constructor === Promise) {\n    return value;\n  }\n\n  return new Promise(function (resolve) {\n    resolve(value);\n  });\n};\n\nPromise.reject = function (value) {\n  return new Promise(function (resolve, reject) {\n    reject(value);\n  });\n};\n\nPromise.race = function (values) {\n  return new Promise(function (resolve, reject) {\n    for (var i = 0, len = values.length; i < len; i++) {\n      values[i].then(resolve, reject);\n    }\n  });\n}; // Use polyfill for setImmediate for performance gains\n\n\nPromise._immediateFn = typeof setImmediate === 'function' && function (fn) {\n  setImmediate(fn);\n} || function (fn) {\n  setTimeoutFunc(fn, 0);\n};\n\nPromise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n  if (typeof console !== 'undefined' && console) {\n    console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console\n  }\n};\n\nexport default Promise;","map":{"version":3,"sources":["C:/laragon/www/itokin/DriverOPCDA/frontend/node_modules/promise-polyfill/src/index.js"],"names":["promiseFinally","setTimeoutFunc","setTimeout","noop","bind","fn","thisArg","apply","arguments","Promise","TypeError","_state","_handled","_value","undefined","_deferreds","doResolve","handle","self","deferred","push","_immediateFn","cb","onFulfilled","onRejected","resolve","reject","promise","ret","e","newValue","then","finale","length","_unhandledRejectionFn","i","len","Handler","done","value","reason","ex","prototype","prom","constructor","all","arr","args","Array","slice","call","remaining","res","val","race","values","setImmediate","err","console","warn"],"mappings":"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","sourcesContent":["import promiseFinally from './finally';\n\n// Store setTimeout reference so promise-polyfill will be unaffected by\n// other code modifying setTimeout (like sinon.useFakeTimers())\nvar setTimeoutFunc = setTimeout;\n\nfunction noop() {}\n\n// Polyfill for Function.prototype.bind\nfunction bind(fn, thisArg) {\n  return function() {\n    fn.apply(thisArg, arguments);\n  };\n}\n\n/**\n * @constructor\n * @param {Function} fn\n */\nfunction Promise(fn) {\n  if (!(this instanceof Promise))\n    throw new TypeError('Promises must be constructed via new');\n  if (typeof fn !== 'function') throw new TypeError('not a function');\n  /** @type {!number} */\n  this._state = 0;\n  /** @type {!boolean} */\n  this._handled = false;\n  /** @type {Promise|undefined} */\n  this._value = undefined;\n  /** @type {!Array<!Function>} */\n  this._deferreds = [];\n\n  doResolve(fn, this);\n}\n\nfunction handle(self, deferred) {\n  while (self._state === 3) {\n    self = self._value;\n  }\n  if (self._state === 0) {\n    self._deferreds.push(deferred);\n    return;\n  }\n  self._handled = true;\n  Promise._immediateFn(function() {\n    var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n    if (cb === null) {\n      (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n      return;\n    }\n    var ret;\n    try {\n      ret = cb(self._value);\n    } catch (e) {\n      reject(deferred.promise, e);\n      return;\n    }\n    resolve(deferred.promise, ret);\n  });\n}\n\nfunction resolve(self, newValue) {\n  try {\n    // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n    if (newValue === self)\n      throw new TypeError('A promise cannot be resolved with itself.');\n    if (\n      newValue &&\n      (typeof newValue === 'object' || typeof newValue === 'function')\n    ) {\n      var then = newValue.then;\n      if (newValue instanceof Promise) {\n        self._state = 3;\n        self._value = newValue;\n        finale(self);\n        return;\n      } else if (typeof then === 'function') {\n        doResolve(bind(then, newValue), self);\n        return;\n      }\n    }\n    self._state = 1;\n    self._value = newValue;\n    finale(self);\n  } catch (e) {\n    reject(self, e);\n  }\n}\n\nfunction reject(self, newValue) {\n  self._state = 2;\n  self._value = newValue;\n  finale(self);\n}\n\nfunction finale(self) {\n  if (self._state === 2 && self._deferreds.length === 0) {\n    Promise._immediateFn(function() {\n      if (!self._handled) {\n        Promise._unhandledRejectionFn(self._value);\n      }\n    });\n  }\n\n  for (var i = 0, len = self._deferreds.length; i < len; i++) {\n    handle(self, self._deferreds[i]);\n  }\n  self._deferreds = null;\n}\n\n/**\n * @constructor\n */\nfunction Handler(onFulfilled, onRejected, promise) {\n  this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n  this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n  this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, self) {\n  var done = false;\n  try {\n    fn(\n      function(value) {\n        if (done) return;\n        done = true;\n        resolve(self, value);\n      },\n      function(reason) {\n        if (done) return;\n        done = true;\n        reject(self, reason);\n      }\n    );\n  } catch (ex) {\n    if (done) return;\n    done = true;\n    reject(self, ex);\n  }\n}\n\nPromise.prototype['catch'] = function(onRejected) {\n  return this.then(null, onRejected);\n};\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n  // @ts-ignore\n  var prom = new this.constructor(noop);\n\n  handle(this, new Handler(onFulfilled, onRejected, prom));\n  return prom;\n};\n\nPromise.prototype['finally'] = promiseFinally;\n\nPromise.all = function(arr) {\n  return new Promise(function(resolve, reject) {\n    if (!arr || typeof arr.length === 'undefined')\n      throw new TypeError('Promise.all accepts an array');\n    var args = Array.prototype.slice.call(arr);\n    if (args.length === 0) return resolve([]);\n    var remaining = args.length;\n\n    function res(i, val) {\n      try {\n        if (val && (typeof val === 'object' || typeof val === 'function')) {\n          var then = val.then;\n          if (typeof then === 'function') {\n            then.call(\n              val,\n              function(val) {\n                res(i, val);\n              },\n              reject\n            );\n            return;\n          }\n        }\n        args[i] = val;\n        if (--remaining === 0) {\n          resolve(args);\n        }\n      } catch (ex) {\n        reject(ex);\n      }\n    }\n\n    for (var i = 0; i < args.length; i++) {\n      res(i, args[i]);\n    }\n  });\n};\n\nPromise.resolve = function(value) {\n  if (value && typeof value === 'object' && value.constructor === Promise) {\n    return value;\n  }\n\n  return new Promise(function(resolve) {\n    resolve(value);\n  });\n};\n\nPromise.reject = function(value) {\n  return new Promise(function(resolve, reject) {\n    reject(value);\n  });\n};\n\nPromise.race = function(values) {\n  return new Promise(function(resolve, reject) {\n    for (var i = 0, len = values.length; i < len; i++) {\n      values[i].then(resolve, reject);\n    }\n  });\n};\n\n// Use polyfill for setImmediate for performance gains\nPromise._immediateFn =\n  (typeof setImmediate === 'function' &&\n    function(fn) {\n      setImmediate(fn);\n    }) ||\n  function(fn) {\n    setTimeoutFunc(fn, 0);\n  };\n\nPromise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n  if (typeof console !== 'undefined' && console) {\n    console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console\n  }\n};\n\nexport default Promise;\n"]},"metadata":{},"sourceType":"module"}