diff options
| author | Charles Cabergs <me@cacharle.xyz> | 2020-07-27 10:05:23 +0200 |
|---|---|---|
| committer | Charles Cabergs <me@cacharle.xyz> | 2020-07-27 10:05:23 +0200 |
| commit | 5bf66662a9bdd62c5bccab15e607cd95cfb8fcab (patch) | |
| tree | 39a1a4629749056191c05dfd899f931701b7acf3 /srcs/wordpress/wp-includes/js/dist/notices.js | |
| parent | 5afd237bbd22028b85532b8c0b3fcead49a00764 (diff) | |
| download | ft_server-5bf66662a9bdd62c5bccab15e607cd95cfb8fcab.tar.gz ft_server-5bf66662a9bdd62c5bccab15e607cd95cfb8fcab.tar.bz2 ft_server-5bf66662a9bdd62c5bccab15e607cd95cfb8fcab.zip | |
Removed wordpress and phpmyadmin, my server doesn't handle it well and it brings shame on my famillyHEADmaster
Diffstat (limited to 'srcs/wordpress/wp-includes/js/dist/notices.js')
| -rw-r--r-- | srcs/wordpress/wp-includes/js/dist/notices.js | 1375 |
1 files changed, 0 insertions, 1375 deletions
diff --git a/srcs/wordpress/wp-includes/js/dist/notices.js b/srcs/wordpress/wp-includes/js/dist/notices.js deleted file mode 100644 index 51132d9..0000000 --- a/srcs/wordpress/wp-includes/js/dist/notices.js +++ /dev/null @@ -1,1375 +0,0 @@ -this["wp"] = this["wp"] || {}; this["wp"]["notices"] = -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 356); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 10: -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _defineProperty; }); -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; -} - -/***/ }), - -/***/ 17: -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; - -// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js -function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { - arr2[i] = arr[i]; - } - - return arr2; - } -} -// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js -var iterableToArray = __webpack_require__(30); - -// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js -function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance"); -} -// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _toConsumableArray; }); - - - -function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || Object(iterableToArray["a" /* default */])(arr) || _nonIterableSpread(); -} - -/***/ }), - -/***/ 2: -/***/ (function(module, exports) { - -(function() { module.exports = this["lodash"]; }()); - -/***/ }), - -/***/ 20: -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(47); - - -/***/ }), - -/***/ 30: -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _iterableToArray; }); -function _iterableToArray(iter) { - if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); -} - -/***/ }), - -/***/ 356: -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -var actions_namespaceObject = {}; -__webpack_require__.r(actions_namespaceObject); -__webpack_require__.d(actions_namespaceObject, "createNotice", function() { return createNotice; }); -__webpack_require__.d(actions_namespaceObject, "createSuccessNotice", function() { return createSuccessNotice; }); -__webpack_require__.d(actions_namespaceObject, "createInfoNotice", function() { return createInfoNotice; }); -__webpack_require__.d(actions_namespaceObject, "createErrorNotice", function() { return createErrorNotice; }); -__webpack_require__.d(actions_namespaceObject, "createWarningNotice", function() { return createWarningNotice; }); -__webpack_require__.d(actions_namespaceObject, "removeNotice", function() { return removeNotice; }); -var selectors_namespaceObject = {}; -__webpack_require__.r(selectors_namespaceObject); -__webpack_require__.d(selectors_namespaceObject, "getNotices", function() { return getNotices; }); - -// EXTERNAL MODULE: external {"this":["wp","data"]} -var external_this_wp_data_ = __webpack_require__(4); - -// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules -var toConsumableArray = __webpack_require__(17); - -// EXTERNAL MODULE: external "lodash" -var external_lodash_ = __webpack_require__(2); - -// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js -var defineProperty = __webpack_require__(10); - -// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread.js -var objectSpread = __webpack_require__(7); - -// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/utils/on-sub-key.js - - - -/** - * Higher-order reducer creator which creates a combined reducer object, keyed - * by a property on the action object. - * - * @param {string} actionProperty Action property by which to key object. - * - * @return {Function} Higher-order reducer. - */ -var on_sub_key_onSubKey = function onSubKey(actionProperty) { - return function (reducer) { - return function () { - var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var action = arguments.length > 1 ? arguments[1] : undefined; - // Retrieve subkey from action. Do not track if undefined; useful for cases - // where reducer is scoped by action shape. - var key = action[actionProperty]; - - if (key === undefined) { - return state; - } // Avoid updating state if unchanged. Note that this also accounts for a - // reducer which returns undefined on a key which is not yet tracked. - - - var nextKeyState = reducer(state[key], action); - - if (nextKeyState === state[key]) { - return state; - } - - return Object(objectSpread["a" /* default */])({}, state, Object(defineProperty["a" /* default */])({}, key, nextKeyState)); - }; - }; -}; -/* harmony default export */ var on_sub_key = (on_sub_key_onSubKey); - -// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/reducer.js - - -/** - * External dependencies - */ - -/** - * Internal dependencies - */ - - -/** - * Reducer returning the next notices state. The notices state is an object - * where each key is a context, its value an array of notice objects. - * - * @param {Object} state Current state. - * @param {Object} action Dispatched action. - * - * @return {Object} Updated state. - */ - -var notices = on_sub_key('context')(function () { - var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; - var action = arguments.length > 1 ? arguments[1] : undefined; - - switch (action.type) { - case 'CREATE_NOTICE': - // Avoid duplicates on ID. - return [].concat(Object(toConsumableArray["a" /* default */])(Object(external_lodash_["reject"])(state, { - id: action.notice.id - })), [action.notice]); - - case 'REMOVE_NOTICE': - return Object(external_lodash_["reject"])(state, { - id: action.id - }); - } - - return state; -}); -/* harmony default export */ var store_reducer = (notices); - -// EXTERNAL MODULE: ./node_modules/@babel/runtime/regenerator/index.js -var regenerator = __webpack_require__(20); -var regenerator_default = /*#__PURE__*/__webpack_require__.n(regenerator); - -// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/constants.js -/** - * Default context to use for notice grouping when not otherwise specified. Its - * specific value doesn't hold much meaning, but it must be reasonably unique - * and, more importantly, referenced consistently in the store implementation. - * - * @type {string} - */ -var DEFAULT_CONTEXT = 'global'; -/** - * Default notice status. - * - * @type {string} - */ - -var DEFAULT_STATUS = 'info'; - -// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/actions.js - - -var _marked = -/*#__PURE__*/ -regenerator_default.a.mark(createNotice); - -/** - * External dependencies - */ - -/** - * Internal dependencies - */ - - -/** - * Yields action objects used in signalling that a notice is to be created. - * - * @param {string} [status='info'] Notice status. - * @param {string} content Notice message. - * @param {Object} [options] Notice options. - * @param {string} [options.context='global'] Context under which to - * group notice. - * @param {string} [options.id] Identifier for notice. - * Automatically assigned - * if not specified. - * @param {boolean} [options.isDismissible=true] Whether the notice can - * be dismissed by user. - * @param {string} [options.type='default'] Type of notice, one of - * `default`, or `snackbar`. - * @param {boolean} [options.speak=true] Whether the notice - * content should be - * announced to screen - * readers. - * @param {Array<WPNoticeAction>} [options.actions] User actions to be - * presented with notice. - */ - -function createNotice() { - var status, - content, - options, - _options$speak, - speak, - _options$isDismissibl, - isDismissible, - _options$context, - context, - _options$id, - id, - _options$actions, - actions, - _options$type, - type, - __unstableHTML, - _args = arguments; - - return regenerator_default.a.wrap(function createNotice$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - status = _args.length > 0 && _args[0] !== undefined ? _args[0] : DEFAULT_STATUS; - content = _args.length > 1 ? _args[1] : undefined; - options = _args.length > 2 && _args[2] !== undefined ? _args[2] : {}; - _options$speak = options.speak, speak = _options$speak === void 0 ? true : _options$speak, _options$isDismissibl = options.isDismissible, isDismissible = _options$isDismissibl === void 0 ? true : _options$isDismissibl, _options$context = options.context, context = _options$context === void 0 ? DEFAULT_CONTEXT : _options$context, _options$id = options.id, id = _options$id === void 0 ? Object(external_lodash_["uniqueId"])(context) : _options$id, _options$actions = options.actions, actions = _options$actions === void 0 ? [] : _options$actions, _options$type = options.type, type = _options$type === void 0 ? 'default' : _options$type, __unstableHTML = options.__unstableHTML; // The supported value shape of content is currently limited to plain text - // strings. To avoid setting expectation that e.g. a WPElement could be - // supported, cast to a string. - - content = String(content); - - if (!speak) { - _context.next = 8; - break; - } - - _context.next = 8; - return { - type: 'SPEAK', - message: content, - ariaLive: type === 'snackbar' ? 'polite' : 'assertive' - }; - - case 8: - _context.next = 10; - return { - type: 'CREATE_NOTICE', - context: context, - notice: { - id: id, - status: status, - content: content, - __unstableHTML: __unstableHTML, - isDismissible: isDismissible, - actions: actions, - type: type - } - }; - - case 10: - case "end": - return _context.stop(); - } - } - }, _marked); -} -/** - * Returns an action object used in signalling that a success notice is to be - * created. Refer to `createNotice` for options documentation. - * - * @see createNotice - * - * @param {string} content Notice message. - * @param {Object} [options] Optional notice options. - * - * @return {Object} Action object. - */ - -function createSuccessNotice(content, options) { - return createNotice('success', content, options); -} -/** - * Returns an action object used in signalling that an info notice is to be - * created. Refer to `createNotice` for options documentation. - * - * @see createNotice - * - * @param {string} content Notice message. - * @param {Object} [options] Optional notice options. - * - * @return {Object} Action object. - */ - -function createInfoNotice(content, options) { - return createNotice('info', content, options); -} -/** - * Returns an action object used in signalling that an error notice is to be - * created. Refer to `createNotice` for options documentation. - * - * @see createNotice - * - * @param {string} content Notice message. - * @param {Object} [options] Optional notice options. - * - * @return {Object} Action object. - */ - -function createErrorNotice(content, options) { - return createNotice('error', content, options); -} -/** - * Returns an action object used in signalling that a warning notice is to be - * created. Refer to `createNotice` for options documentation. - * - * @see createNotice - * - * @param {string} content Notice message. - * @param {Object} [options] Optional notice options. - * - * @return {Object} Action object. - */ - -function createWarningNotice(content, options) { - return createNotice('warning', content, options); -} -/** - * Returns an action object used in signalling that a notice is to be removed. - * - * @param {string} id Notice unique identifier. - * @param {string} [context='global'] Optional context (grouping) in which the notice is - * intended to appear. Defaults to default context. - * - * @return {Object} Action object. - */ - -function removeNotice(id) { - var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_CONTEXT; - return { - type: 'REMOVE_NOTICE', - id: id, - context: context - }; -} - -// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/selectors.js -/** - * Internal dependencies - */ - -/** - * The default empty set of notices to return when there are no notices - * assigned for a given notices context. This can occur if the getNotices - * selector is called without a notice ever having been created for the - * context. A shared value is used to ensure referential equality between - * sequential selector calls, since otherwise `[] !== []`. - * - * @type {Array} - */ - -var DEFAULT_NOTICES = []; -/** - * @typedef {Object} WPNotice Notice object. - * - * @property {string} id Unique identifier of notice. - * @property {string} status Status of notice, one of `success`, - * `info`, `error`, or `warning`. Defaults - * to `info`. - * @property {string} content Notice message. - * @property {string} __unstableHTML Notice message as raw HTML. Intended to - * serve primarily for compatibility of - * server-rendered notices, and SHOULD NOT - * be used for notices. It is subject to - * removal without notice. - * @property {boolean} isDismissible Whether the notice can be dismissed by - * user. Defaults to `true`. - * @property {string} type Type of notice, one of `default`, - * or `snackbar`. Defaults to `default`. - * @property {boolean} speak Whether the notice content should be - * announced to screen readers. Defaults to - * `true`. - * @property {WPNoticeAction[]} actions User actions to present with notice. - * - */ - -/** - * @typedef {Object} WPNoticeAction Object describing a user action option associated with a notice. - * - * @property {string} label Message to use as action label. - * @property {?string} url Optional URL of resource if action incurs - * browser navigation. - * @property {?Function} onClick Optional function to invoke when action is - * triggered by user. - * - */ - -/** - * Returns all notices as an array, optionally for a given context. Defaults to - * the global context. - * - * @param {Object} state Notices state. - * @param {?string} context Optional grouping context. - * - * @return {WPNotice[]} Array of notices. - */ - -function getNotices(state) { - var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_CONTEXT; - return state[context] || DEFAULT_NOTICES; -} - -// EXTERNAL MODULE: external {"this":["wp","a11y"]} -var external_this_wp_a11y_ = __webpack_require__(45); - -// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/controls.js -/** - * WordPress dependencies - */ - -/* harmony default export */ var controls = ({ - SPEAK: function SPEAK(action) { - Object(external_this_wp_a11y_["speak"])(action.message, action.ariaLive || 'assertive'); - } -}); - -// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/index.js -/** - * WordPress dependencies - */ - -/** - * Internal dependencies - */ - - - - - -/* harmony default export */ var store = (Object(external_this_wp_data_["registerStore"])('core/notices', { - reducer: store_reducer, - actions: actions_namespaceObject, - selectors: selectors_namespaceObject, - controls: controls -})); - -// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/index.js -/** - * Internal dependencies - */ - - - -/***/ }), - -/***/ 4: -/***/ (function(module, exports) { - -(function() { module.exports = this["wp"]["data"]; }()); - -/***/ }), - -/***/ 45: -/***/ (function(module, exports) { - -(function() { module.exports = this["wp"]["a11y"]; }()); - -/***/ }), - -/***/ 47: -/***/ (function(module, exports, __webpack_require__) { - -/** - * Copyright (c) 2014-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -var runtime = (function (exports) { - "use strict"; - - var Op = Object.prototype; - var hasOwn = Op.hasOwnProperty; - var undefined; // More compressible than void 0. - var $Symbol = typeof Symbol === "function" ? Symbol : {}; - var iteratorSymbol = $Symbol.iterator || "@@iterator"; - var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; - var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - - function wrap(innerFn, outerFn, self, tryLocsList) { - // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; - var generator = Object.create(protoGenerator.prototype); - var context = new Context(tryLocsList || []); - - // The ._invoke method unifies the implementations of the .next, - // .throw, and .return methods. - generator._invoke = makeInvokeMethod(innerFn, self, context); - - return generator; - } - exports.wrap = wrap; - - // Try/catch helper to minimize deoptimizations. Returns a completion - // record like context.tryEntries[i].completion. This interface could - // have been (and was previously) designed to take a closure to be - // invoked without arguments, but in all the cases we care about we - // already have an existing method we want to call, so there's no need - // to create a new function object. We can even get away with assuming - // the method takes exactly one argument, since that happens to be true - // in every case, so we don't have to touch the arguments object. The - // only additional allocation required is the completion record, which - // has a stable shape and so hopefully should be cheap to allocate. - function tryCatch(fn, obj, arg) { - try { - return { type: "normal", arg: fn.call(obj, arg) }; - } catch (err) { - return { type: "throw", arg: err }; - } - } - - var GenStateSuspendedStart = "suspendedStart"; - var GenStateSuspendedYield = "suspendedYield"; - var GenStateExecuting = "executing"; - var GenStateCompleted = "completed"; - - // Returning this object from the innerFn has the same effect as - // breaking out of the dispatch switch statement. - var ContinueSentinel = {}; - - // Dummy constructor functions that we use as the .constructor and - // .constructor.prototype properties for functions that return Generator - // objects. For full spec compliance, you may wish to configure your - // minifier not to mangle the names of these two functions. - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - - // This is a polyfill for %IteratorPrototype% for environments that - // don't natively support it. - var IteratorPrototype = {}; - IteratorPrototype[iteratorSymbol] = function () { - return this; - }; - - var getProto = Object.getPrototypeOf; - var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - if (NativeIteratorPrototype && - NativeIteratorPrototype !== Op && - hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { - // This environment has a native %IteratorPrototype%; use it instead - // of the polyfill. - IteratorPrototype = NativeIteratorPrototype; - } - - var Gp = GeneratorFunctionPrototype.prototype = - Generator.prototype = Object.create(IteratorPrototype); - GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; - GeneratorFunctionPrototype.constructor = GeneratorFunction; - GeneratorFunctionPrototype[toStringTagSymbol] = - GeneratorFunction.displayName = "GeneratorFunction"; - - // Helper for defining the .next, .throw, and .return methods of the - // Iterator interface in terms of a single ._invoke method. - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function(method) { - prototype[method] = function(arg) { - return this._invoke(method, arg); - }; - }); - } - - exports.isGeneratorFunction = function(genFun) { - var ctor = typeof genFun === "function" && genFun.constructor; - return ctor - ? ctor === GeneratorFunction || - // For the native GeneratorFunction constructor, the best we can - // do is to check its .name property. - (ctor.displayName || ctor.name) === "GeneratorFunction" - : false; - }; - - exports.mark = function(genFun) { - if (Object.setPrototypeOf) { - Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); - } else { - genFun.__proto__ = GeneratorFunctionPrototype; - if (!(toStringTagSymbol in genFun)) { - genFun[toStringTagSymbol] = "GeneratorFunction"; - } - } - genFun.prototype = Object.create(Gp); - return genFun; - }; - - // Within the body of any async function, `await x` is transformed to - // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test - // `hasOwn.call(value, "__await")` to determine if the yielded value is - // meant to be awaited. - exports.awrap = function(arg) { - return { __await: arg }; - }; - - function AsyncIterator(generator) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if (record.type === "throw") { - reject(record.arg); - } else { - var result = record.arg; - var value = result.value; - if (value && - typeof value === "object" && - hasOwn.call(value, "__await")) { - return Promise.resolve(value.__await).then(function(value) { - invoke("next", value, resolve, reject); - }, function(err) { - invoke("throw", err, resolve, reject); - }); - } - - return Promise.resolve(value).then(function(unwrapped) { - // When a yielded Promise is resolved, its final value becomes - // the .value of the Promise<{value,done}> result for the - // current iteration. - result.value = unwrapped; - resolve(result); - }, function(error) { - // If a rejected Promise was yielded, throw the rejection back - // into the async generator function so it can be handled there. - return invoke("throw", error, resolve, reject); - }); - } - } - - var previousPromise; - - function enqueue(method, arg) { - function callInvokeWithMethodAndArg() { - return new Promise(function(resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - - return previousPromise = - // If enqueue has been called before, then we want to wait until - // all previous Promises have been resolved before calling invoke, - // so that results are always delivered in the correct order. If - // enqueue has not been called before, then it is important to - // call invoke immediately, without waiting on a callback to fire, - // so that the async generator function has the opportunity to do - // any necessary setup in a predictable way. This predictability - // is why the Promise constructor synchronously invokes its - // executor callback, and why async functions synchronously - // execute code before the first await. Since we implement simple - // async functions in terms of async generators, it is especially - // important to get this right, even though it requires care. - previousPromise ? previousPromise.then( - callInvokeWithMethodAndArg, - // Avoid propagating failures to Promises returned by later - // invocations of the iterator. - callInvokeWithMethodAndArg - ) : callInvokeWithMethodAndArg(); - } - - // Define the unified helper method that is used to implement .next, - // .throw, and .return (see defineIteratorMethods). - this._invoke = enqueue; - } - - defineIteratorMethods(AsyncIterator.prototype); - AsyncIterator.prototype[asyncIteratorSymbol] = function () { - return this; - }; - exports.AsyncIterator = AsyncIterator; - - // Note that simple async functions are implemented on top of - // AsyncIterator objects; they just return a Promise for the value of - // the final result produced by the iterator. - exports.async = function(innerFn, outerFn, self, tryLocsList) { - var iter = new AsyncIterator( - wrap(innerFn, outerFn, self, tryLocsList) - ); - - return exports.isGeneratorFunction(outerFn) - ? iter // If outerFn is a generator, return the full iterator. - : iter.next().then(function(result) { - return result.done ? result.value : iter.next(); - }); - }; - - function makeInvokeMethod(innerFn, self, context) { - var state = GenStateSuspendedStart; - - return function invoke(method, arg) { - if (state === GenStateExecuting) { - throw new Error("Generator is already running"); - } - - if (state === GenStateCompleted) { - if (method === "throw") { - throw arg; - } - - // Be forgiving, per 25.3.3.3.3 of the spec: - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume - return doneResult(); - } - - context.method = method; - context.arg = arg; - - while (true) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - - if (context.method === "next") { - // Setting context._sent for legacy support of Babel's - // function.sent implementation. - context.sent = context._sent = context.arg; - - } else if (context.method === "throw") { - if (state === GenStateSuspendedStart) { - state = GenStateCompleted; - throw context.arg; - } - - context.dispatchException(context.arg); - - } else if (context.method === "return") { - context.abrupt("return", context.arg); - } - - state = GenStateExecuting; - - var record = tryCatch(innerFn, self, context); - if (record.type === "normal") { - // If an exception is thrown from innerFn, we leave state === - // GenStateExecuting and loop back for another invocation. - state = context.done - ? GenStateCompleted - : GenStateSuspendedYield; - - if (record.arg === ContinueSentinel) { - continue; - } - - return { - value: record.arg, - done: context.done - }; - - } else if (record.type === "throw") { - state = GenStateCompleted; - // Dispatch the exception by looping back around to the - // context.dispatchException(context.arg) call above. - context.method = "throw"; - context.arg = record.arg; - } - } - }; - } - - // Call delegate.iterator[context.method](context.arg) and handle the - // result, either by returning a { value, done } result from the - // delegate iterator, or by modifying context.method and context.arg, - // setting context.delegate to null, and returning the ContinueSentinel. - function maybeInvokeDelegate(delegate, context) { - var method = delegate.iterator[context.method]; - if (method === undefined) { - // A .throw or .return when the delegate iterator has no .throw - // method always terminates the yield* loop. - context.delegate = null; - - if (context.method === "throw") { - // Note: ["return"] must be used for ES3 parsing compatibility. - if (delegate.iterator["return"]) { - // If the delegate iterator has a return method, give it a - // chance to clean up. - context.method = "return"; - context.arg = undefined; - maybeInvokeDelegate(delegate, context); - - if (context.method === "throw") { - // If maybeInvokeDelegate(context) changed context.method from - // "return" to "throw", let that override the TypeError below. - return ContinueSentinel; - } - } - - context.method = "throw"; - context.arg = new TypeError( - "The iterator does not provide a 'throw' method"); - } - - return ContinueSentinel; - } - - var record = tryCatch(method, delegate.iterator, context.arg); - - if (record.type === "throw") { - context.method = "throw"; - context.arg = record.arg; - context.delegate = null; - return ContinueSentinel; - } - - var info = record.arg; - - if (! info) { - context.method = "throw"; - context.arg = new TypeError("iterator result is not an object"); - context.delegate = null; - return ContinueSentinel; - } - - if (info.done) { - // Assign the result of the finished delegate to the temporary - // variable specified by delegate.resultName (see delegateYield). - context[delegate.resultName] = info.value; - - // Resume execution at the desired location (see delegateYield). - context.next = delegate.nextLoc; - - // If context.method was "throw" but the delegate handled the - // exception, let the outer generator proceed normally. If |
