3d44456c1a6f51ef0a5e3ea52830b506.json 43 KB
{"ast":null,"code":"'use strict';\n\nvar $ = require('../internals/export');\n\nvar IS_PURE = require('../internals/is-pure');\n\nvar global = require('../internals/global');\n\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar NativePromise = require('../internals/native-promise-constructor');\n\nvar redefine = require('../internals/redefine');\n\nvar redefineAll = require('../internals/redefine-all');\n\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar setSpecies = require('../internals/set-species');\n\nvar isObject = require('../internals/is-object');\n\nvar aFunction = require('../internals/a-function');\n\nvar anInstance = require('../internals/an-instance');\n\nvar inspectSource = require('../internals/inspect-source');\n\nvar iterate = require('../internals/iterate');\n\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar task = require('../internals/task').set;\n\nvar microtask = require('../internals/microtask');\n\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar hostReportErrors = require('../internals/host-report-errors');\n\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar perform = require('../internals/perform');\n\nvar InternalStateModule = require('../internals/internal-state');\n\nvar isForced = require('../internals/is-forced');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = typeof PromiseRejectionEvent == 'function';\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\nvar FORCED = isForced(PROMISE, function () {\n  var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n\n  if (!GLOBAL_CORE_JS_PROMISE) {\n    // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n    // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n    // We can't detect it synchronously, so just check versions\n    if (V8_VERSION === 66) return true; // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n\n    if (!IS_NODE && !NATIVE_REJECTION_EVENT) return true;\n  } // We need Promise#finally in the pure version for preventing prototype pollution\n\n\n  if (IS_PURE && !PromiseConstructor.prototype['finally']) return true; // We can't use @@species feature detection in V8 since it causes\n  // deoptimization and performance degradation\n  // https://github.com/zloirock/core-js/issues/679\n\n  if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false; // Detect correctness of subclassing with @@species support\n\n  var promise = PromiseConstructor.resolve(1);\n\n  var FakePromise = function (exec) {\n    exec(function () {\n      /* empty */\n    }, function () {\n      /* empty */\n    });\n  };\n\n  var constructor = promise.constructor = {};\n  constructor[SPECIES] = FakePromise;\n  return !(promise.then(function () {\n    /* empty */\n  }) instanceof FakePromise);\n});\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n  PromiseConstructor.all(iterable)['catch'](function () {\n    /* empty */\n  });\n}); // helpers\n\nvar isThenable = function (it) {\n  var then;\n  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (state, isReject) {\n  if (state.notified) return;\n  state.notified = true;\n  var chain = state.reactions;\n  microtask(function () {\n    var value = state.value;\n    var ok = state.state == FULFILLED;\n    var index = 0; // variable length - can't use forEach\n\n    while (chain.length > index) {\n      var reaction = chain[index++];\n      var handler = ok ? reaction.ok : reaction.fail;\n      var resolve = reaction.resolve;\n      var reject = reaction.reject;\n      var domain = reaction.domain;\n      var result, then, exited;\n\n      try {\n        if (handler) {\n          if (!ok) {\n            if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n            state.rejection = HANDLED;\n          }\n\n          if (handler === true) result = value;else {\n            if (domain) domain.enter();\n            result = handler(value); // can throw\n\n            if (domain) {\n              domain.exit();\n              exited = true;\n            }\n          }\n\n          if (result === reaction.promise) {\n            reject(TypeError('Promise-chain cycle'));\n          } else if (then = isThenable(result)) {\n            then.call(result, resolve, reject);\n          } else resolve(result);\n        } else reject(value);\n      } catch (error) {\n        if (domain && !exited) domain.exit();\n        reject(error);\n      }\n    }\n\n    state.reactions = [];\n    state.notified = false;\n    if (isReject && !state.rejection) onUnhandled(state);\n  });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n  var event, handler;\n\n  if (DISPATCH_EVENT) {\n    event = document.createEvent('Event');\n    event.promise = promise;\n    event.reason = reason;\n    event.initEvent(name, false, true);\n    global.dispatchEvent(event);\n  } else event = {\n    promise: promise,\n    reason: reason\n  };\n\n  if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n  task.call(global, function () {\n    var promise = state.facade;\n    var value = state.value;\n    var IS_UNHANDLED = isUnhandled(state);\n    var result;\n\n    if (IS_UNHANDLED) {\n      result = perform(function () {\n        if (IS_NODE) {\n          process.emit('unhandledRejection', value, promise);\n        } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n      }); // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n\n      state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n      if (result.error) throw result.value;\n    }\n  });\n};\n\nvar isUnhandled = function (state) {\n  return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n  task.call(global, function () {\n    var promise = state.facade;\n\n    if (IS_NODE) {\n      process.emit('rejectionHandled', promise);\n    } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n  });\n};\n\nvar bind = function (fn, state, unwrap) {\n  return function (value) {\n    fn(state, value, unwrap);\n  };\n};\n\nvar internalReject = function (state, value, unwrap) {\n  if (state.done) return;\n  state.done = true;\n  if (unwrap) state = unwrap;\n  state.value = value;\n  state.state = REJECTED;\n  notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n  if (state.done) return;\n  state.done = true;\n  if (unwrap) state = unwrap;\n\n  try {\n    if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n    var then = isThenable(value);\n\n    if (then) {\n      microtask(function () {\n        var wrapper = {\n          done: false\n        };\n\n        try {\n          then.call(value, bind(internalResolve, wrapper, state), bind(internalReject, wrapper, state));\n        } catch (error) {\n          internalReject(wrapper, error, state);\n        }\n      });\n    } else {\n      state.value = value;\n      state.state = FULFILLED;\n      notify(state, false);\n    }\n  } catch (error) {\n    internalReject({\n      done: false\n    }, error, state);\n  }\n}; // constructor polyfill\n\n\nif (FORCED) {\n  // 25.4.3.1 Promise(executor)\n  PromiseConstructor = function Promise(executor) {\n    anInstance(this, PromiseConstructor, PROMISE);\n    aFunction(executor);\n    Internal.call(this);\n    var state = getInternalState(this);\n\n    try {\n      executor(bind(internalResolve, state), bind(internalReject, state));\n    } catch (error) {\n      internalReject(state, error);\n    }\n  }; // eslint-disable-next-line no-unused-vars\n\n\n  Internal = function Promise(executor) {\n    setInternalState(this, {\n      type: PROMISE,\n      done: false,\n      notified: false,\n      parent: false,\n      reactions: [],\n      rejection: false,\n      state: PENDING,\n      value: undefined\n    });\n  };\n\n  Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n    // `Promise.prototype.then` method\n    // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n    then: function then(onFulfilled, onRejected) {\n      var state = getInternalPromiseState(this);\n      var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n      reaction.fail = typeof onRejected == 'function' && onRejected;\n      reaction.domain = IS_NODE ? process.domain : undefined;\n      state.parent = true;\n      state.reactions.push(reaction);\n      if (state.state != PENDING) notify(state, false);\n      return reaction.promise;\n    },\n    // `Promise.prototype.catch` method\n    // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n    'catch': function (onRejected) {\n      return this.then(undefined, onRejected);\n    }\n  });\n\n  OwnPromiseCapability = function () {\n    var promise = new Internal();\n    var state = getInternalState(promise);\n    this.promise = promise;\n    this.resolve = bind(internalResolve, state);\n    this.reject = bind(internalReject, state);\n  };\n\n  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n    return C === PromiseConstructor || C === PromiseWrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C);\n  };\n\n  if (!IS_PURE && typeof NativePromise == 'function') {\n    nativeThen = NativePromise.prototype.then; // wrap native Promise#then for native async functions\n\n    redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n      var that = this;\n      return new PromiseConstructor(function (resolve, reject) {\n        nativeThen.call(that, resolve, reject);\n      }).then(onFulfilled, onRejected); // https://github.com/zloirock/core-js/issues/640\n    }, {\n      unsafe: true\n    }); // wrap fetch result\n\n    if (typeof $fetch == 'function') $({\n      global: true,\n      enumerable: true,\n      forced: true\n    }, {\n      // eslint-disable-next-line no-unused-vars\n      fetch: function fetch(input\n      /* , init */\n      ) {\n        return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n      }\n    });\n  }\n}\n\n$({\n  global: true,\n  wrap: true,\n  forced: FORCED\n}, {\n  Promise: PromiseConstructor\n});\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\nPromiseWrapper = getBuiltIn(PROMISE); // statics\n\n$({\n  target: PROMISE,\n  stat: true,\n  forced: FORCED\n}, {\n  // `Promise.reject` method\n  // https://tc39.github.io/ecma262/#sec-promise.reject\n  reject: function reject(r) {\n    var capability = newPromiseCapability(this);\n    capability.reject.call(undefined, r);\n    return capability.promise;\n  }\n});\n$({\n  target: PROMISE,\n  stat: true,\n  forced: IS_PURE || FORCED\n}, {\n  // `Promise.resolve` method\n  // https://tc39.github.io/ecma262/#sec-promise.resolve\n  resolve: function resolve(x) {\n    return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n  }\n});\n$({\n  target: PROMISE,\n  stat: true,\n  forced: INCORRECT_ITERATION\n}, {\n  // `Promise.all` method\n  // https://tc39.github.io/ecma262/#sec-promise.all\n  all: function all(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aFunction(C.resolve);\n      var values = [];\n      var counter = 0;\n      var remaining = 1;\n      iterate(iterable, function (promise) {\n        var index = counter++;\n        var alreadyCalled = false;\n        values.push(undefined);\n        remaining++;\n        $promiseResolve.call(C, promise).then(function (value) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = value;\n          --remaining || resolve(values);\n        }, reject);\n      });\n      --remaining || resolve(values);\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  },\n  // `Promise.race` method\n  // https://tc39.github.io/ecma262/#sec-promise.race\n  race: function race(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aFunction(C.resolve);\n      iterate(iterable, function (promise) {\n        $promiseResolve.call(C, promise).then(capability.resolve, reject);\n      });\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/core-js-pure/modules/es.promise.js"],"names":["$","require","IS_PURE","global","getBuiltIn","NativePromise","redefine","redefineAll","setToStringTag","setSpecies","isObject","aFunction","anInstance","inspectSource","iterate","checkCorrectnessOfIteration","speciesConstructor","task","set","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","InternalStateModule","isForced","wellKnownSymbol","IS_NODE","V8_VERSION","SPECIES","PROMISE","getInternalState","get","setInternalState","getInternalPromiseState","getterFor","PromiseConstructor","TypeError","document","process","$fetch","newPromiseCapability","f","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","FORCED","GLOBAL_CORE_JS_PROMISE","String","prototype","test","promise","resolve","FakePromise","exec","constructor","then","INCORRECT_ITERATION","iterable","all","isThenable","it","notify","state","isReject","notified","chain","reactions","value","ok","index","length","reaction","handler","fail","reject","domain","result","exited","rejection","onHandleUnhandled","enter","exit","call","error","onUnhandled","name","reason","event","initEvent","facade","IS_UNHANDLED","isUnhandled","emit","parent","bind","fn","unwrap","internalReject","done","internalResolve","wrapper","Promise","executor","type","undefined","onFulfilled","onRejected","push","C","that","unsafe","enumerable","forced","fetch","input","apply","arguments","wrap","target","stat","r","capability","x","$promiseResolve","values","counter","remaining","alreadyCalled","race"],"mappings":"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","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = typeof PromiseRejectionEvent == 'function';\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n  var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n  if (!GLOBAL_CORE_JS_PROMISE) {\n    // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n    // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n    // We can't detect it synchronously, so just check versions\n    if (V8_VERSION === 66) return true;\n    // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n    if (!IS_NODE && !NATIVE_REJECTION_EVENT) return true;\n  }\n  // We need Promise#finally in the pure version for preventing prototype pollution\n  if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n  // We can't use @@species feature detection in V8 since it causes\n  // deoptimization and performance degradation\n  // https://github.com/zloirock/core-js/issues/679\n  if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n  // Detect correctness of subclassing with @@species support\n  var promise = PromiseConstructor.resolve(1);\n  var FakePromise = function (exec) {\n    exec(function () { /* empty */ }, function () { /* empty */ });\n  };\n  var constructor = promise.constructor = {};\n  constructor[SPECIES] = FakePromise;\n  return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n  PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n  var then;\n  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (state, isReject) {\n  if (state.notified) return;\n  state.notified = true;\n  var chain = state.reactions;\n  microtask(function () {\n    var value = state.value;\n    var ok = state.state == FULFILLED;\n    var index = 0;\n    // variable length - can't use forEach\n    while (chain.length > index) {\n      var reaction = chain[index++];\n      var handler = ok ? reaction.ok : reaction.fail;\n      var resolve = reaction.resolve;\n      var reject = reaction.reject;\n      var domain = reaction.domain;\n      var result, then, exited;\n      try {\n        if (handler) {\n          if (!ok) {\n            if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n            state.rejection = HANDLED;\n          }\n          if (handler === true) result = value;\n          else {\n            if (domain) domain.enter();\n            result = handler(value); // can throw\n            if (domain) {\n              domain.exit();\n              exited = true;\n            }\n          }\n          if (result === reaction.promise) {\n            reject(TypeError('Promise-chain cycle'));\n          } else if (then = isThenable(result)) {\n            then.call(result, resolve, reject);\n          } else resolve(result);\n        } else reject(value);\n      } catch (error) {\n        if (domain && !exited) domain.exit();\n        reject(error);\n      }\n    }\n    state.reactions = [];\n    state.notified = false;\n    if (isReject && !state.rejection) onUnhandled(state);\n  });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n  var event, handler;\n  if (DISPATCH_EVENT) {\n    event = document.createEvent('Event');\n    event.promise = promise;\n    event.reason = reason;\n    event.initEvent(name, false, true);\n    global.dispatchEvent(event);\n  } else event = { promise: promise, reason: reason };\n  if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n  else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n  task.call(global, function () {\n    var promise = state.facade;\n    var value = state.value;\n    var IS_UNHANDLED = isUnhandled(state);\n    var result;\n    if (IS_UNHANDLED) {\n      result = perform(function () {\n        if (IS_NODE) {\n          process.emit('unhandledRejection', value, promise);\n        } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n      });\n      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n      state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n      if (result.error) throw result.value;\n    }\n  });\n};\n\nvar isUnhandled = function (state) {\n  return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n  task.call(global, function () {\n    var promise = state.facade;\n    if (IS_NODE) {\n      process.emit('rejectionHandled', promise);\n    } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n  });\n};\n\nvar bind = function (fn, state, unwrap) {\n  return function (value) {\n    fn(state, value, unwrap);\n  };\n};\n\nvar internalReject = function (state, value, unwrap) {\n  if (state.done) return;\n  state.done = true;\n  if (unwrap) state = unwrap;\n  state.value = value;\n  state.state = REJECTED;\n  notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n  if (state.done) return;\n  state.done = true;\n  if (unwrap) state = unwrap;\n  try {\n    if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n    var then = isThenable(value);\n    if (then) {\n      microtask(function () {\n        var wrapper = { done: false };\n        try {\n          then.call(value,\n            bind(internalResolve, wrapper, state),\n            bind(internalReject, wrapper, state)\n          );\n        } catch (error) {\n          internalReject(wrapper, error, state);\n        }\n      });\n    } else {\n      state.value = value;\n      state.state = FULFILLED;\n      notify(state, false);\n    }\n  } catch (error) {\n    internalReject({ done: false }, error, state);\n  }\n};\n\n// constructor polyfill\nif (FORCED) {\n  // 25.4.3.1 Promise(executor)\n  PromiseConstructor = function Promise(executor) {\n    anInstance(this, PromiseConstructor, PROMISE);\n    aFunction(executor);\n    Internal.call(this);\n    var state = getInternalState(this);\n    try {\n      executor(bind(internalResolve, state), bind(internalReject, state));\n    } catch (error) {\n      internalReject(state, error);\n    }\n  };\n  // eslint-disable-next-line no-unused-vars\n  Internal = function Promise(executor) {\n    setInternalState(this, {\n      type: PROMISE,\n      done: false,\n      notified: false,\n      parent: false,\n      reactions: [],\n      rejection: false,\n      state: PENDING,\n      value: undefined\n    });\n  };\n  Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n    // `Promise.prototype.then` method\n    // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n    then: function then(onFulfilled, onRejected) {\n      var state = getInternalPromiseState(this);\n      var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n      reaction.fail = typeof onRejected == 'function' && onRejected;\n      reaction.domain = IS_NODE ? process.domain : undefined;\n      state.parent = true;\n      state.reactions.push(reaction);\n      if (state.state != PENDING) notify(state, false);\n      return reaction.promise;\n    },\n    // `Promise.prototype.catch` method\n    // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n    'catch': function (onRejected) {\n      return this.then(undefined, onRejected);\n    }\n  });\n  OwnPromiseCapability = function () {\n    var promise = new Internal();\n    var state = getInternalState(promise);\n    this.promise = promise;\n    this.resolve = bind(internalResolve, state);\n    this.reject = bind(internalReject, state);\n  };\n  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n    return C === PromiseConstructor || C === PromiseWrapper\n      ? new OwnPromiseCapability(C)\n      : newGenericPromiseCapability(C);\n  };\n\n  if (!IS_PURE && typeof NativePromise == 'function') {\n    nativeThen = NativePromise.prototype.then;\n\n    // wrap native Promise#then for native async functions\n    redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n      var that = this;\n      return new PromiseConstructor(function (resolve, reject) {\n        nativeThen.call(that, resolve, reject);\n      }).then(onFulfilled, onRejected);\n    // https://github.com/zloirock/core-js/issues/640\n    }, { unsafe: true });\n\n    // wrap fetch result\n    if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n      // eslint-disable-next-line no-unused-vars\n      fetch: function fetch(input /* , init */) {\n        return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n      }\n    });\n  }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n  Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n  // `Promise.reject` method\n  // https://tc39.github.io/ecma262/#sec-promise.reject\n  reject: function reject(r) {\n    var capability = newPromiseCapability(this);\n    capability.reject.call(undefined, r);\n    return capability.promise;\n  }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n  // `Promise.resolve` method\n  // https://tc39.github.io/ecma262/#sec-promise.resolve\n  resolve: function resolve(x) {\n    return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n  }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n  // `Promise.all` method\n  // https://tc39.github.io/ecma262/#sec-promise.all\n  all: function all(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aFunction(C.resolve);\n      var values = [];\n      var counter = 0;\n      var remaining = 1;\n      iterate(iterable, function (promise) {\n        var index = counter++;\n        var alreadyCalled = false;\n        values.push(undefined);\n        remaining++;\n        $promiseResolve.call(C, promise).then(function (value) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = value;\n          --remaining || resolve(values);\n        }, reject);\n      });\n      --remaining || resolve(values);\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  },\n  // `Promise.race` method\n  // https://tc39.github.io/ecma262/#sec-promise.race\n  race: function race(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aFunction(C.resolve);\n      iterate(iterable, function (promise) {\n        $promiseResolve.call(C, promise).then(capability.resolve, reject);\n      });\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n"]},"metadata":{},"sourceType":"script"}